visual studio 2005 C# winFore有一个窗体form1
form1里有一个用户控件uc1
uc1有一个属性值 bool pTest = true; public bool pTestKan
{
set { pTest = value;}
get { return pTest; }
}pTest的值 在uc1的一个函数khandle中修改,想在pTest被修改后立即调用form1里一个函数formUpdateMess我想应该用delegate和event,具体怎么实现?哪位给看看.
form1里有一个用户控件uc1
uc1有一个属性值 bool pTest = true; public bool pTestKan
{
set { pTest = value;}
get { return pTest; }
}pTest的值 在uc1的一个函数khandle中修改,想在pTest被修改后立即调用form1里一个函数formUpdateMess我想应该用delegate和event,具体怎么实现?哪位给看看.
解决方案 »
- 问一个超级简单的问题,使用了Console.Write("HI")为什么没输出
- 死循环导致CPU利用率较高问题,请进
- vs2005如何用OLE DB连接informix
- 帮我看下这段程序错在哪?
- c# 用treeview实现目录树,如何将文件类型与图标相关连
- msnpsharp 如何响应用户 签名改变事件
- 虚拟内存不断增长,引起程序异常,如何解决?
- 多线程中的事件问题
- RapidTier 1.0 beta2 发布 [放分征求意见]
- 能不能帮我解决一下这个问题?为什么不能实现数据的绑定?在DataGrid中不能显示数据库里的数据?
- 这种做法是否可取?
- gridview里FooterRow 的问题
public delegate void MyEventHandler(object sender, EventArgs e); //定义事件
public event MyEventHandler myEventHandler; //触发事件
Public void OnMyEventName(int step, string label)
{
if (myEventHandler != null)
myEventHandler(this, null);
}
public delegate void MyEventHandler(object sender, EventArgs e); //定义事件
public event MyEventHandler myEventHandler; //触发事件
Public void OnMyEventName()
{
if (myEventHandler != null)
myEventHandler(this, null);
}上面打错
{
UC1 _UC1 = new UC1();
_UC1.formUpdateMess = new Test.UpdateMess(formUpdateMess);
_UC1.pTestKan = true;
} public void formUpdateMess()
{
MessageBox.Show("ASDF");
} public class UC1
{
public delegate void UpdateMess();
public UpdateMess formUpdateMess; bool pTest = true; public bool pTestKan
{
set { pTest = value; if (formUpdateMess != null)formUpdateMess.Invoke(); }
get { return pTest; }
} }
1、在用户控件uc1中定义事件:
internal event EventHandler <EventArgs> TestValueChanged;
2、户控件uc1中属性pTestKan的实现方式如下:
bool pTest = true;
public bool pTestKan
{
set
{
if (this.pTest != value)
{
this.pTest = value;
this.OnTestKanChanged();
}
}
get { return this.pTest; }
}
3、实现事件通知函数OnTestKanChanged:
private void OnTestKanChanged()
{
if (this.TestValueChanged != null)
{
this.TestValueChanged(this, EventArgs.Empty);
}
}
4、uc1的函数khandle中修改属性pTestKan(注意不是pTest);
5、form1挂接uc1的TestValueChanged事件:
this.uc1.TestValueChanged += new EventHandler<EventArgs>(UC1_TestValueChanged);
6、在form1中实现事件响应函数UC1_TestValueChanged:
private void UC1_TestValueChanged(object sender, EventArgs e)
{
this.formUpdateMess();
}