1)用户控件UserControl1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication28
{
public partial class UserControl1 : UserControl
{
private Button btnTest = new Button();
//定义事件
public delegate void MyDelegate(object sender, EventArgs e);
public event MyDelegate myEvent;
public UserControl1()
{
InitializeComponent();
//button
btnTest.Text = "test";
btnTest.Location = new Point(1, 1);
btnTest.Click += new EventHandler(btnTest_Click);
this.Controls.Add(btnTest);
}
void btnTest_Click(object sender, EventArgs e)
{
//将自定义事件绑定到控件事件上
if (myEvent != null)
{
myEvent(sender, e);
}
}
}
}
2)窗体Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication28
{
public partial class Form1 : Form
{
UserControl1 userControl1 = new UserControl1();
TextBox textBox1 = new TextBox();
public Form1()
{
InitializeComponent();
//UserControl
userControl1.Location = new Point(1, 1);
//调用自定义事件
userControl1.myEvent += new UserControl1.MyDelegate(userControl1_myEvent);
this.Controls.Add(userControl1);
//TextBox
textBox1.Location = new Point(1, 1 + userControl1.Height + 1);
this.Controls.Add(textBox1);
}
void userControl1_myEvent(object sender, EventArgs e)
{
textBox1.Text = "success";
}
}
}