none
Evento

    Question

  • VB6

    Galera, tenho um problema criei um controle e neste controle o usuário do controle (programador) inclui alguns itens. Cada item é exibido em um label na tela.

     

    O Que preciso é o seguinte:

    no Meu controle quando o  programador cria um item este item vai gerar um evento click.

    do jeito que eu fiz o evento click retorna o indice do item, porém quero dar a opção de gerar o evento pelo nome que ele passo não pelo indice. exemplo:

    Criei o item 1 com Nome = Item1 então o evento deveria ser Item1_Click() e assim para o item 2, item 3...

    alguém sabe como fazer?

    Thursday, April 08, 2010 7:44 PM

Answers

  • Olá Dinizmonteiro,

    Quando você cria um controle, o programador que irá utilizá-lo somente poderá "enxergar" os eventos da instância desse controle. Não podes causar eventos de controles que não existem na visão do programador que o está utilizando.

    Por exemplo. Em um form que você adicione um botão chamado cmdBotao, os eventos desse botão serão todos sobre esse objeto:

    cmdBotao_Click

    cmdBotao_MouseMove

    etc

    Pelo que disseste, no teu controle, quando o usuário (o programador) adiciona um item em alguma lista, tu cria algum label no próprio controle. Esses labels não são visíveis na forma de label pelo usuário. Conseguirás gerar apenas eventos sobre a instância que o usuário está utilizando do teu controle. Por exemplo, o usuário(programador) cria um objeto do teu controle no form dele, chamado controleDinizNro01. Então, os eventos que serão gerados nesse form para esse controle seriam:

    controleDinizNro01_eventoX

    controleDinizNro01_eventoY

    etc

    O que podes fazer, como sugestão, é criares um evento específico no teu controle, que passe o nome do label como parâmetro. Por exemplo, poderias criar um evento como o seguinte:

    Public Event ClickEspecial(byval sNomeLabel as string)

    No objeto controleDinizNro01 do form citado como exemplo anteriormente, o usuário poderia receber o evento da seguinte forma:

    controleDinizNro01_ClickEspecial(byval sNomeLabel as string)

    Então, poderias fazer os tratamentos para tal nome de label, conforme necessidade.

    Espero ter ajudado,

    Daniel Ethur - Porto Alegre / RS

    Monday, June 14, 2010 5:35 PM