Pergunta

Estrutura de tópicos

OK, eu tenho o Google tinha isso e já esperando uma grande e gordo NÃO!! Mas eu pensei que eu deveria pedir porque eu sei que por vezes pode ser estranho, pequena jóia de conhecimento à espreita em povos cabeça ^_^

Eu estou trabalhando meu caminho através de alguns exercícios em um livro de estudo, e este exercício é Controlos de Utilizador.Eu tenho montada um controle e gostaria de definir o DefaultEvent para ele (depois de ter feito isso para controlos anteriores) então, quando eu clicar duas vezes, o evento padrão criado é tudo o que eu especificar que ele seja.

NOTA: Este é um padrão de Controle de Usuário (.ascx), NÃO um personalizados prestados controle.

Código Actual

Aqui é a classe de evento e definição:

[System.ComponentModel.DefaultEvent("OKClicked")]
public partial class AddressBox : System.Web.UI.UserControl
{
    public event EventHandler OKClicked;

Resultado Atual

Agora, quando eu dê um clique duplo o controle quando ele está em uma página ASPX, o seguinte é criado:

    protected void AddressBox1_Load(object sender, EventArgs e)
    {

    }

Não é bem o que eu estava esperando!Então, a minha pergunta:

É possível definir um DefaultEvent para um UserControl?É um hack?Se ele [não], é que há uma razão?


Nota Lado:Como é que vamos colocar caracteres de sublinhado no código?Eu não consigo colocar e escapar char em?

Foi útil?

Solução

Aqui é um possível a resposta, sem a realização de testes (como martin).

No reflector, você vai ver que o DefaultEventAttribute permite próprio ser herdada.No reflector, você verá que a classe UserControl tem evento padrão definido para o evento Load.

Assim, a possível razão é que mesmo que você está decorando seu controle de usuário com o evento padrão do OKClick, VS pode ainda estar pensando que o evento padrão é carregar, na medida em que é herdado do UserControl cujo padrão de evento é de Carga.

Apenas um alto nível de adivinhar o que pode estar acontecendo.

Outras dicas

OK, eu verifiquei isso, Herdar da WebControl, ao invés de incluir UserControl..Tudo funcionou bem.

Parece Darren Kopp leva a coroa para este!Obrigado pela contribuição!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top