none
Classes RRS feed

  • Pergunta

  • Olá Pessoal, tudo bem?

    Sou iniciante em C# e estou começando a utilizar o Visual Studio 2010 programando em C#.

    Eu queria clicar várias classes padrões p/ os objetos como: button, label, textbox, form e etc.

    Após criar estes objetos padrão e definir propriedades e métodos gostaria de utilizá-lo em forms.

    Sendo assim, ao criar vários forms e adicionar estes objetos personalizados, se eu fizesse uma alteração em qualquer um dos objetos, automaticamente todos os objetos dos forms que derivassem desse objeto, todos seriam alterados conforme o objeto padrão.

    Exemplo, crio uma classe para o objeto label e defino que a fonte é 18. Adiciono esta classe à uma form que ela teria como padrão a fonte 18. Voltaria na classe do objeto label e alteraria a fonte para 22. Automaticamente a classe do objeto label adicionado no form seria alterado para 22. Este é só um exemplo, mas queria fazer o mesmo para diversos outros objetos, como forms e buttons.

    quarta-feira, 21 de julho de 2010 00:57

Respostas

  • So pra saber de qual Linguagem vc esta vindo ? as veses ajuda na explicação....

    mas criar componentes customizados é facil:

     

    public class MyCustomLabel: Label {
           public MyCustomLabel(): base {
                  this.Font.Size = 20;
           }
    }

     

    onde ": Label" é o componente q vc quer herdar... e

    "public MyCustomLabel(): base" é a inicialização da classe... onde vc define os valores padrao das variaveis...

    Uma vez que vc faça o Build All os componentes deverao aparacer automaticamente no seu ToolBox

     


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ? Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quarta-feira, 21 de julho de 2010 02:42
    Moderador
  • Ola

     

    Vc pode fazer isso extendendo uma classe.

     

    Faz assim: No caso do seu exemplo de label

     

    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
     class MeuLabel : Label
     {
      public MeuLabel():base 
      {
       this.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      }
    
     }
    }
    
    

     

    note que a classe MeuLabel deriva de label e que no construtor eu defini a fonte com tamanho 18...

    se todos os formularios usarem o meulabel e voce mudar o construtor para usar a fonte 22, ento automaticamente todos os seus formularios serao ajustados.. isso chama-se herança.

     

    Att 

     


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

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quarta-feira, 21 de julho de 2010 03:26
    Moderador
  • Frederico,

    Uma opção além da que o Rui comentou é utilizar WPF e criar estilos e templates.

    Styling and Templating
    http://msdn.microsoft.com/en-us/library/ms745683.aspx

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com  

    quarta-feira, 21 de julho de 2010 03:29
    Moderador

Todas as Respostas

  • Hi,

    Afinal... qual e sua duvida?

    Att,


    Tech-ed 2010
    quarta-feira, 21 de julho de 2010 02:18
    Moderador
  • So pra saber de qual Linguagem vc esta vindo ? as veses ajuda na explicação....

    mas criar componentes customizados é facil:

     

    public class MyCustomLabel: Label {
           public MyCustomLabel(): base {
                  this.Font.Size = 20;
           }
    }

     

    onde ": Label" é o componente q vc quer herdar... e

    "public MyCustomLabel(): base" é a inicialização da classe... onde vc define os valores padrao das variaveis...

    Uma vez que vc faça o Build All os componentes deverao aparacer automaticamente no seu ToolBox

     


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ? Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quarta-feira, 21 de julho de 2010 02:42
    Moderador
  • Ola

     

    Vc pode fazer isso extendendo uma classe.

     

    Faz assim: No caso do seu exemplo de label

     

    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
     class MeuLabel : Label
     {
      public MeuLabel():base 
      {
       this.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      }
    
     }
    }
    
    

     

    note que a classe MeuLabel deriva de label e que no construtor eu defini a fonte com tamanho 18...

    se todos os formularios usarem o meulabel e voce mudar o construtor para usar a fonte 22, ento automaticamente todos os seus formularios serao ajustados.. isso chama-se herança.

     

    Att 

     


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

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quarta-feira, 21 de julho de 2010 03:26
    Moderador
  • Frederico,

    Uma opção além da que o Rui comentou é utilizar WPF e criar estilos e templates.

    Styling and Templating
    http://msdn.microsoft.com/en-us/library/ms745683.aspx

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com  

    quarta-feira, 21 de julho de 2010 03:29
    Moderador
  • Olá, td bem?

     

    Minha dúvida era justamente como criar controles como label e textbox personalizados e depois usar em FORMs. Parece q o pessoal abaixo já deu algumas respostas q vou poder testar mais tarde.

     

    Obrigado por enquanto pela atenção.

     

    Se precisar, volto a te consultar.

    quarta-feira, 21 de julho de 2010 13:29
  • Eu venho do Microsfot Visual FoxPro 9. Fazem 20 anos q utilizo a linguagem e sinceramente amo a linguagem e sempre ela me atendeu em tudo. Nunca deixei d fazer nada por usar o VFP, mas como devem saber, ñ haverá novas versão do VFP, foi descontinuado pela M$, então estou iniciando meus estudos p/ me aperfeiçoar em outra linguagem, como sou atualmente em VFP.

     

    Após várias consultas e conversas c/ amigos, me sugerirão me decidicar na combinação VS 2010 C# + MSSQL (qual a opinião d vcs sobre isto tbm)?

     

    Sobre sua dica d como criar a classe, só posso estudar a noite pois o VS2010 fica no meu desktop.

     

    Vou testar a noite e depois retorno p/ dizer se funcionou.

     

    Obrigado por enquanto.

    quarta-feira, 21 de julho de 2010 13:33
  • Como não dá p/ agradecer para cada um, gostaria antecipadamente d agradecer à tds pela ajuda.

    Ainda ñ tive tpo d testar pois o VS 2010 fica no meu dekstop em casa e somente a noite vou poder testar as dicas.

    Mas vou testá-la e em caso d dúvidas volto a postar.

    Mais uma vez obrigado à tds.


    Atenciosamente, Frederico Oliva Consultor de TI foliva@dc-info.com
    quarta-feira, 21 de julho de 2010 13:38
  • Ta ai... FoxPro eu nunca usei ..... ^^

    Então hoje em dia praticamente so existem 2 linguagems que provavelmente irão durar algum tempinho ... C# e Java... (alguem pode falar em VB tmb... mas pra mim VB.NET (VB.FRANKSTEIN) não é VB... e não vejo futuro em tranformar uma linguagem "orientada a eventos" em "orientada a objetos")

    Agora discutir sobre o que é melhor... C# ou Java... dificil... muito mesmo... Logico... C# tem um Interface bem melhor... (nem se compara o Visual Studio á um Eclipse ou ao Netbeans) mas deixando de lado e focando na linguagem somente... ambas tem pontos fortes muito superior a outra...

    C# tem Linq, Lamda Expresions, XAML, tipos anonimos, propriedades, delegates....
    e o Java.... cara é o Java.... vc programa ate o seu esqueiro em java.... tá não tem uma framework grafica das mais praticas de se implementar... consumir um webservice é um trabalho um tanto quanto... cansativo.... mas e dai... vc monta um fonte e roda onde vc quiser... pra que "facilidade de programação" ??

    Então... C# é um bom começo.... eu particulamente estudo tanto C# como Java, nunca se sabe ao certo quando vai prescisar e conhecimento nunca é demais...


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ? Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quarta-feira, 21 de julho de 2010 17:49
    Moderador
  • So pra saber de qual Linguagem vc esta vindo ? as veses ajuda na explicação....

    mas criar componentes customizados é facil:

     

    public class MyCustomLabel: Label {
           public MyCustomLabel(): base {
                  this.Font.Size = 20;
           }
    }

     

    onde ": Label" é o componente q vc quer herdar... e

    "public MyCustomLabel(): base" é a inicialização da classe... onde vc define os valores padrao das variaveis...

    Uma vez que vc faça o Build All os componentes deverao aparacer automaticamente no seu ToolBox

     


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ? Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....


    Rui, dos exemplos q li acima, o seu me pareceu o mais simples e mais parecido do q eu fazia no VFP, a diferença é q no VFP eu podia fazer td graficamente, praticamente ñ precisava escrever linhas d programação, ao menos q desejasse criar métodos "personalizados" p/ aquela classe.

    Então a primeira pergunta é: dá p/ fazer isto somente graficamente, tipo, arrastar um objeto do tipo label, alterar as propriedades via WINDOW PROPRIETIES, salvar numa "MY TOOLBOX" depois abrir um FORM e somente arrastar aquela classe personalizada p/ dentro do FORM?

    Señ der, desculpe a solicitaçÃo pois estou começando mexer c/ o C# esta semana (somente segunda q consegui instalar) e ainda por ñ esta em casa ñ tive como testar sua dica (pois só tenho o VFP no DESKTOP), mas poderia tipo fazer um roteiro d onde clicar, q tipo d projeto abrir p/ eu poder "consumir" sua dica?

    PS: por acaso vc tem MSN ou SKYPE?


    Atenciosamente, Frederico Oliva Consultor de TI foliva@dc-info.com
    quarta-feira, 21 de julho de 2010 18:31
  • Frederico,

    Uma opção além da que o Rui comentou é utilizar WPF e criar estilos e templates.

    Styling and Templating
    http://msdn.microsoft.com/en-us/library/ms745683.aspx

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com    


    Ari, primeiramente obrigado pelo retorno, mas o link q vc me passou, se entendi bem, este recurso é mais voltado p/ parte visual certo?

    Além da parte visual, como dei exemplo d poder padronizar o tamanho da fonte d um objeto label, eu tenho possa precisar criar propriedades e métodos personalizados.


    Atenciosamente, Frederico Oliva Consultor de TI foliva@dc-info.com
    quarta-feira, 21 de julho de 2010 18:41
  • Ah... acho q entendi... era como no VB que vc selecionava os controls num form e criava um outro control com eles...

    Voce pode criar um UserControl ... basicamente vai aparecer na tela uma especie de Panel onde vc pode colocar outros controls dentro...


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ? Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quarta-feira, 21 de julho de 2010 19:56
    Moderador
  • Hi,

    É... o pessoal e rapido... so tem fera...

    Att,


    codeco Adriel Codeco Silva
    Email: adriel.silva@uppercase.com.br
    MSN: adrielcodeco@hotmail.com
    Blog: adrielcodeco.wordpress.com
    Uppercase – www.uppercase.com.br
    quarta-feira, 21 de julho de 2010 21:47
    Moderador
  • Ola

     

    Vc pode fazer isso extendendo uma classe.

     

    Faz assim: No caso do seu exemplo de label

     

    using
    
    
     System.Windows.Forms;
    
    namespace
    
    
     WindowsFormsApplication1
    {
     class
    
    
     MeuLabel : Label
     {
     public
    
    
     MeuLabel():base 
    
    
    
     {
     this
    
    
    .Font = new
    
    
     System.Drawing.Font("Microsoft Sans Serif"
    
    
    , 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte
    
    
    )(0)));
     }
    
     }
    }
    
    

     

    note que a classe MeuLabel deriva de label e que no construtor eu defini a fonte com tamanho 18...

    se todos os formularios usarem o meulabel e voce mudar o construtor para usar a fonte 22, ento automaticamente todos os seus formularios serao ajustados.. isso chama-se herança.

     

    Att 

     


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

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)


    William, obrigado pelo retorno. Sou novato no desenvolvimento. Eu até conseguir copia seu fonte e colocar num .CS mas depois disso ñ consigo usar num form.

    Até hj só programei em VFP.

    Ñ querendo abusar, será q vc ñ poderia fazer um roteiro do q tenho q fazer, onde tenho q clicar p/ poder fazer do começo ao fim? Criar a classe, atribuir propriedades personalizadas e depois inclur num FORM por exemplo?

    Desde já obrigado e depois abusar.


    Atenciosamente, Frederico Oliva (foliva@dc-info.com)
    quarta-feira, 21 de julho de 2010 23:15
  • So pra saber de qual Linguagem vc esta vindo ? as veses ajuda na explicação....

    mas criar componentes customizados é facil:

     

    public class MyCustomLabel: Label {
           public MyCustomLabel(): base {
                  this.Font.Size = 20;
           }
    }

     

    onde ": Label" é o componente q vc quer herdar... e

    "public MyCustomLabel(): base" é a inicialização da classe... onde vc define os valores padrao das variaveis...

    Uma vez que vc faça o Build All os componentes deverao aparacer automaticamente no seu ToolBox

     


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ? Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    Rui, obrigado pelo retorno. Sou novato no desenvolvimento. Eu até conseguir copia seu fonte e colocar num .CS mas depois disso ñ consigo usar num form.

    Até hj só programei em VFP.

    Ñ querendo abusar, será q vc ñ poderia fazer um roteiro do q tenho q fazer, onde tenho q clicar p/ poder fazer do começo ao fim? Criar a classe, atribuir propriedades personalizadas e depois inclur num FORM por exemplo?

    Desde já obrigado e depois abusar.



    Atenciosamente, Frederico Oliva (foliva@dc-info.com)
    quarta-feira, 21 de julho de 2010 23:16
  • Frederico,

    Mesmo que necessite de métodos personalizados você pode fazer isso usando WPF.

    Conforme você comentou, como ainda está iniciando na plataforma .NET, sugiro que primeiro aprenda uma de suas linguagens (C# ou VB.NET) e depois então você pode começar a estudar mais sobre o framework e suas tecnologias (Windows Forms, WPF, ASP.NET, Silverlight, WCF e outros).

    De preferência, leia a referência da linguagem ou um bom livro e faça os exemplos criando aplicações console no Visual Studio. Na minha opinião, aprender direto Windows Forms não funciona.

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com  

    quinta-feira, 22 de julho de 2010 00:17
    Moderador
  • Frederico,

    Mesmo que necessite de métodos personalizados você pode fazer isso usando WPF.

    Conforme você comentou, como ainda está iniciando na plataforma .NET, sugiro que primeiro aprenda uma de suas linguagens (C# ou VB.NET) e depois então você pode começar a estudar mais sobre o framework e suas tecnologias (Windows Forms, WPF, ASP.NET, Silverlight, WCF e outros).

    De preferência, leia a referência da linguagem ou um bom livro e faça os exemplos criando aplicações console no Visual Studio. Na minha opinião, aprender direto Windows Forms não funciona.

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com    


    Desculpe Ari, mas ñ entendi bem seu conselho. Por favor, poderia ser mais claro?

    Aproveitando, eu ñ consegui ainda fazer funcionar as dicas q o William e o Rui deram anteriormente. Señ fosse pedir mt, vc ñ poderia me passar um roteirinho d como proceder conforme as dicas q eles deram?

    Desde já obrigado e desculpe o incômodo.


    Atenciosamente, Frederico Oliva (foliva@dc-info.com)
    quinta-feira, 22 de julho de 2010 02:03
  • Frederico,

    Basicamente o que eu quis dizer é que você deve primeiro aprender bem uma linguagem (por exemplo, C#) e depois começar a aprender alguma tecnologia (Windows Forms, WPF, ASP.NET e outros), não pule etapas pois será ruim.

    Em Windows Forms é possível criar um controle herdando de Control (Custom Controls), criar controles compostos de outros controles (Composite Controls) ou controles que estendem a funcionalidade de outros controles (Extended Controls).

    O pessoal mostrou a você exemplos de como criar um controle do tipo Extended Control. Segue abaixo um tutorial do próprio MSDN que explica como criar um controle desse tipo.

    Walkthrough: Inheriting from a Windows Forms Control with Visual C#
    http://msdn.microsoft.com/en-us/library/5h0k2e6x.aspx

    Espero ter ajudado.

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com  

    sábado, 24 de julho de 2010 04:26
    Moderador