有一个主窗体:MainForm,上面有一个Name为btnShow的按钮和Name为lbInfo的Label控件,它的Text为“Hello”。单击btnShow就会弹出子窗体ChildForm,且ChildForm以非模态对话框的形式弹出(即chdForm.Show()),子窗体上有一个名为txtInfo的TextBox控件。
现在我需要完成这个功能:点击子窗体中的txtInfo控件,即获取焦点,然后点击主窗体的lbInfo控件,此时该lbInfo的Text的值就会赋值给txtInfo控件的Text属性。请问各位高手应该怎么实现?
现在我需要完成这个功能:点击子窗体中的txtInfo控件,即获取焦点,然后点击主窗体的lbInfo控件,此时该lbInfo的Text的值就会赋值给txtInfo控件的Text属性。请问各位高手应该怎么实现?
然后通过Controls遍历找到窗口里面的你需要操作的控件,就可以操作这个控件了
string myText =((Button)(ParentForm.Controls["button1"])).Text
这样就可以获取父窗体的值,你试试
if(ChildForm.ContentInfo != "") lbInfo.Text = ChildForm.ContentInfo提示:关闭 ChildForm 时,可根据需要判断是否清空 ContentInfo 的值
需要在Form2关闭的时候,释放Form2的资源。
要求Form1还是运行的。
如下代码:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
System.Environment.Exit(System.Environment.ExitCode);//或者是Application.Exit();
this.Dispose();
this.Close();
}
但是这样子每次会把Form1这个主窗体都关闭掉。
欸,没分发帖,求解决方法。
需要在Form2关闭的时候,释放Form2的资源。
要求Form1还是运行的。
如下代码:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
System.Environment.Exit(System.Environment.ExitCode);//或者是Application.Exit();
this.Dispose();
this.Close();
}
但是这样子每次会把Form1这个主窗体都关闭掉。
欸,没分发帖,求解决方法。
好像弄反了吧。。假如我子窗体ChildForm中含有两个TextBox控件,名分别为:txtBox1,txtBox2,我先让txtBox2获取焦点,然后点击主窗体的lbInfo控件,此时lbInfo的Text就会赋值到txtBox2中,我想通过计算机来自动判断我在子窗体中是哪个控件获取焦点,然后再决定将lbInfo的Text赋值给哪个控件,刚才的例子就是计算机知道txtBox2获取焦点了,所以将lbInfo的Text就会赋值到txtBox2中。
ContentInfo = txtInfo.Text;
大哥,你在好好看一下我的描述,你的思路好像是反的。。我希望点击主窗体的lbInfo时,将lbInfo的Text赋值给子窗体的之前获取焦点的TextBox控件中,即是赋值给txtBox2,而不是点击lbInfo则把txtBox2的Text赋值给lbInfo的Text
// ChildForm f = new ChildForm(lbInfo);
// f.Show();public ChildForm(Label label)
{
label.MouseClick += (sender, e) =>
{
// 单个 textBox 设置
if (this.textBox1.Focused)
{
this.textBox1.Text = label.Text;
} // 多个 textBox 处理
foreach (Control ctrl in this.Controls)
{
if (ctrl.GetType() == typeof(TextBox))
{
TextBox edit = ctrl as TextBox;
if (edit.Focused)
{
edit.Text = label.Text;
break;
}
}
}
};
}