以编程方式将事件分配给用户控件

时间:2011-11-25 16:00:43

标签: winforms c#-3.0

这可能是一个天真的问题,但我找不到答案。

我正在创建一个UserControl(类似于Winform的按钮)。一旦我拥有它,我将它用作Container中的Collection(真的是从Control继承的另一个UC。我将这个容器放在一个表单中,然后我以编程方式创建一个像这样的“按钮”的集合;

tMenu.Add(new TrevoButton(Test.Properties.Resources.Mapa, "Map", "MapaClick"));
tMenu.Add(new TrevoButton(Test.Properties.Resources.Inst, "Install", "InstaClick"));
tMenu.Add(new TrevoButton(Test.Properties.Resources.Mode, "Model", "ModelClick"));

参数是:

  • 图像(图像):按钮的图像
  • 文字(字符串):按钮的文字
  • 事件(字符串):单击“按钮”时要触发的事件的名称。

我的问题是,鉴于事件名称,如何将其指定为按钮的方法?

提前致谢。

1 个答案:

答案 0 :(得分:2)

找到我需要的东西。

这是集合的ADD(第三个参数没有引号):

tMenu.Add(new TrevoButton(Test.Properties.Resources.Mapa, "Mapa", MapaClick));

在表格中(我添加项目的地方),我将“MapaClick”定义为:

  public void MapaClick(object sender, EventArgs e)
  {
     MessageBox.Show("MapaClick");
  }

然后,UserControl的构造函数接收一个EventHandler参数:

  public TrevoButton(Image pImagen, string pTexto, EventHandler pEvento)
  {
     Image = pImagen;
     Texto = pTexto;
     this.Click += new EventHandler(pEvento);
     Iniciar();
  }

就是这样。当我按下按钮时,会出现消息! 感谢@lAbstract。你的回答让我这样。