如题,就是给usercontrol添加一个click事件把usercontrol中lable的值取出来,winform的,求大神指点一下
public string labval1
{
get
{
return label1.Text;
}
set
{
this.label1.Text = value;
}
}
public string labval2。
这是自定义控件中2个lable的属性设置,我可以更改和读取lable中的值,现在要实现的是我开始问的那个功能,现在我能做到点击usercontrol中没有被Label覆盖的空白部分获取lable的值,但是被lable覆盖的就不行了c#自定义控件winform
public string labval1
{
get
{
return label1.Text;
}
set
{
this.label1.Text = value;
}
}
public string labval2。
这是自定义控件中2个lable的属性设置,我可以更改和读取lable中的值,现在要实现的是我开始问的那个功能,现在我能做到点击usercontrol中没有被Label覆盖的空白部分获取lable的值,但是被lable覆盖的就不行了c#自定义控件winform
解决方案 »
- 问一个奇怪的问题,为什么不能转换,速结
- 急!急!抛这种怪异常是怎么回事?大侠们..速度
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 改变c#窗体上关闭按钮的自动提示内容
- 高级查询
- 紧急求助高手,Remoting如何返回!
- 现在.NET不吃香,就是没人出来用.NET开发出出名的好的软件 - 对那些对.NET没信心的人
- 最强UML建模工具Visual Paradigm Suite 4.0最新版+授权文件+用户手册
- 如何通过C#操作dbf文件
- webBrowser控件如何模拟点击事件
- ===破了一个屏幕取 词(GetWord),谁告诉我怎么在C#引用它的.dll===
- 【求助】请问如何判断一个多边形是简单多边形还是复杂多边形?
- VS2005+水晶报表,编译时出现602个警告,请问如何清除?
还可以通过自定义事件(委托)去传递
using System;
using System.Collections.Generic;
namespace Demo
{
interface IMessage
{
void Update(string msg);
}
abstract class IMessageSubject
{
protected string msg;
public string Msg
{
get { return msg; }
set { msg = value; Notify(); }
}
private IList<IMessage> list = new List<IMessage>(); public void Add(IMessage m)
{
list.Add(m);
}
public void Remove(IMessage m)
{
list.Remove(m);
}
public void Notify()
{
foreach (IMessage i in list)
{
i.Update(msg);
}
}
}
class A : IMessageSubject
{
private string lbl = "A label text!";
public void Click()
{
Msg = lbl;
}
} class B : IMessage
{
public void Update(string msg)
{
Console.WriteLine("B receive " + msg);
}
} class C : IMessage
{
public void Update(string msg)
{
Console.WriteLine("C receive " + msg);
}
}
class Program
{
static void Main(string[] args)
{
IMessageSubject subject = new A();
IMessage i1 = new B();
IMessage i2 = new C();
subject.Add(i1);
subject.Add(i2);
(subject as A).Click();
subject.Remove(i1);
(subject as A).Click();
Console.ReadLine();
}
}
}
这个是在我引用usercontrol的窗体中为他添加的click事件,运行时点usercontrol中被其中的label覆盖的部分没反应,没有覆盖的可以实现效果,关键是触发这个事件吧
private void usercontrol_click(object sender, EventArgs e)
{
label1.Text = userControl11.labval1;
label2.Text = userControl11.labval2;
}
usercontrol load:foreach (Control ctl in this.Controls)
{
if (ctl is Label)
{
ctl.Click += delegate(object sender, EventArgs e) { this.OnClick(e); };
}
}
在usercontrol中将label1的onclick重写指向usercontrol的onclick
大神,能具体些么,咋个重写法?
我不是大神,usercontrol里可以override onclick,你在写方法的地方打override+空格就可以出来了