Desenhar uma linha no form em C#
25/02/2010
0
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.
Cleudivan
Curtir tópico
+ 0
Responder
Posts
26/02/2010
Otton Moura
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();
}
}
// -- 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();
}
}
Responder
28/02/2010
Alexandre Machado
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
{
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)