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

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

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

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

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

谢谢

【问题讨论】:

    标签: c# wpf visual-studio silverlight xaml


    【解决方案1】:

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

    [DefaultEvent("DoubleClick")]
    public class MyClass {
    
        public event EventHandler DoubleClick;
    
    }
    

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

    【讨论】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多