C# 中的子窗口怎么去订阅父窗口的事件? 父窗口订阅子窗口的容易子窗口怎么订阅父窗口的怎么处理?也就是让父窗口中一变量变化及时传递到至窗口中去 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然是父子关系,用自定义事件是可以解决问题的。这个最经典的窗口传值问题。1.在子窗口定义一个事件2.在父窗口中调用子窗口的地方将子窗口的事件注册,即指定自定义事件发生时处理事件的方法3.在父窗口中写一个自定义事件发生时处理事件的方法,用于和2相关联4.在子窗口需要回传值得地方触发事件给你一个例子,自己看看 /// <summary> /// 当数字键,空格,enter按下时,将值传回textbox /// </summary> /// <param name="str">要回传的值</param> public delegate void SetTextBoxValue(string str);//在命名空间下声明 //子窗口 public partial class ListForm1 : Form { public ListForm1() { InitializeComponent(); } /// <summary> /// 用来将值回传到textbox /// </summary> public event SetTextBoxValue SetTxtValue; /// <summary> /// Listbox被选中的索引改变 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { //得到原始的数据,去掉行号 string strBackValue = GetOriginalItems(this.listBox1.SelectedItem.ToString()); SetTxtValue(strBackValue);//将选中的Listbox中的值传回到要输入的文本框中,触发自定义事件 } }//父窗口public partial class NurseDegree : Telerik.WinControls.UI.RadForm { private void lblInput_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { listForm.SetTxtValue += new SetTextBoxValue(listForm_SetTxtValue);//在父窗口订阅子窗口事件 } /// <summary> /// 事件传值关联方法 /// </summary> /// <param name="str">传回来的string</param> void listForm_SetTxtValue(string str) { //doSomething } } C#导出excel时如何设置Excel的单元格格式 老鸟请进___遇到一问题!合成exe文件 用FileStream的seek方法怎么把文件指针移动到文件尾 泛型SortedList不排序问题!!急急急!!!!!!!!!!!!!!! VS2003 升级到 VS2005 的问题..100分求一解 如何用C#编程读取网卡流量 C#窗体问题 招聘(深圳) 各位大老请帮忙 两个窗口之间传递数据,急!急!急!在线等待. 我用的筛选combobox在选择后会留下一条白色痕迹 关于等待界面的问题
1.在子窗口定义一个事件
2.在父窗口中调用子窗口的地方将子窗口的事件注册,即指定自定义事件发生时处理事件的方法
3.在父窗口中写一个自定义事件发生时处理事件的方法,用于和2相关联
4.在子窗口需要回传值得地方触发事件给你一个例子,自己看看
/// <summary>
/// 当数字键,空格,enter按下时,将值传回textbox
/// </summary>
/// <param name="str">要回传的值</param>
public delegate void SetTextBoxValue(string str);//在命名空间下声明 //子窗口
public partial class ListForm1 : Form
{
public ListForm1()
{
InitializeComponent();
}
/// <summary>
/// 用来将值回传到textbox
/// </summary>
public event SetTextBoxValue SetTxtValue; /// <summary>
/// Listbox被选中的索引改变
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//得到原始的数据,去掉行号
string strBackValue = GetOriginalItems(this.listBox1.SelectedItem.ToString());
SetTxtValue(strBackValue);//将选中的Listbox中的值传回到要输入的文本框中,触发自定义事件
}
}//父窗口
public partial class NurseDegree : Telerik.WinControls.UI.RadForm
{
private void lblInput_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
listForm.SetTxtValue += new SetTextBoxValue(listForm_SetTxtValue);//在父窗口订阅子窗口事件
}
/// <summary>
/// 事件传值关联方法
/// </summary>
/// <param name="str">传回来的string</param>
void listForm_SetTxtValue(string str)
{
//doSomething
}
}