110,538
社区成员
发帖
与我相关
我的任务
分享
经测试,程序根本就没能进入执行if语句(即(1)处)。 我输入的参数是Label的名称。难道一定要传Button的名称才可以么? 还是没能达到目的。 /// <summary> /// 根据控件Name调用自身Click事件 /// </summary> /// <param name="controlName">控件Name</param> public void CallOnClick(string controlName) { if (this.Controls.ContainsKey(controlName)) { object o = this.Controls[controlName]; //(1) object[] p = new object[1]; p[0] = EventArgs.Empty; Type t = o.GetType(); MethodInfo m = t.GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance); m.Invoke(o, p); } }
xiaozhi_5638 调用语句出错了,不知什么原因???
注册所有的picturebox控件的Click事件 用同一个事件处理程序 picturebox1.Click+=img_Click; picturebox2.Click+=img_Click; picturebox3.Click+=img_Click; private void img_Click(object sender,EventArgs e) { string name = (sender as PictureBox).Name; DoSomething(name); } private void DoSomething(string imgName) { switch(imgName) //根据点击PictureBox 做出相应反应 { // ... //把你写在lblBtn1_Click()、lblBtn2_Click、lblBtn3_Click 中的逻辑写在这里 } } 楼上几位大神 说得有道理 由于具体需求不清楚 楼主可以参考该回帖
xiaozhi_5638: 能提供一份完整的类代码给我么?Thanks! class MyLabel:Label 我这边的定义老是出错。
引用 13 楼 sunylf 的回复: 请问 guwei4037: button.Click += (s, ea) => { MessageBox.Show(buttontext); }; 这段代码是什么意思? 我用的是vs2008, 我就是想执行控件的Click事件而已. 给button添加click事件,s和ea是2个传入的参数,但实际上代码就是弹出提示框
请问 guwei4037: button.Click += (s, ea) => { MessageBox.Show(buttontext); }; 这段代码是什么意思? 我用的是vs2008, 我就是想执行控件的Click事件而已.
这个错误,要如何解决呢?