在项目中用到了这个东西,c#基础有点弱,只有百度了 这里引用过来 觉得挺好
http://www.cnblogs.com/freeliver54/archive/2009/02/11/1388173.html
具体内容如下:
本次示例效果如下:
Form1为父窗体(包含textBox1、button1)
Form2为子窗体(包含textBox2、button2)
父窗体给子窗体传值
==================
1.点击Form1的button1 打开Form2
父窗体给子窗体传值 可以调用重载子窗体的构造函数 直接传入相关数值
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(this.textBox1.Text);
frm2.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Form2(string strTextBox1Text)
{
InitializeComponent();
this.textBox2.Text = strTextBox1Text;
}
}
2.点击Form1的button1 打开Form2
并调用子窗体Form2的公开属性或方法 将Form1的textBox1的值设置给Form2的textBox2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.TextBox2Text = this.textBox1.Text;
frm2.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string TextBox2Text
{
set { this.textBox2.Text = value; }
get { return this.textBox2.Text; }
}
}
3.点击Form1的button1 打开Form2
在Form2_Load调用父窗体Form1的公开属性或方法 将Form1的textBox1的值设置给Form2的textBox2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string TextBox1Text
{
set { this.textBox1.Text = value; }
get { return this.textBox1.Text; }
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
////或者
//Form2 frm2 = new Form2();
//frm2.Owner = this;
//frm2.Show();//或 frm2.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
this.textBox2.Text = frm1.TextBox1Text;
}
}
子窗体给父窗体传值
==================
4.点击Form1的button1 打开Form2
再点击Form2的button2
在button2_Click事件中 通过this.Owner将Form2的textBox2的值设置给Form1的textBox1
并关闭Form2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
////或者
//Form2 frm2 = new Form2();
//frm2.Owner = this;
//frm2.Show();//或 frm2.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
//注意 如果textBox1是放在panel1中的 则先找panel1 再找textBox1
((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
this.Close();
}
}
5.点击Form1的button1 打开Form2
再点击Form2的button2
在button2_Click事件中 通过this.Owner及调用父窗体Form1的公开属性或方法
将Form2的textBox2的值设置给Form1的textBox1
并关闭Form2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string TextBox1Text
{
set { this.textBox1.Text = value; }
get { return this.textBox1.Text; }
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
////或者
//Form2 frm2 = new Form2();
//frm2.Owner = this;
//frm2.Show();//或 frm2.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
frm1.TextBox1Text = this.textBox2.Text;
this.Close();
}
}
我的使用是: 在form1中
private void button6_Click(object sender, EventArgs e)
{
Form2 listViewReatin = new Form2();
ListView listView1 = listViewReatin.listView1;
listViewReatin.Owner = this;
readTxt(@"\Storage Card\address.txt", listView1);
listViewReatin.Show();
}
在form2中
private void button4_Click(object sender, EventArgs e)
{
int i = listView1.SelectedIndices[0];
string s = listView1.Items[i].SubItems[1].Text;
// MessageBox.Show(s);
//实现子传父类 注意关闭自己
Form1 f1 = (Form1)this.Owner;
f1.textBox1.Text = s;
f1.webBrowser1.Navigate(new Uri(s));
this.Close();
}
分享到:
相关推荐
用DELPHI工具开发的调用子窗口DLL模块实例
在子窗口中调用父窗口的成员函数的方法 1、用FindWindow("类名(可以是派生类)","窗口标题")或GetParent(),二者均能返回父窗口句柄,并能直接使用其成员函数。但是此法只能调用CWnd类里的成员函数,而不能调用自己...
Python-Pyside6主窗口调用子窗口并互相传递参数
模态与非模态子窗口调用主窗口控件学习 应用了4种方法 环境vs2015 学习备份
这应该就是窗体间调用控件的最简单最好理解的代码了。 C#不像VB.NET,控件要讲究实例化,VB.NET哪里管那么多,拿来直接就用,如果控件的modifier的属性设为Public,更简单,连控件的所属表单都不用加,直接用控件...
对新手学习Qt来说,建立主窗口界面,但是控制按钮调用两个独立ui界面出现很多的错误。本资源为源码,可以通过点击按钮不断切调用两个不同ui界面来显示到主窗口界面
demo主要采用信号与槽函数的方式对两个界面进行了不同切换,自定义按钮方式,子窗口与主窗口点击切换。该代码中涉及的技术有1.自定义函数类,在主函数中实例化。2.通过信号与槽在不同类中建立联系,在子类中定义信号...
通过第三方库PyQt5,利用信号与槽实现从主窗口打开子窗口,并将子窗口中的数据传递到主窗口中。 利用Qt Designer设计界面文件并编译成.py文件,然后编写调用程序,实现业务逻辑与界面的分离。
C# winform 子窗体调用父窗体函数实现关闭该窗体打开另一个窗体;在父窗体分From1内嵌一个panel1,在panel1里载入From2,点击在子窗体From2中的按钮,清除panel1里的From2,新载入From3,点击在子窗体From3中的按钮...
MFC 调用QT制作的界面,非常好用,值得学习。
在DLL里创建主程序的子窗口,调用这个DLL时出了点问题(退出程序时有个异常)。 一个示意简化的 dll及dll_test.
WinAmp的磁性窗口的功能,即只能被屏幕的边框吸引,没有子窗口之间的互相吸引,也不能拖动主窗口的时候带动被吸住的子窗口一起移动。 于是,我用了近三天的时间,做了这个程序,完全实现了WinAmp的磁性窗口的各种...
Python3.x+Pyqt5实现主窗体与子窗体相互传数据、传字符、传值;主要使用了信号与槽的方法。
https://txwtech.blog.csdn.net/article/details/126452757?spm=1001.2014.3001.5502 QT启动主界面窗口之前先启动一个子窗口,通过子窗口选择是否进入主界面,以及重新登录的操作,调用子窗口的方法
1.先使用Qt designer设计两个窗口,一个是主窗口,一个是子窗口 其中主窗口是新建-Main Window,子窗口是Dialog窗体。 两个窗口不能是同一类型,否则会崩溃。 并保存为EyeTracking_main.ui和Eye...
前两天做 silverlight 的东西,主页面打开一个子页面,然后子页面中包含一个 silverlight 应用程序那难免会涉及到他们三者相互调用的问题
主要介绍了C#实现winform用子窗体刷新父窗体及子窗体改变父窗体控件值的方法,涉及C#窗体交互的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
该资源里面有一个可以实现点击一个窗口弹出另一个窗口的实例,还有一个本人在解决这个问题时所做的笔记。你们可对比实例和我的笔记来参考。
MFC视图预览的原理是:以主框架窗口(CMainFrame)作为预览框架,隐藏原先的子视图(用CMainFrame::GetActiveView得到的那个,以下简称C视图),用CPreviewView类替换,同时创建包含“打印...”、“放大”、“关闭”...
这是实现在子窗体改变,通过委托同时让主窗体标题改变