c# winform 一个窗体怎么修改另一个窗体的属性

2025-02-26 21:08:44
推荐回答(5个)
回答1:

在Form1的类中添加一个方法更新textBox1

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
         
        //添加一个方法,用于更新textBox1
        public void UpdateTextBox(string newData)
        {
            this.textBox1.Text = newData
        }
         
        //点击按钮,显示Form2窗口
        private void buttonShowForm2_Click(object sender, EventArgs e)
        {
            //用新的构造函数(见下面的Form2类),创建Form2实例
             Form2 form2 = new Form2(this);
             form2.Show();
        }
         
        //其余代码略……
    }

在Form2中,添加一个新的构造函数

 public partial class Form2 : Form
    {
        private Form1  _form1;
 
        public Form2()
        {
            InitializeComponent();
        }
         
        //添加一个构造函数
        public Form2(Form1 form): this()
        {  
            _form1 = form;
        }
          
          //当鼠标点击了button1       
          private void button1_Click(object sender, EventArgs e)
          {
              //将数据传回Form1并更新显示
               _from1.UpdateTextBox(string newData);
          }
        
         
        //其余代码略……
}

回答2:

form1中定义一个public string pubValue="";同时将form1的TextBox_TextChanged设置为public,并且textbox.text=pubValue。
在打开form2前,将form2.Parentform=this;

form2中点击按钮修改pubValue的值,然后触发this.parentform.TextBox_TextChanged(sender,e);就可以了。

回答3:

等等我试试。我知道怎么做,但是我不敢确定,用静态变量好像可以实现,你的New的问题
你想,你都New了一个form1 就是一个新的窗体了。所以不行

回答4:

在form1中写一个方法用来修改textBox的Text
比如
void ChangeText(string s)
{
textBox.text=s;

}
然后再form2中写一个委托,
public delegate void mydelegate(string ss);

public mydelegate change;
在form1中显示form2的时候写
form2 f=new form2();
f.change=new form2.mydelegate(ChangeText);//将方法绑定到form2中
然后再form2的修改按钮里写:
change(t); //t为要修改的内容

回答5:

最简单的就是用委托 就可以实现了