我想复制一个按钮,文本框等控件。
但是我不知道如何将事件处理程序方法(例如Click)复制到新控件。

我现在有以下代码:

var btn2 = new Button();
btn2.Text = btn1.Text;
btn2.size = btn1.size;
// ...
btn2.Click ??? btn1.Click

还有其他方法可以复制控件吗?

最佳答案

要克隆任何WinForms控件的所有事件,请执行以下操作:

var eventsField = typeof(Component).GetField("events", BindingFlags.NonPublic | BindingFlags.Instance);
var eventHandlerList = eventsField.GetValue(button1);
eventsField.SetValue(button2, eventHandlerList);

关于c# - 如何在运行时克隆Control事件处理程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6055038/

10-15 20:14