C# winform中 在一个窗口中访问另一个窗口的控件,可以访问 但是为什么变更这个控件的值不起作用?在线等

列:一个窗口a中有一个元素控件 button1
我再另一个窗b口中有如下代码
a page = new a();
page.button1.text = "更新";
以上代码 访问都没有问题,但是赋值就不起作用了,有什么办法解决?

在线等,50分献上~~~
提高悬赏 100分呀 大神门 求帮助~

不可能不能改的。举个例子啊。
主界面Form1,上面加个按钮,点击后开打Form2,并且给form2中的textBox1赋值
你在创建form2的时候把 textBox1的Modirers属性改性 public

Form2 form2 = new Form2();
form2.textBox1.Text = "abc";
form2.ShowDialog();

运行程序点击按钮,弹出 form2,textbox1 里面显示的abc.追问

场景: 首先form2是已经打开过的了, 下面的代码是写在form1里面

form2 form = new form2();
form.textBox1.value= "11111";
代码执行都不报错。
form.textBox1.value= "11111";
这个代码赋值是不成功的

追答

form2是已经打开的?是哪里打开的?form2 form = new form2(); form .Show();打开的吧。

你在哪打开的这个form2,就用这个变量操作。你新建的form2变量根本没显示出来,你改变他textBox1值也没用的。

我在写个示例代码。你看看。这次 form1里面两个按钮 button1 和button2.
button1负责打开form2,button2负责改变form2的textBox1的值

public static Form2 form2;
private void button1_Click(object sender, EventArgs e)
{
form2 = new Form2();
form2.Show();
}
private void button2_Click(object sender, EventArgs e)
{
form2.textBox1.Text = "abcd";
}

你的问题是没搞明白form2的变量时啥意思。哪个Form2变量呗显示出来了,你就要操作哪个,不然你操作的是没显示出来的,当然没改啊

追问

哦 明白了 form2在哪里创建 就是要哪一个变量,重新new 的就不是原来打开哪一个窗口了 是这个意思吧。 明白了 谢谢。
大家给的答案都是一个意思是, 愚笨了 谢谢 大家。

追答

对的对的。你new哪个就操作哪个。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-03

目测你是弄错对象了,a这个类型对象,应该早就存了,你这里再new就是错的。应该想法获得真正的对象引用 。


你的那个form2怎么打开的?


a page = new a();


这个 new a();是有问题的,应该是引用已打开的对象。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        Form2 form2;
 
        private void Form1_Load(object sender, EventArgs e)
        {
            form2=new Form2();
            form2.Show();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            form2.textBox1.Text = "abc";
        }
 
    }

本回答被网友采纳
第2个回答  2014-12-03


设置button1

追问

已经设置过 不是这个原因

相似回答