我正在研究 C# windows 应用程序。我的应用程序从自定义控件库中获取控件(按钮、文本框、富文本框和组合框等),并在运行时动态地将它们放入表单中。我如何使用委托为该控件创建事件处理程序?以及如何在特定的自定义控件单击事件中添加业务逻辑?
例如:
我有用户 1、用户 2、用户 3,当用户 1 登录时,我只想显示“保存”按钮。当用户 2 只显示“添加和删除”按钮而用户 3 只显示“添加和更新”按钮时。根据用户登录信息创建的文本框和按钮从数据库表中获取。在这种情况下,我如何处理不同的事件(添加、保存、更新、删除)用于在表单动态创建控件时为不同用户保存、添加、删除和更新按钮(保存、添加、删除和更新按钮对象来自同一按钮类)
使用匿名方法:
Button button1 = new Button();
button1.Click += delegate
{
// Do something
};
Run Code Online (Sandbox Code Playgroud)
使用带有显式参数的匿名方法:
Button button1 = new Button();
button1.Click += delegate (object sender, EventArgs e)
{
// Do something
};
Run Code Online (Sandbox Code Playgroud)
使用匿名方法的 lambda 语法:
Button button1 = new Button();
button1.Click += (object sender, EventArgs e) =>
{
// Do something
};
Run Code Online (Sandbox Code Playgroud)
用方法:
Button button1 = new Button();
button1.Click += button1_Click;
private void button1_Click(object sender, EventArgs e)
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
您可以在MSDN 文档中找到更多信息。
var t = new TextBox();
t.MouseDoubleClick+=new System.Windows.Input.MouseButtonEventHandler(t_MouseDoubleClick);
private void t_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
它将双击事件处理程序添加到新的 TextBox