首页 > 语言 > 关键词  > .NET最新资讯  > 正文

.net中Windows窗体间的数据交互

2008-10-25 16:44 · 稿源:chinaitlab.com

Windows 窗体是用于 Microsoft Windows 应用程序开发的、基于 .NET Framework 的新平台。此框架提供一个有条理的、面向对象的、可扩展的类集,它使您得以开发丰富的 Windows 应用程序。一个Windows窗体就代表了.NET架构里的System.Windows.Forms.Form类的一个实例。

作者在CSDN技术论坛.NET板块下的C#分类经常看到有人问起如何在两个Form间传递数据,访问修改对方窗体里面的值。对于有经验的程序员来说不是什么高深的东西,而对于初学者来说这些基础的东西往往是一个问题,并且存在这种现象,往往比较复杂的东西他们会,要用什么了就去学什么,实际上并没有真正的去理解掌握它,基础不扎实,所以就有了想通过自己对窗体编程积累的经验来写一些这方面的文章,以供学.NET的朋友参考,也借此机会同各位朋友进行交流,写得不合理的地方请各位朋友提宝贵意见,下面我分了三个部分来讲。

一.使用带参数的构造函数
我们要做的准备工作就是新建两个窗体,下面是两个窗体的布局,很简单:

<第一个例子>

说明:Form1为主窗体,包含控件:文本框textBoxFrm1,多选框checkBoxFrm1和按钮buttonEdit;

Form2为子窗体,包含控件:文本框textBoxFrm2,多选框checkBoxFrm2和按钮buttonOK,buttonCancel。

当我们新建一个窗体的时候,设计器会生成默认的构造函数:

以下为引用的内容:
public Form2()
{
InitializeComponent();
}

它不带参数,既然我们要把Form1中的一些数据传到Form2中去,为什么不在Form2的构造函数里做文章呢?

假设我们要实现使Form2中的文本框显示Form1里textBoxFrm1的值,修改子窗体的构造函数:

以下为引用的内容:
public Form2(string text)
{
InitializeComponent();
this.textBoxFrm2.Text = text;
}

增加Form1中的修改按钮点击事件,处理函数如下:

以下为引用的内容:
private void buttonEdit_Click(object sender, System.EventArgs e)
{
Form2 formChild = new Form2(this.textBoxFrm1.Text);
formChild.Show();
}

我们把this.textBoxFrm1.Text作为参数传到子窗体构造函数,以非模式方式打开,这样打开的formChild的文本框就显示了”主窗体”文本,是不是很简单,接下来我们传一个boolean数据给子窗体。
Public Form2(string text,bool checkedValue)

以下为引用的内容:
{
InitializeComponent();
this.textBoxFrm2.Text = text;
this.checkBoxFrm2.Checked = checkedValue;
}

在主窗体中的修改按钮点击处理,我采用了打开模式窗口的方式,其实在这个例子中看不出有什么分别,

以下为引用的内容:

private void buttonEdit_Click(object sender, System.EventArgs e)
{
Form2 formChild = new Form2(this.textBoxFrm1.Text,this.checkBoxFrm1.Checked);
formChild.ShowDialog();
}

举报

  • 相关推荐
  • 看着好想买!微软推出Windows XP限量定制洞洞鞋:570元左右

    微软在庆祝成立50周年之际,推出了一款让人意想不到的怀旧产品Windows XP定制版洞洞鞋。 这款被称为微软50周年独家版”的洞洞鞋,以Windows XP的经典桌面壁纸为设计灵感,将蓝天和绿地的元素融入鞋面设计中,瞬间唤起了许多用户的回忆。 不仅在设计上充满怀旧感,还附带了六个定制的Microsoft Jibbitz鞋饰,包括MSN标志、Internet Explorer图标、经典的Clippy办公助手、鼠标指针等。

  • 一个命令行 让你的Windows 10/11重回Windows 7

    尽管Windows10、Windows11加起来占了94%以上的市场份额,但依然还有3%左右的用户在坚守Windows7。如果你也想回顾一下Windows7当年的体验,不妨试试下面这个方法。要返回到原始操作系统,只需卸载此脚本安装的所有与主题相关的程序即可。

  • 2025互联网大会聚焦智能体,微美全息(WIMI.US)多模态AI革新入局抢占Agent赛道

    2025年中国互联网大会在北京开幕,聚焦"数驱新质·智创未来"主题,重点探讨AI、5G/6G、低空经济等前沿技术。大会指出AI发展正从大模型转向智能体(AI Agent)时代,微软CEO纳德拉等科技巨头已布局智能体产品。专家分析智能体由"大模型+记忆系统+工具调用+规划能力"构成闭环系统,能自主完成任务并优化结果。微美全息等企业正推进多模态大模型技术重构行业服务模式,构建"技术-产品-行业"一体化生态。行业共识2025年将成为智能体爆发元年,尽管尚处早期阶段,但微软、谷歌、OpenAI等已加速布局,如OpenAI推出的ChatGPT Agent。智能体被视为实现AGI的重要路径,将推动人机协作进入新阶段。

  • 联想携手微软助力 Windows 7 迁移至 Windows 10

    自Windows 10 发布以来, 截止到今年 9 月,Windows 10 的月活跃设备数量超过 9 亿台。随着越来越多用户选择 Windows 10,服务了近 10 年的 Windows 7,也将在 2020 年 1 月 14 日之后终止包括安全更新在内的技术支持。为了帮助用户更好的迁移到 Windows10,联想将与微软共同努力,为用户带来 Windows 10 上的更安全、便捷和高效的使用体验。Windows 10 拥有丰富的功能和独特的优势,全新的设计更适用于当下的现代办公方式。强大的

  • 定了!微软宣布新版Windows 12命名:不叫Windows 12

    微软官方确认,今年秋季推出的新版Windows将被命名为Windows1124H2”,并非早先外界猜测的Windows12。微软向Windows11Canary和Dev频道发布了Windows11Build26052预览版。在2025年Windows10结束支持之前,Win10、Windows11依然是绝对的主流。

  • 如何在Windows 10系统中启用Windows Sandbox功能

    ​Windows Sandbox这项新功能允许用户在隔离环境下测试和运行各种应用程序。Sandbox本质上是一个轻量级虚拟机,目前已经在Windows 10 May 2019(Version 1903)功能更新中上线,可以在隔离环境中运行不受信任的应用程序,而且不会对设备造成长期影响。

  • 微软新的Windows Terminal已经可在Windows 10商店下载

    今年早些时候,微软在Build2019 大会上首次公布了新的Windows Terminal。该工具本是一个高级的快速终端应用程序,允许用户访问传统的cmd线路、PowerShell以及用于Linux的Windows Subsystem。微软现已正式推出新的 Windows Terminal ,已经可以下载。

  • Windows 7距离死亡不到1个月 如何升级到Windows 10?

    ​发布10年后,微软最受欢迎的操作系统之一Windows 7将在2020年1月14日终止扩展支持,最近微软也开始弹窗通知提醒Win7用户升级到Win10。距离Win7彻底死亡不到1个月了,升级到Win10是唯一的选择了。

  • Windows 10家庭版还有衍生SKU?或叫做Windows 10 Advanced

    已经开幕的Computex2019 大会上,在诸多新品亮相的同时有一类新设备额外引人关注,而关注的焦点是这批设备装备了Windows 10 Home Ultra版本。这是因为这个Windows10 家庭版的衍生SKU此前从未听说过,应该是介于Windows10 家庭版和专业版之间的新SKU。

  • Windows 10全球份额有望在不久超过Windows 7

    虽然微软一直都在不遗余力的推广Windows 10,但是市场份额一直都比Windows7 来得小,不过再过不久这个局面可能就要改变了。