Usuário com melhor resposta
Textbox Personalizada

Pergunta
-
Olá a todos
Estou migrando do VB6 para o VB.NET 2008, e preciso fazer um sistema que tenha campos(textbox) personalizados.
A idéia é criar 1 campo em um UserControl para poder utilizar esse controle mais rapidamente nesse e em outros projetos futuros. ( Não sei se é a melhor forma de se fazer isso)
O código do campo e suas personalização já está pronta e funcionando.
Mas não consigo herdar as propriedades da textbox pelo usercontrol, nem sei se isso é possível. Dá erro Base Class...
Consegui criar uma propriedade para o usercontrol, pegar o texto do textbox
Mas eu precisaria também que eu pudesse no controle usar o Databindings Text, pois o que preencherá o campo é uma base de dados.
Entao gostaria da ajuda de vocês, ou para herdar todas as propriedades do textbox, ou para criar a propriedade Databindings Text da melhor forma
Segue parte do código...
Só avisando, Iniciei um projeto no VB.NET e escolhi Windows Forms Control Library
Obrigado desde já
Public Class textbox_moeda Inherits System.Windows.Forms.UserControl 'Inherits System.Windows.Forms.TextBox 'Friend WithEvents caixa As New System.Windows.Forms.TextBox Property texto() As String Get Return TextBox1.Text End Get Set(ByVal Value As String) TextBox1.Text = Value End Set End Property
Respostas
-
Se você criar uma classe normal e herdar de TextBox vai funcionar normalmente, agora se você criar um UserControl e depois mudar para TextBox ele vai dar erro pois a classe base no classe.designer.vb ainda continua como UserControl.
No erro que aparece tem a opção de mudar a classe base.
Escolha a oção Change class '' to inherit from System.Windows.Forms.TextBox.
Vc pode criar um UserControl com um TextBox dentro.- Marcado como Resposta Fernanda SimõesModerator quarta-feira, 6 de janeiro de 2010 11:18
-
Quando vc herda de algum controle tipo textbox o designer não permite arrastar controles, apenas quando vc herda de UserControl ele permite que vc possa desenhar os objetos visualmente.
Se vc herdar de um textbox o visual dele vai ser igual a um textbox, você poderá apenas modificar o visual dele se sobrescrever o método paint e desenhar o que vc quiser, vc pode apenas criar propriedades a mais.
Depois que vc herdar do textbox, vc não precisa adicionar o textbox na tela cinza, ela vai ficar assim mesmo é normal. Se vc compilar o projeto o seu novo textbox vai aparecer no ToolBox ai sim vc pode arrastar ele para um formulario.- Marcado como Resposta Fernanda SimõesModerator quarta-feira, 6 de janeiro de 2010 11:18
Todas as Respostas
-
Se você criar uma classe normal e herdar de TextBox vai funcionar normalmente, agora se você criar um UserControl e depois mudar para TextBox ele vai dar erro pois a classe base no classe.designer.vb ainda continua como UserControl.
No erro que aparece tem a opção de mudar a classe base.
Escolha a oção Change class '' to inherit from System.Windows.Forms.TextBox.
Vc pode criar um UserControl com um TextBox dentro.- Marcado como Resposta Fernanda SimõesModerator quarta-feira, 6 de janeiro de 2010 11:18
-
Obrigado pela resposta,
Tentei aqui e realmente herdou, mas ficou estranho,
a Tela do UserControl (designer) sumiu, eu devo adicionar uma textbox na tela cinza?
deu erro na execução:
System.ArgumentException was unhandled
Message="Assembly 'caminho.dll' doesn't contain any UserControl types."
Quando eu adiciono não dá erro, porém não está pegando as personalizações que fiz.
não sei mais o que fazer, você pode me explicar passo a passo a fazer a textbox personalizada para que funcione e que eu possa utilizá-la em outros projetos com as propriedades herdadas, ou conhece algum tutorial na internet que explique de forma fácil ? Não conheço bem essa parte de controles, fiz apenas uma .dll em vb6 há 5 anos atrás.
Muito Obrigado
-
Quando vc herda de algum controle tipo textbox o designer não permite arrastar controles, apenas quando vc herda de UserControl ele permite que vc possa desenhar os objetos visualmente.
Se vc herdar de um textbox o visual dele vai ser igual a um textbox, você poderá apenas modificar o visual dele se sobrescrever o método paint e desenhar o que vc quiser, vc pode apenas criar propriedades a mais.
Depois que vc herdar do textbox, vc não precisa adicionar o textbox na tela cinza, ela vai ficar assim mesmo é normal. Se vc compilar o projeto o seu novo textbox vai aparecer no ToolBox ai sim vc pode arrastar ele para um formulario.- Marcado como Resposta Fernanda SimõesModerator quarta-feira, 6 de janeiro de 2010 11:18