C# 使用处理程序打开表单
说到C#,我是个十足的傻瓜,所以请容忍我 我正在运行时创建菜单。它可以从一个选项到N个选项,每个选项都有一个回调函数(显示一个窗体或调用其他例程)。我在VB中有这个应用程序,但我正在用C(学习新东西)再次使用它。在这里,我使用MethodInvoker和AddressOf 步骤: 添加一个新的菜单项C# 使用处理程序打开表单,c#,winforms,C#,Winforms,说到C#,我是个十足的傻瓜,所以请容忍我 我正在运行时创建菜单。它可以从一个选项到N个选项,每个选项都有一个回调函数(显示一个窗体或调用其他例程)。我在VB中有这个应用程序,但我正在用C(学习新东西)再次使用它。在这里,我使用MethodInvoker和AddressOf 步骤: 添加一个新的菜单项 mg.AddItem("Users", UserForm.ShowList); 然后,添加其回调 ... newMenuOption.Click += option_click; menu.I
mg.AddItem("Users", UserForm.ShowList);
然后,添加其回调
...
newMenuOption.Click += option_click;
menu.Items.Add(newMenuOption);
在option_click方法上,我调用存储该项的回调
Invoke((Item)sender).Tag).m_MenuCallback);
我受够了
如果UserForm.ShowList不是静态的,则First mg.AddItem会给出错误。(如果是这样,它可以工作,但除了显示MessageBox之类的东西,我什么也做不了)
我尝试过MethodInvoker、EventArgs和object
我的场景是在运行时用瓷砖(菜单项)填充全景(telerik控件)(它们根据用户登录而变化)。因此,每个磁贴都会打开一个新表单或执行不同的任务。我在VB上得到了这个(不是确切的例子),但C#给我带来了困难
附言:
UserForm.ShowList将用用户填充网格并显示表单。当ShowList是静态方法时,无法执行这两项操作
对不起,我说的是英语。您需要创建一个UserForm的实例(使用visual basic,您可以访问该表单的默认实例,出于VB6兼容性的原因,该实例保留在中) 然后像这样添加它
mg.AddItem("Users", usf.ShowList);
我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。谢谢。我感谢你的帮助。
mg.AddItem("Users", usf.ShowList);