Ir para conteúdo
Fórum Script Brasil
  • 0

User Control


kuroi

Pergunta

estava tentando fazer o meu proprio componente, mas está foda.

por exemplo, se eu quero fazer uma textbox que selecione o texto automaticamente quando ganha foco, ou com qualquer outra caracteristica que eu quiser por, como faco?

tipo tem que ser uma textbox com as propriedades certinho, que eu consiga aumentar e diminuir quando puser no formulario.

porque quando eu ponho pra fazer um novo user control, ou um novo projeto ActiveX Control, ele mostra tipo um formulario em branco e depois quando tento adicionar o componente em outro form ele traz tipo o formulario do controle todo. como faco para que o meu componente seja so uma text box?

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Acredito que seria assim:

Private Sub MeuValidate(Cancel As Boolean)
    
End Sub

Private Sub Text1_Validate(Cancel As Boolean)
    MeuValidate Cancel
End Sub

Ou seja, você vai estar chamando uma sub normalmente. Quanto ao Cancel, você define ele para True quando os dados do controle não são válidos.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
vixe... facil assim???

Sim... hehehe.

quanto ao cancel, faz alguma diferenca eu passar true ou false?

Sim, se você a definir como True e a propriedade CausesValidation da textbox também estiver como True você não vai conseguir tirar o foco do controle.

tipo sou eu quem defino isso quando for chamar de outra sub?

O ideal é definir isso no evento, a não ser que você não queira poder definir a regra de validação externamente (colocando-a diretamente no controle).

quando eu tiro o foco do controle e ele chama o validate sozinho vem sempre false, certo?

Sim, e você define como True se os dados não estiverem corretos. Imagine que você queira validar se uma textbox contém um valor maior que 0. Você poderia fazer isso:

Private Sub Text1_Validate(Cancel As Boolean)
    If Val(Text1.Text) <= 0 Then
        Cancel = True
    End If
End Sub

Com a propriedade CausesValidation definida como True você não vai conseguir sair da textbox até que digite um valor maior do que 0.

Sacou? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

tentando fazer um componente, semelhante a um text box, tenho um codigo assim:

Private tx As String
Public Property Get Text() As String
    txt.Text = tx
    Text = tx
End Property
Public Property Let Text(Value As String)
    tx = Value
End Property[/code]

onde txt é o nome da TextBox que esta dentro do meu Control.

o que acontece é que quando vou utilizar o controle, no design ainda do formulario, quando acesso as propriedades do meu control, quando vou alterar a propriedade text, ele não altera o textbox de dentro ate eu tirar o foco.

tipo, na Properties Window, quando eu digito algo na propriedade Text de um TextBox qualquer, ele altera no textbox que esta no meu formulario automaticamente a cada letra que eu insiro/apago. agora, no meu control, ele não altera enquanto digito, so altera quando eu tiro o foco da propriedade text. o que tenho que fazer??

outra coisa, é que, na properties window, quando acesso a propriedade text, como faco pra ele mostrar uma descrição?? exemplo, num textbox normal, quando ponho foco na propriedade text, aparece escrito "Returns/sets the text contained in the control". no meu, não aparece nd. como faco pra preencher esse texto??

EDITADO:

esse eu descobri

outra coisa, é que, na properties window, quando acesso a propriedade text, como faco pra ele mostrar uma descrição?? exemplo, num textbox normal, quando ponho foco na propriedade text, aparece escrito "Returns/sets the text contained in the control". no meu, não aparece nd. como faco pra preencher esse texto??
é só entrar em Tools -> Procedure Attributes.

mas ainda não sei como faco pra atualizar o textbox quando eu digito o texto.

otra coisa, seu quero fazer uma propriedade para alinhamento de texto, eu crio como AlignmentConstants. na Properties Window, o Visual Basic mostra, por exemplo a opção "0 - vbLeftJustify", enquanto que numa TextBox normal, seria "0 - Left Justify". tem como eu alterar esse texto??

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

encontrei esse tópico aqui q abri anos atras, e como ele esta sem solucao ate hj, e não tem tantas informacoes sobre isso por ai, e como já sei as respostas, resolvi vir responder aqui pra esclarecer caso alguém quiera saber sobre isso:

quando eu ponho pra fazer um novo user control, ou um novo projeto ActiveX Control, ele mostra tipo um formulario em branco e depois quando tento adicionar o componente em outro form ele traz tipo o formulario do controle todo. como faco para que o meu componente seja so uma text box?

no evento Resize do UserControl, você deve mudar as dimensoes do TextBox para q tenha o tamanho exato do UserControl.

o que acontece é que quando vou utilizar o controle, no design ainda do formulario, quando acesso as propriedades do meu control, quando vou alterar a propriedade text, ele não altera o textbox de dentro ate eu tirar o foco.

tipo, na Properties Window, quando eu digito algo na propriedade Text de um TextBox qualquer, ele altera no textbox que esta no meu formulario automaticamente a cada letra que eu insiro/apago. agora, no meu control, ele não altera enquanto digito, so altera quando eu tiro o foco da propriedade text. o que tenho que fazer??

em menu Tools -> Procedure Attributes..., selecione a propriedade q você quer q corresponda a Text, clique no botao Advanced >> e na opcao Procedure ID, selecione "Text".

otra coisa, seu quero fazer uma propriedade para alinhamento de texto, eu crio como AlignmentConstants. na Properties Window, o Visual Basic mostra, por exemplo a opção "0 - vbLeftJustify", enquanto que numa TextBox normal, seria "0 - Left Justify". tem como eu alterar esse texto??

essa parte já é mais complicada, só vale a pena ir atras caso você queira muito mesmo. mas aqui o cara postou um projeto de exemplo de como fazer: http://www.vbforums.com/showthread.php?t=550204

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...