我是c#的新手,对WPF应用程序上的事件有疑问。我有两个事件(Button_Click和myslider_ValueChanged),并希望在Button_Click之后运行myslider_ValueChanged。我尝试过使用EventHandler,但它们仍然同时运行。有没有更简单的方法来执行此操作,例如嵌套事件?任何帮助表示赞赏,谢谢。我已在下面附加了我的EventHandler尝试。
namespace program
{
public partial class MainWindow : Window
{
public event EventHandler _Click;
public event EventHandler _ValueChanged;
protected void On_Click(EventArgs e)
{
if (_Click != null)
{
_Click(this, e);
}
}
protected void On_ValueChanged(EventArgs e)
{
On_Click(EventArgs.Empty);
}
private void Initialize()
{
_Click += new EventHandler(_Click);
_ValueChanged += new EventHandler(_ValueChanged);
_Click += _ValueChanged;
}
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
//Code here
}
private void myslider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
//Code here
}
答案 0 :(得分:4)
你应该让myslider_ValueChanged调用另一种方法来执行工作,然后从button_click中调用该新方法。
例如:
private void myslider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
HandleValueSliderChanged();
}
private void HandleValueSliderChanged() {
//Code here
}
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
//Code here
HandleValueSliderChanged();
}
答案 1 :(得分:0)
所以只需在Button click事件中设置myslider.IsEnabled = true即可。并在之前的Initialize方法中将其设置为false。