#c# #wpf #event-handling
#c# #wpf #обработка событий
Вопрос:
Я динамически создаю GroupBox и пытаюсь назначить ему событие MouseLeftButtonDown для выполнения некоторого действия, когда пользователь щелкает по нему левой кнопкой мыши. Это то, что я пробовал:
public MyClass()
{
tagGroupBox.MouseLeftButtonDown = new MouseButtonEventHandler(tagGroupBox_MouseLeftButtonDown); //generates error: "tagGroupBox_MouseLeftButtonDown does not exist in the current context"
}
private void tagGroupBox__MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Left click event triggered");
}
Ответ №1:
В методе обработчика есть __ (двойное подчеркивание).
void tagGroupBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
}
Комментарии:
1. Вау, я не могу поверить, что пропустил это. Спасибо, что заметили это!
Ответ №2:
Это работает для меня:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
GroupBox g = new GroupBox();
g.MouseLeftButtonUp = new MouseButtonEventHandler(g_MouseLeftButtonUp);
MainGrid.Children.Add(g);
}
void g_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
System.Diagnostics.Debugger.Break();
}
}
XAML
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="MainGrid">
</Grid>
</Window>