没有针对ClickEvent的定义?

12 浏览
0 Comments

没有针对ClickEvent的定义?

在下面的代码中,我尝试模拟按钮Browse的点击事件。

private void TextBox_MouseDown(object sender, RoutedEventArgs e)
{
    this.Browse.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
}

我遇到的错误如下:

'System.Windows.Forms.ButtonBase'不包含定义为'ClickEvent'的成员

如何触发点击事件?

似乎有些人在质疑这段代码的目的。我在这里找到了它https://stackoverflow.com/a/733974/1477388,只是想让它工作。

0
0 Comments

(No definition for ClickEvent?) 这个问题出现的原因是在XAML代码中直接调用了Button_Click事件,而没有先在.cs代码中定义该事件。解决方法是将想要在Click事件中调用的代码放入一个方法中,在Click事件和MouseDown事件中分别调用这个方法。这样做能解决这个问题,因为这样直接在XAML代码中调用了Button_Click,而不是先调用另一个方法再从.cs代码中调用它。但是我仍然想知道为什么它找不到那个事件。

我也曾经这样做了很长时间。不幸的是,你最终会使用空参数等等,这总是很丑陋的。最好使用一个专门的方法,只接受实际使用的参数。这样会更容易阅读。

0
0 Comments

点击事件不起作用的原因可能是以下几点:

1. 在鼠标按下事件(MouseDown)上不应该触发点击事件(Click)。

2. 将TextBlock放在Button中,或者使用Hyperlink来解决问题。

3. 代码本身看起来没有问题,但是使用了错误的命名空间(WinForms)而不是WPF。正确的命名空间应该是System.Windows.Controls.Primitives。

解决方法如下:

1. 确保在鼠标按下事件上不触发点击事件,可以通过将代码中的点击事件绑定改为其他事件。

2. 将TextBlock放在Button中,或者使用Hyperlink来代替TextBlock。

3. 修正代码中错误的命名空间,将命名空间改为System.Windows.Controls.Primitives。

以下是修正后的代码示例:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
namespace WpfApp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // 点击事件的处理逻辑
        }
        private void TextBlock_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            // 鼠标按下事件的处理逻辑
        }
    }
}

通过上述修正,可以解决"ClickEvent"未定义的问题。

0
0 Comments

问题出现的原因是在WPF应用程序中,错误地引用了System.Windows.Forms命名空间,而正确的命名空间应该是System.Windows.Controls.Primitives。因此,需要将错误的引用删除,并替换为正确的引用。

解决方法是在类的顶部删除以下代码:

using System.Windows.Forms;

并替换为:

using System.Windows.Controls.Primitives;

这样做后,问题应该得到解决。然而,需要注意的是,由于使用了正确的命名空间,现在无法再使用OpenFileDialog。替代方案是使用Microsoft.Win32.OpenFileDialog来代替。需要知道的是,WinForms是一个过时的技术,现在已经不再重要,因此应该避免使用它。

最后,虽然有人可能会产生关于WinForms和WPF的辩论,但没有必要。明显地,WPF更好一些。

0