none
criar botão

    Question

  •  

    Boa tarde colegas,

     

    preciso da ajuda de vocês.

    A minha dúvida é simples, como que eu crio um componente buttom??

    Pq eu queria criar um botão de "abrir", que tenha as mesmas propriedades que um buttom normal, mas que tenha um ícone de uma pasta.

    Para que eu não precisa ficar defindo essa propriedade em todos os botões de abrir do sistema.

     

    Obrigado!

    Tuesday, January 08, 2008 4:00 PM

Answers

  • Olá Glaudson,
    Tem sim como fazer isso..
    A minha sugestão é vc criar um novo Item no seu projeto como CustomControl. No espaço q aparecerá, vc arrasta um componente button e o customiza do jeito q quiser...
    Após compilar o projeto, irá aparecer na ToolBox a disposição de todos os Forms o seu CustomControl recém criado. A partir daí, é só arrastar normalmente como todo os outros componentes...

    Espero ter ajudado..
    Friday, January 11, 2008 12:40 PM
  • Olá Glaudson,
    Tenta fazer um teste assim, talvez resolva o problema...
    Na classe que vc herdou de Button, ao inves de configurar as propriedades do button assim:

    this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;


    muda pra essa maneira:

    this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;


    configurando as propriedade da propria classe, uma vez q ela herda de Button. Pode ser q nem seja mais necessario aquele componente button q foi arrastado inicialmente para o Custom Control...

    Uma outra solução q andei pesquisando, mas não encontrei nada de concreto, é a possibilidade de existir algum método para ser sobrescrito, para que na hora em que é desenhado o componente, ele deixe de pegar as configurações padrões e passe a usar as definidas na classe q está herdando de Button..

    Espero ter ajudado..



    Monday, January 14, 2008 2:55 AM

All replies

  • Não tem como fazer isso???

     

    Thursday, January 10, 2008 1:40 PM
  • Olá Glaudson,
    Tem sim como fazer isso..
    A minha sugestão é vc criar um novo Item no seu projeto como CustomControl. No espaço q aparecerá, vc arrasta um componente button e o customiza do jeito q quiser...
    Após compilar o projeto, irá aparecer na ToolBox a disposição de todos os Forms o seu CustomControl recém criado. A partir daí, é só arrastar normalmente como todo os outros componentes...

    Espero ter ajudado..
    Friday, January 11, 2008 12:40 PM
  •  

    Oi Ada,

     

    eu tentei o que vc me recomendou, mas eu acho que não dá...

    eu acho que só funciona para criar métodos diferentes para o objeto, e não definir propriedades, pq eu tentei e não consegui.

     

    primeiro o código fica assim:

     

     

    Code Block

    public partial class botaoPesquisar : Control

    {

    public botaoPesquisar()

    {

    InitializeComponent();

    }

    protected override void OnPaint(PaintEventArgs pe)

    {

    // TODO: Add custom paint code here

    // Calling the base class OnPaint

    base.OnPaint(pe);

    }

    }

     

    mas como o que eu to querendo é um botão, eu mudei a classe herdada, e ficou assim:

     

    Code Block

    public partial class botaoPesquisar : Button

    {

    public botaoPesquisar()

    {

    InitializeComponent();

    }

    protected override void OnPaint(PaintEventArgs pe)

    {

    // TODO: Add custom paint code here

    // Calling the base class OnPaint

    base.OnPaint(pe);

    }

     

    Ai eu coloquei a imagem como fundo do botão no painel de propriedade, e a inicialização do componente ficou assim:

     

    Code Block

    private void InitializeComponent()

    {

    this.button1 = new System.Windows.Forms.Button();

    this.SuspendLayout();

    //

    // button1

    //

    this.button1.BackgroundImage = global::Sistema.Properties.Resources.xp66;

    this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;

    this.button1.Location = new System.Drawing.Point(0, 0);

    this.button1.Name = "button1";

    this.button1.Size = new System.Drawing.Size(75, 23);

    this.button1.TabIndex = 0;

    this.button1.Text = "button1";

    this.button1.UseVisualStyleBackColor = true;

    this.ResumeLayout(false);

    }

     

    mas quando eu uso o componente que apareceu no toolbox, aparece só um botão comum, com o nome do botão escrito.

     

    Uffa!

    Enfim, você sabe se tem outra forma? Ou se tem que mudar alguma coisa no código do componente?

    Obrigado pela atenção!

     

    Friday, January 11, 2008 4:21 PM
  • Olá Glaudson,
    Tenta fazer um teste assim, talvez resolva o problema...
    Na classe que vc herdou de Button, ao inves de configurar as propriedades do button assim:

    this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;


    muda pra essa maneira:

    this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;


    configurando as propriedade da propria classe, uma vez q ela herda de Button. Pode ser q nem seja mais necessario aquele componente button q foi arrastado inicialmente para o Custom Control...

    Uma outra solução q andei pesquisando, mas não encontrei nada de concreto, é a possibilidade de existir algum método para ser sobrescrito, para que na hora em que é desenhado o componente, ele deixe de pegar as configurações padrões e passe a usar as definidas na classe q está herdando de Button..

    Espero ter ajudado..



    Monday, January 14, 2008 2:55 AM
  • Oi Ada,

     

    desculpe a demora do agradecimento, mas eu ainda não consegui o que eu estava tentando...

    não consegui fazer o componente herdando o botão e defindo algumas propriedades.

    Mas as dicas que você me deu, abriu minha mente para pensar algumas coisas muito úteis.

    Muito obrigado msm!

    Abraços!

     

    Glaudson

     

    Thursday, January 17, 2008 4:22 PM