none
Desenhar em objeto RRS feed

  • Pergunta

  • Bom dia a todos

    Gostaria de saber se ha posibilidade de se desenhar um retangulo em um objeto como por exemplo TextBox, no formulario é facil mas nao sei se é possivel em um componente.

    obrigado.
    sexta-feira, 18 de dezembro de 2009 12:44

Respostas

  • é um pouco chato, mas o metodo abaixo funciona:

    Primeiro crie uma classe que derive de um textbox
     public class CodeBox : TextBox
        {
            public CodeBox()
            {
                SetStyle(ControlStyles.UserPaint, true);
            }


            protected override void OnPaint(PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                g.Rectangle(System.Drawing.Pens.Red, 0, 0,
            100, 100);//aqui vc vai colocar todos os comandos para desenhar


            }

        }


    Depois adicione esse controle no  seu form. Eu sei que se voce compilar a classe acima como uma dll, vc pode adicionar a toolbox, mas eu nao experimentei fazer isso.

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                CodeBox a = new CodeBox();
                a.Left = 10;
                a.Top = 10;
                a.Width = 300;
                a.Height = 30;

                Controls.Add(a);
             }
    }

    Pronto.. Um textbox com um retangulo vermelho.

    Simples como um tomate! :)

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    sexta-feira, 18 de dezembro de 2009 15:26
    Moderador
  • Os normais (padroes). Nao adicionei nenhum a mais.

    Na classe CodeBox
    using System.Drawing;
    using System.Windows.Forms;

    e no form
    using System.Windows.Forms;


    Att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    segunda-feira, 21 de dezembro de 2009 13:40
    Moderador

Todas as Respostas

  • é um pouco chato, mas o metodo abaixo funciona:

    Primeiro crie uma classe que derive de um textbox
     public class CodeBox : TextBox
        {
            public CodeBox()
            {
                SetStyle(ControlStyles.UserPaint, true);
            }


            protected override void OnPaint(PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                g.Rectangle(System.Drawing.Pens.Red, 0, 0,
            100, 100);//aqui vc vai colocar todos os comandos para desenhar


            }

        }


    Depois adicione esse controle no  seu form. Eu sei que se voce compilar a classe acima como uma dll, vc pode adicionar a toolbox, mas eu nao experimentei fazer isso.

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                CodeBox a = new CodeBox();
                a.Left = 10;
                a.Top = 10;
                a.Width = 300;
                a.Height = 30;

                Controls.Add(a);
             }
    }

    Pronto.. Um textbox com um retangulo vermelho.

    Simples como um tomate! :)

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    sexta-feira, 18 de dezembro de 2009 15:26
    Moderador
  • William

    Quais namespaces você usou para fazer esse tipo de aplicação?


    Aguardo resposta


    _____________________________________
    Thiago Oliveira Chaves
    segunda-feira, 21 de dezembro de 2009 11:00
  • Os normais (padroes). Nao adicionei nenhum a mais.

    Na classe CodeBox
    using System.Drawing;
    using System.Windows.Forms;

    e no form
    using System.Windows.Forms;


    Att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    segunda-feira, 21 de dezembro de 2009 13:40
    Moderador