Jak dodać obsługę zdarzeń z użyciem kodu
W tym przykładzie pokazano, jak dodać procedurę obsługi zdarzeń do elementu przy użyciu kodu.
Jeśli chcesz dodać program obsługi zdarzeń do elementu XAML, a strona znaczników zawierająca element został już załadowany, należy dodać procedurę obsługi przy użyciu kodu. Alternatywnie, jeśli tworzysz drzewo elementów dla aplikacji w całości przy użyciu kodu i nie deklarujesz żadnych elementów przy użyciu języka XAML, możesz wywołać określone metody, aby dodać programy obsługi zdarzeń do skonstruowanego drzewa elementów.
Przykład
Poniższy przykład dodaje nowy Button element do istniejącej strony, która jest początkowo zdefiniowana w języku XAML. Plik związany z kodem implementuje metodę obsługi zdarzeń, a następnie dodaje tę metodę jako nową procedurę obsługi zdarzeń w pliku Button.
Przykład w +=
języku C# używa operatora do przypisania procedury obsługi do zdarzenia. Jest to ten sam operator, który jest używany do przypisywania programu obsługi w modelu obsługi zdarzeń środowiska uruchomieniowego języka wspólnego (CLR). Program Microsoft Visual Basic nie obsługuje tego operatora jako środka dodawania procedur obsługi zdarzeń. Zamiast tego wymaga jednej z dwóch technik:
AddHandler Użyj metody wraz z operatorem
AddressOf
, aby odwołać się do implementacji programu obsługi zdarzeń.Handles
Użyj słowa kluczowego w ramach definicji procedury obsługi zdarzeń. Ta technika nie jest pokazana tutaj; zobacz Visual Basic i WPF Event Handling (Obsługa zdarzeń w języku Visual Basic i WPF).
<TextBlock Name="text1">Start by clicking the button below</TextBlock>
<Button Name="b1" Click="MakeButton">Make new button and add handler to it</Button>
public partial class RoutedEventAddRemoveHandler {
void MakeButton(object sender, RoutedEventArgs e)
{
Button b2 = new Button();
b2.Content = "New Button";
// Associate event handler to the button. You can remove the event
// handler using "-=" syntax rather than "+=".
b2.Click += new RoutedEventHandler(Onb2Click);
root.Children.Insert(root.Children.Count, b2);
DockPanel.SetDock(b2, Dock.Top);
text1.Text = "Now click the second button...";
b1.IsEnabled = false;
}
void Onb2Click(object sender, RoutedEventArgs e)
{
text1.Text = "New Button (b2) Was Clicked!!";
}
Public Partial Class RoutedEventAddRemoveHandler
Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim b2 As Button = New Button()
b2.Content = "New Button"
AddHandler b2.Click, AddressOf Onb2Click
root.Children.Insert(root.Children.Count, b2)
DockPanel.SetDock(b2, Dock.Top)
text1.Text = "Now click the second button..."
b1.IsEnabled = False
End Sub
Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
text1.Text = "New Button (b2) Was Clicked!!"
End Sub
Uwaga
Dodanie programu obsługi zdarzeń na stronie analizy początkowej XAML jest znacznie prostsze. W elemecie obiektu, w którym chcesz dodać procedurę obsługi zdarzeń, dodaj atrybut zgodny z nazwą zdarzenia, które ma być obsługiwane. Następnie określ wartość tego atrybutu jako nazwę metody obsługi zdarzeń zdefiniowanej w pliku kodu strony XAML. Aby uzyskać więcej informacji, zobacz XAML w WPF lub Routed Events Overview (Omówienie zdarzeń trasowanych).
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla