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

现在我在form1中打开form2然后再form2中按下按钮修改form1中textbox中的text,怎么弄,我已经把textbox的private改为public了然... 现在我在form1中打开form2 然后再form2中按下按钮修改form1中textbox中的text,怎么弄,我已经把textbox的private 改为public了 然后form1 myform=new form1(); myform.textbox.text="";不行,该怎么弄 展开
 我来答
freeeeeewind
2014-03-05 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1320万
展开全部

在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);
          }
        
         
        //其余代码略……
}
匿名用户
2014-03-05
展开全部
form1中定义一个public string pubValue="";同时将form1的TextBox_TextChanged设置为public,并且textbox.text=pubValue。
在打开form2前,将form2.Parentform=this;

form2中点击按钮修改pubValue的值,然后触发this.parentform.TextBox_TextChanged(sender,e);就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
踢脚MG
2014-03-05 · TA获得超过683个赞
知道小有建树答主
回答量:598
采纳率:40%
帮助的人:220万
展开全部
等等我试试。我知道怎么做,但是我不敢确定,用静态变量好像可以实现,你的New的问题
你想,你都New了一个form1 就是一个新的窗体了。所以不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
boy阿江
推荐于2017-11-29 · TA获得超过146个赞
知道答主
回答量:88
采纳率:0%
帮助的人:67.3万
展开全部
在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为要修改的内容
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lybgl
2014-03-05 · TA获得超过290个赞
知道小有建树答主
回答量:903
采纳率:86%
帮助的人:230万
展开全部
最简单的就是用委托 就可以实现了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式