如何访问其他窗口的控件?

clleady 2008-11-28 09:02:08
如题,我有Form1和Form2,当我通过双击打开form2后,按下form2中的button1按钮,form1的txt1.text显示“ok”。如何实现呢?
我在from2中的button_Click中写入
Form1 form1=new Form1();
form1.txt1.text="ok";
红色的这句有问题,那到底如何访问呢,谢谢。
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙宜坡 2008-12-03
  • 打赏
  • 举报
回复
有趣
bidisty 2008-11-28
  • 打赏
  • 举报
回复
form1:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show(this);
}

form2:
private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = (Form1)this.Owner;
f1.textBox1.Text = "aaa";

}

form1中textBox1控件访问属性改为 public
clleady 2008-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hulihui 的回复:]
把 Form1 的 txt1 控件的访问属性改为 public,默认是private,要在Form1.Designer.cs中改
[/Quote]

改过了,没有提示错误,不过我通过Form1打开Form2,我现在Form2上按按钮来改变Form1的控件属性,
我需要输入from1.Show()才能看到变动;有什么办法让Form1的控件属性立刻变吗?
stuideaedu 2008-11-28
  • 打赏
  • 举报
回复
不错,谢谢
常熟老九 2008-11-28
  • 打赏
  • 举报
回复
把 FORM2 设为子窗体,就可以这样this.parent.*=
pp_shy 2008-11-28
  • 打赏
  • 举报
回复
在Form1窗体中

//定义一个按钮事件打开Form2
private void button1_Click(object sender, System.EventArgs e)
{
Form2 f2 = new Form2();
f2.Tag = this;
f2.Show();
}

//定义一个公共方法用于修改Form1上textBox1的值
public void SetTextBox(string strValue)
{
this.textBox1.Text = strValue;
}


在Form2窗体中

//按钮事件调用Form1中的SetTextBox方法来设置Form1中textBox1的值
private void button1_Click(object sender, System.EventArgs e)
{
Form1 f1 = (Form1)this.Tag;
f1.SetTextBox("OK");
}
长沙三毛 2008-11-28
  • 打赏
  • 举报
回复
把 Form1 的 txt1 控件的访问属性改为 public,默认是private,要在Form1.Designer.cs中改

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧