winform窗体传值问题

ajdopteronmomo 2014-05-19 11:30:53
有三个窗体form1,form2,from3,form1有个按钮btn1,点击btn1弹出form2,form2有个按钮btn2,点击btn2弹出form3,如何实现点击form3窗体上的btn3改变form1窗体上的lable1的值?
...全文
208 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
MYJXQ 2014-05-21
  • 打赏
  • 举报
回复
六楼方法不明白是什么意思啊
zhangping321_123 2014-05-20
  • 打赏
  • 举报
回复
上面说的,这样就不再是同一个窗体了,那这样还有3个窗体的必要啊?
enaking 2014-05-20
  • 打赏
  • 举报
回复
网上有很多人问传值问题了,7楼正解,
Landy_cc 2014-05-20
  • 打赏
  • 举报
回复
将form1在设置为一个全局变量,再写一个函数更新Label的值,然后form1打开form2,form2,打开form3,form3中调用form1中的更新函数更新label信息 Form1中: public static Form1 f1; public Form1() { InitializeComponent(); f1 = this;//这样设置是为了能在form3中调用Form1的函数 } public void updateInfo(string info)//更新Lable信息 { label1.Text = info; } 至于怎么打开其他窗体就不写了,无非是new一个窗体在show; 在Form3中,按钮调用Form1中的updateInfo private void button1_Click(object sender, EventArgs e) { Form1.f1.updateInfo("哈哈我是Form3传来的参数!"); } 打完收工
ailby0709 2014-05-20
  • 打赏
  • 举报
回复
我这办法可能比较麻烦 仅供参考


// Form1
private unsafe void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.GetForm(this);
            frm.Show();
        }

// Form2
 public Form1 form = null;

        public void GetForm(Form1 theform)
        {
            form = theform;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form3 frm = new Form3();
            frm.GetForm(form);
            frm.Show();
        }

// Form3
 public Form1 form = null;

        public void GetForm(Form1 theform)
        {
            form = theform;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            form.textBox1.Text = "testtest";/*此次需要将Form1设计窗体中的textbox1的属性从Private 改为public就可以再Form3中调用,否则会出现错误*/
        }

zhangping321_123 2014-05-20
  • 打赏
  • 举报
回复
很明显,这个是要通过事件来实现的
ailby0709 2014-05-20
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/link?url=0yqahq3ke56CNNTwbD3gFkt1fMVU1mjMr4fSNZ4NMCKLg6WsNTbiiVBJV03Cztrc_7Jnc9CEQRM40LD0F01wbK 看下这个 看有帮助没
exception92 2014-05-20
  • 打赏
  • 举报
回复
把 form1 作为参数 在form2中传递。。再从form2中传递给form3 ,对label值进行修改。
chenzhihuasilao 2014-05-20
  • 打赏
  • 举报
回复
Event比较好点。建议楼主学下。我之前一直是用6楼的那种做法。工作了之后被老大数落了一次之后才改的习惯。
namhyuk 2014-05-20
  • 打赏
  • 举报
回复
这种情况我个人偏爱用事件(event)来实现。
devmiao 2014-05-19
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/360140208

110,538

社区成员

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

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

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