winform界面传值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform界面传值问题相关的知识,希望对你有一定的参考价值。

winform中已打开一界面,如何获取新打开另一界面里的数据,完成传值啊?
即主窗体有一个textbox,子窗体一个datagridview,我想将datagridview中的某一行中某一列传到主窗体的textbox中,此过程中要求子窗体显示之后关闭,主窗体中textbox显示子窗体里传过来的数据

这个你使用委托,子窗体传值给父窗体。
大概思路是这样:你在子窗体里面声明一个委托和事件,在父窗体弹出子窗体事件里面实例化一下子窗体的事件就行,你点击关闭子窗体的时候就触发事件,就把你需要的值传给父窗体。追问

求代码

追答

说你QQ 我加你 做好之后发给你

追问

    1794797016

追答

做好了 发给你

参考技术A 子窗口中建一个公开变量或属性,保存datagridview中的某一行中某一列的值,当然是类似按了OK确定按钮去保存到该变量
subForm.ShowDialog() 之后
通过 this.textbox.text = subForm.TheCellValue追问

求代码

追答

真是又菜又懒

参考技术B 两种方法吧,一个是新建子窗体的时候把父窗体对象作为参数传过去,还有就是用委托。你这种情况也可以试试showdialog()方法追问

求代码

参考技术C 主窗体中创建一个public函数,该函数把传过来的值保存到窗体变量中,然后在子窗体中调用该函数把值传过去就可以了

winform 窗体传值刷新问题。

f1窗体 中放一个 label1 控件

f2窗体 中放一个 textBox1 控件 和一个 button1 控件

(他们不是继承关系)

在 f2的 textBox1 中输入一个值 然后点击 f2的 button1 要能马上改变 f1中 label1 里面的值 请问要怎么做?
F2是从F1中打开的

在F2中Show F1不是再打开一次F1么

我不需再次打开F1

参考技术A f1的label1可见性设为Public
f1中
Form2 f2 = new Form2();
f2.Owner = this;
f2.Show();
f2中
Form1 f1;
f1 = (Form1)this.Owner;//这句不要写在构造方法里(会出错)最好写在Form2的Load方法里
f2的button1_Click事件中
f1.label1.Text = this.textBox1.Text;本回答被提问者采纳
参考技术B 有很多种方法可以做到
1.比如你点按钮的时候可以将textBox1的值赋值给cookie,Session。。
当f1种的Page_Onload的时候将cookie,session的值赋给label1
2.当点按钮的时候带一个参数的值链接到f1,然后lable1的值等于那个参数就OK
3...

以上是BS
CS的话就更容易,直接实例化f1就OK
参考技术C 可参考如下方法:
1、将f1窗体中的label1控件的级别设为pulic;
2、在f2窗体中通过如下语句进行操作——
f1 myform=New f1();
myform.Show();
myform.label1.Text=textBox1.Text;
参考技术D 在f1里面建立一个属性
private string Flag;

public string flag

get return Flag;
set Flag = value;


在f1的Load事件里写

label1.Text=Flag;


然后写f2里面的按钮点击事件
private void btn_Click(object sender, EventArgs e)

f1=new Form();
f1.Flag=textbox1.Text;
f1.Show();
this.Visible=false;


那你就不show,visible可以么?隐藏~显示~或者你把Label设为Public控件,直接给他赋值~

以上是关于winform界面传值问题的主要内容,如果未能解决你的问题,请参考以下文章

浏览器怎么给winform传值

winform窗体问题`急等`请高手们帮忙解决

winform怎么做到窗体左右2面分开?

winform中怎样判断子窗体是不是已打开?

想用winform产生类似金山词霸浮动窗体

winform窗体怎么获得焦点