版权声明:本文为博主原创文章,转载请注明出处: https://blog.csdn.net/IntegralforLove/article/details/83019270
C#窗体间信息的双向传送(一)引用方式
要实现主从窗体对象信息的相互传送,这两个对象间必须建立一个双向的关联,即每个都拥有对方的引用。具体来说,就是主窗体拥有一个私有字段引用从窗体,从窗体也有一个私有字段引用主窗体。
1.主窗口->从窗口:主窗体用一个私有字段保存对从窗体对象的引用,调用从窗体的公有方法(或者对从窗体公有属性赋值),可以将特定信息从主窗体传给从窗体。主窗体frmMain代码如下:
private frmOther m_frmOhter = null;
private void m_btn_ShowForm_Click(object sender, EventArgs e)
{
m_frmOhter = new frmOther(this);
m_frmOhter.Show();
}
private void m_hScrollBar_Scroll(object sender, ScrollEventArgs e)
{
m_frmOhter.__Show(m_hScrollBar.Value); //调用从窗体的公有方法
}
public void __Display(int num) //主窗体的公有方法
{
m_txt_Num.Text = num.ToString();
}
2.从窗口->主窗口:主窗体将自身引用传递给从窗体对象,这样,从窗体内部就可以自由地使用m_frmMain字段访问主窗体所定义的所有公有成员。从窗体frmOther代码如下:
private frmMain m_frmMain = null; //从窗体中定义了一个用于引用主窗体对象的字段
private int m_nCounter = 0;
public frmOther(frmMain objForm1)
{
InitializeComponent();
m_frmMain = objForm1; //获取主窗体的对象引用
}
public void __Show(int num) //从窗体的公有方法
{
m_txt_Result.Text = num.ToString();
}
private void m_btn_Counter_Click(object sender, EventArgs e)
{
m_nCounter++;
m_frmMain.__Display(m_nCounter); //调用主窗体的公有方法
}
3.在主窗体中单击“创建从窗口”按键,生成一个从窗体,移动主窗体的滚动条,从窗体显示相应结果。单击从窗体的“计数”按钮,主窗体获取按键次数。