Array
(
)

Desenhar uma linha no form em C#

Cleudivan Rodrigues
|
MVP
    25 fev 2010

Como eu faço para desenha uma linha no form em C#, tipo o controle line que tem no vb6? Pois não estou conseguindo com o exemplo no help do visual studio.

Otton Moura
   - 26 fev 2010

Amigo, vou postar um codigo que fiz em C#, mas é pra desenhar um triangulo em web form.

                                                         
                                            
// -- Default.ASPX.CS (Inicio)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Text;
//using System.Drawing.Design;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Point p1 = new Point(); //100,200
        Point p2 = new Point();
        Point p3 = new Point();
        Point p4 = new Point();
        Point p5 = new Point();
        Point p6 = new Point();


        Random r = new Random();

        int x1, y1;
        int x2, y2;
        int x3, y3;

        //gerar pontos triangulo
        x1 = r.Next(500);
        y1 = r.Next(500);
        x2 = r.Next(500);
        y2 = r.Next(500);
        x3 = r.Next(500);
        y3 = r.Next(500);
       

        p1.X = x1;
        p1.Y = y1;

        p2.X = x2;
        p2.Y = y2;

        p3.X = x3;
        p3.Y = y3;

        //plotar pontos triângulo
        p4.X = p1.X * 2;
        p4.Y = p1.Y * 2;

        p5.X = p2.X * 2;
        p5.Y = p2.Y * 2;

        p6.X = p3.X * 2;
        p6.Y = p3.Y * 2;

        gerarTriangulo(p1, p2, p3, p4, p5, p6);


    }

    public void gerarTriangulo(Point p1, Point p2, Point p3, Point p4, Point p5, Point p6)
    {
        // Criando Objeto do Tipo Imagem
        Graphics objGrafico;

        // Estou Criando um Objeto do tipo BITMAP - Uma Imagem
        Bitmap objBMP;

        // Determinando qual sera a altura/largura da imagem BMP; estou criando uma area que ocupa a tela inteira
        objBMP = new Bitmap(1250, 1000);

        // Adicionando a Imagem BMP ao objeto grafico, que sera usado para mostrar a imagem
        objGrafico = Graphics.FromImage(objBMP);

        // Determinando a cor de fundo da imagem
        //Color representa ARGB (Alpha, Red, Green, Blue) o melhor e deixar como White
        objGrafico.Clear(Color.Aqua);

        // Criando um objeto do tipo FONTE
        FontFamily objFonte = new FontFamily(GenericFontFamilies.Monospace);
        FontStyle objFonteStyle = FontStyle.Bold | FontStyle.Italic;

        // Determinando o TAMANHO e ESTILO da fonte
        Font font = new Font(objFonte, 16, objFonteStyle);

        // Determinando a COR da fonte
        SolidBrush brush = new SolidBrush(Color.Black);


        // Criando objeto usado para desenhar linhas e curvas
        Pen p = new Pen(Color.Red, 0);

        // Armazena um conjunto de quadro inteiros que representam a localizacao e o tamanho de um retangulo.
        // Para a funcões Region mais avancadas, utilize um objeto Region ao inves de Retangle.
        // O tamanho do grafico esta utilizando quase todo o espaco da area 800 x 640

        int nLeft = 100; int nTop = 50;
        //int nWidth = 600; int nHeight = 500;

        //Desenha linha triangulo
        objGrafico.DrawLine(p, p1, p2);//desenho uma linha vermelha
        objGrafico.DrawString("A", font, brush, p1);
        objGrafico.DrawLine(p, p1, p3);//desenho uma linha vermelha
        objGrafico.DrawString("B", font, brush, p2);
        objGrafico.DrawLine(p, p2, p3);//desenho uma linha vermelha
        objGrafico.DrawString("C", font, brush, p3);

        //Desenha linha triangulo plotado
        objGrafico.DrawLine(p, p4, p5);//desenho uma linha vermelha
        objGrafico.DrawString("D", font, brush, p4);
        objGrafico.DrawLine(p, p4, p6);//desenho uma linha vermelha
        objGrafico.DrawString("E", font, brush, p5);
        objGrafico.DrawLine(p, p5, p6);//desenho uma linha vermelha
        objGrafico.DrawString("F", font, brush, p6);


        // Utilizo o metodo DrawString, para anexar escrever no grafico
        objGrafico.DrawString("Criando Graficos em ASP.NET", font, brush, nLeft - 50, nTop + 900);

        //Esta e a parte que salva o Bitmap na OutputStream.
        // A OutputStream e justamente um objeto que guarda tudo o que vai ser enviado ao usuario.
        // No caso de requisicões feitas para este arquivo .aspx, o que sera retornado ao usuario sera uma
        // imagem em formato jpeg em vez de um documento HTML. E esta linha que mostra o grafico na tela

        objBMP.Save(Response.OutputStream, ImageFormat.Gif);

        // Armazeno a imagem em disco, para utiliza-la.
        objBMP.Save(Server.MapPath("x.jpg"), ImageFormat.Jpeg);

        // Limpo os objetos criado da memoria;
        objFonte.Dispose();
        objBMP.Dispose();
        objGrafico.Dispose();
    }
}

0
|
0

Alexandre Machado
   - 28 fev 2010

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Pen pen = new Pen(Color.Black, 1);
            Graphics grafico = e.Graphics;
            grafico.DrawLine(pen, 10, 10, 100, 100);
        }
Coloque isso no evento paint do form que voce quer desenhar.   ai a imaginação vai longe, voce pode desenhar não só linhas, mas várias outras formas.       Alexandre Soares Machado Linhares - ES

0
|
0