C# 表单用户控件 OnClick 事件

标签 c# winforms user-controls onclick

我为 Windows 窗体创建了一个自定义用户控件,其操作类似于按钮(请不要建议我只使用按钮,因为我将在此用户控件中存储数据),但我不能弄清楚如何获得 OnClick()事件触发。我已经筛选了一些教程并查看了网站上的一些类似问题,但我似乎无法让事件触发 - 所以我要么做错了,要么每个人都发布了不正确的代码(我希望不是后者)

在我的自定义 control.cs 中,

namespace MobCreator {
    public partial class MOBSample : UserControl {
        public MOBSample() {
           InitializeComponent();
        }
        protected override void OnMouseUp(MouseEventArgs e) {
           this.BorderStyle = BorderStyle.FixedSingle;
           base.OnMouseUp(e);
        }
        protected override void OnMouseDown(MouseEventArgs e) {
           this.BorderStyle = BorderStyle.Fixed3D;
           base.OnMouseDown(e);
        }
        public event EventHandler ButtonClick;
        private void OnButtonClick(object sender, EventArgs e) {
           // invoke UserControl event here
           if (this.ButtonClick != null) this.OnButtonClick(sender, e);
        }
    }
}

在我的 form.cs 中,
private void MobCreatorForm_Load(object sender, EventArgs e) {
    UserControl1.ButtonClick += new EventHandler(this.CustomEvent_Handler);
}
private void CustomEvent_Handler(object sender, EventArgs e) {
    Console.WriteLine("Click");
}

但是,当我运行程序时,我的控制台从不输出“Click”。

最佳答案

查看this link on MSDN : 这是一个简单的事件教程,你应该能够适应你的场景。

乍一看,您可能缺少的是您的事件的代表。

关于C# 表单用户控件 OnClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16729199/

相关文章:

WPF - 单击用户控件内的按钮不会调用命令,单击控件本身也不会

c# - 如何从flowlayoutpanel更改控件的属性?

.net - 在 .net、winforms 中显示用户控件后,我可以捕获的最后一个可能的事件是什么?

c# - 下划线和粗体文本

c# - 在C#和c之间进行进程间通信的最简单方法是什么?

c# - htmlAttributes MVC 5.1 编辑器

c# - 如何在固定大小的 ToolStripDropDown 中滚动

c# - 如何从 WinForms 应用程序打开网页,同时将浏览器保持在后台?

c# - 使用 WCF 从 .svc 创建 .cs 文件的正确方法

c# - 聚焦时如何自动打开组合框?