在 Visual Studio 设计器中为控件指定双击事件

Posted

技术标签:

【中文标题】在 Visual Studio 设计器中为控件指定双击事件【英文标题】:Specify Double-Click event for a Control in Visual Studio Designer 【发布时间】:2011-06-06 21:15:58 【问题描述】:

当您在 Visual Studio 设计器中双击 Control 时,您会自动订阅一些 event 并在代码隐藏文件中生成事件处理程序。

双击以下控件订阅对应事件

UserControl - 加载 Button - 点击 TextBox - TextChanged Grid - 没有事件

这是如何指定的,它是 Visual Studio 设置吗?这可以被覆盖吗?如何指定要链接到双击的事件,例如自定义控件?

谢谢

【问题讨论】:

【参考方案1】:

控件可以指定一个DefaultEventAttribute。设计者知道读取该属性并使用它来确定使用哪个事件作为默认值。

[DefaultEvent("DoubleClick")]
public class MyClass 

    public event EventHandler DoubleClick;


还有一个 DefaultPropertyAttribute 用处不大。它只是确定在设计器中选择控件时要在属性网格中选择的默认属性名称。

【讨论】:

如果您希望最终用户双击您的控件以访问该功能,请使用“DoubleClick”而不是“Click” 谢谢!我在使用 Reflector 查看 TextBox 时没有看到这一点,我只看到了 ContentProperty("Text") 等。无论如何,DefaultPropertyAttribute 的额外 + ,二合一:)【参考方案2】:

如果想在编辑器中执行此操作。 对于 VS2017(以及我怀疑的范围之外)。在设计师中:

选择窗体上的控件 在“属性”窗口中,选择“事件”图标 将显示该控件的可用事件列表 双击所需事件的名称。

这也适用于删除自动生成的代码。删除该事件的事件处理程序的名称。它将从 *.designer.cs 文件中删除。请注意,您仍然需要删除表单源中的处理程序代码。

【讨论】:

以上是关于在 Visual Studio 设计器中为控件指定双击事件的主要内容,如果未能解决你的问题,请参考以下文章

从设计器中隐藏 WPF 控件的属性 (Visual Studio 2010)

如何让 Visual Studio 的设计器在 ASP.NET Web 用户控件中正确呈现 CSS?

将xamarin android控件添加到visual studio工具箱中

在Visual Studio Designer中找不到自定义字体的C#文件

图像显示在 Visual Studio 设计器中,但不在运行时

如何在 Visual Studio Xamarin.ios 设计器中添加同级视图?