2010-12-27 7 views
6

Czy istnieje sposób, aby dowiedzieć się, jakie parametry są wymagane przez zdarzenie w programie Visual Studio 2010?Znajdź odpowiednie parametry zdarzenia bez użycia trybu projektowania w Visual Studio 2010

Powiedzmy Mam kontroli DropDownList i chcę powiązać metodę do "OnSelectedIndexChanged", chciałbym zrobić coś takiego

w pliku ASPX:

<asp:DropDownList ID="lstMyList" runat="server" OnSelectedIndexChanged="lstMyList_SelectedIndexChanged"></asp:DropDownList> 

W kodzie:

protected void lstMyList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ... 
} 

Czy istnieje sposób na określenie parametrów wymaganych przez metodę? (W tym przypadku obiekt dla nadawcy i parametr EventArgs dla zdarzenia.)

Wiem, że można łatwo utworzyć metodę, klikając dwukrotnie odpowiednie zdarzenie w trybie projektowania, ale powoduje to bałagan w kodzie więc wolę jej nie używać.

Dzięki!

Odpowiedz

6

można dowiedzieć się o parametry „zamiar definicji” (F12) na odpowiednim przypadku, dowiedzieć się, jakiego typu delegat używa, następnie przechodząc do definicji na ten temat. W tym przypadku zdarzenie SelectedIndexChanged ma typ EventHandler która jest zdefiniowana w następujący sposób:

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler(
    Object sender, 
    EventArgs e 
) 

Można również znaleźć te informacje przez przeszukanie sieci lub naciskając klawisz F1 i wyszukiwanie w pomocy.


wiem, można łatwo stworzyć metodę poprzez dwukrotne kliknięcie prawym wydarzenie w trybie projektowania, ale robi bałagan z kodem, więc nie korzystać z tego ustawienia.

Myślę, że powinieneś spróbować pokonać swój strach przed używaniem projektanta. Najprawdopodobniej marnujesz więcej czasu na utratę produktywności, ponieważ nie używasz funkcji generowania kodu w Visual Studio, niż potencjalny czas, jaki mógłbyś zaoszczędzić, chroniąc się przed projektantem psującym kod.

+0

Może za kodbehind, ale nadal mam problemy ze znacznikami HTML/ASP.NET. – Jason

+0

Tak, tej funkcji brakuje w edytorze znaczników VS. –

+0

Czy powinienem zobaczyć opcję "Going to definition", gdy kliknę prawym przyciskiem myszy wydarzenie w edytorze znaczników? F12 też nie działa. – Jason

2

Trudno ekonomicznie pod względem naciśnięć klawiszy i produktywności, ale możliwość, jeśli znajdujesz zdarzenie w kodzie "Idź do definicji" i wyobraź sobie przez chwilę, że nie masz nic przeciwko korzystaniu z funkcji edytora kodu VS też powinien nacisnąć klawisz Tab, a następnie dodać znak + = przed naciśnięciem klawisza Tab jeszcze dwa razy. Spowoduje to wygenerowanie odpowiedniej delegacji i definicji metody, dzięki czemu zobaczysz podpis metody.

Na przykład, wpisując następujące, tabbing odpowiednio (dwukrotnie po wprowadzeniu '+ =')

MyType.MyEvent += new System.EventHandler(MyType_MyEvent); 

Generuje sposób jak poniżej:

void MyType_MyEvent(object sender, EventArgs e) 
{ 
    throw new NotImplementedException(); 
} 

Otóż, obniżenie wydajności mógł występuje, jeśli faktycznie nie potrzebujesz obu kawałków kodu.