Visual Studio 中两个窗体(WinForm)之间相互传值的方法

编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain

1. FormMain和FormInfo

点击“修改...”按钮,显示FormInfo

2. 设置FormInfo中buttonOK和buttonCancal的属性

3. FormMain代码

 public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }

        private void buttonInfo_Click(object sender, EventArgs e)
        {
            // 实例化FormInfo,并传入待修改初值
            var formInfo = new FormInfo(labelInfo.Text);
            // 以对话框方式显示FormInfo
            if (formInfo.ShowDialog() == DialogResult.OK)
            {
                // 如果点击了FromInfo的“确定”按钮,获取修改后的信息并显示
                labelInfo.Text = formInfo.Information;
            }
        }
    }

4. FormInfo代码

public partial class FormInfo : Form
    {
        public FormInfo()
        {
            InitializeComponent();
        }

        /// <summary>
        ///     构造函数
        /// </summary>
        /// <param name="info">待修改的信息</param>
        public FormInfo(string info)
            : this()
        {
            // 在TextBox中显示信息初值
            textBoxInfo.Text = info;
        }

        /// <summary>
        ///     获取修改后的信息
        /// </summary>
        public string Information
        {
            get { return textBoxInfo.Text; }
        }
    }

5. 运行效果

===========

知识点延伸
知识点1:FormMain和FormInfo是对象。两窗体之间的信息交换,就是两个对象之间的信息交换。很多人迷失在Visual Studio可视化编程界面,编程时把这点抛到九霄云外啦!

知识点2:在FormMain中buttonOK事件处理函数中,很多人错误地认为FormInfo关闭后,它的实例formInfo就不存在了。其实,按照C#的规定,这个实例一直存在,直到从函数中退出才会销毁,交给垃圾回收!

原文地址:https://www.cnblogs.com/belx/p/9211177.html

时间: 2024-11-05 14:54:01

Visual Studio 中两个窗体(WinForm)之间相互传值的方法的相关文章

Visual Studio中的环境变量(以Visual Studio 2013为例)

前言 本文总结了Visual Studio中常见的环境变量及其在组织解决方案.工程中的作用. 注:本文使用的是Visual Studio 2013,由于作者主要从事C/C++开发,所以是以Visual C++的工作环境配置来描述. 什么是vs的环境变量? 先看图吧,图中以美元符号$开头 + 一对括号,这样进行引用的就是我所谓的环境变量, 图中出现的几个环境变量含义如下: 环境变量名 含义 $(SolutionDir) 解决方案目录:即.sln文件所在路径 $(Configuration) 当前的

Visual Studio 中的 .NET Framework 类库

Visual Studio 中的 .NET Framework 类库 .NET Framework 类库由命名空间组成.每个命名空间都包含可在程序中使用的类型:类.结构.枚举.委托和接口. 当您在 Visual Studio 中创建 Visual Basic 或 Visual C# 项目时,已经引用了最常用的基类 DLL(程序集).但是,如果您需要使用尚未引用的 DLL 中的类型,则需向此 DLL 添加引用.有关更多信息,请参见添加和移除引用. 以下主题提供了下列信息: 每个功能区域的最重要命名

Visual Studio中用于ASP.NET Web项目的Web服务器

当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们. 利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Express.Internet Information Services (IIS).外部主机或自定义 Web 服务器. 您可以将其中任何一种 Web 服务器用于基于文件的 Web 应用程序项目. 对于基于文件的网站项目,您可以使用 IIS Express. 本主题介绍每种 Web 服务器以及如何选择要用

Visual Studio 中用于 ASP.NET Web 项目的 Web 服务器

Visual Studio 中用于 ASP.NET Web 项目的 Web 服务器 当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们.             利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Express.Internet Information Services (IIS).外部主机或自定义 Web 服务器.  您可以将其中任何一种 Web 服务器用于基于文件的 Web 应用程序项目.

Visual Studio中Debug与Release以及x86、x64、Any CPU的区别

Visual Studio中Debug与Release的区别: 在Visual Studio中,编译模式有2种:Debug与Release.这也是默认的两种方式,在新建一个project的时候,就已经存在这两种模式供选择. Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.      Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. SO:      一般都是用Release来打包发布程序,因为Re

在Visual Studio中入门F#

写在前面的话 个人由某方面的兴趣需要学习 F#,网络上有关F#的中文资料很少,微软官方有很不错的文档,但是很可惜的是绝大部分的章节都是英文的.个人是一位.NET爱好者,想自己将 F# 的官方文档翻译出来,算是为了自己喜欢的 .NET 做一些贡献. 原文链接 Getting started with F# in Visual Studio 在这篇文章中 安装 F# 创建一个控制台应用程序 编写您的代码 运行您的代码 使用 F# Interactive 在 Visual Studio IDE 中支持

去除 Visual Studio 中臃肿的 ipch 和 sdf 文件

使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量,可惜毕竟硬盘还没有廉价到免费的地步. 那么,该怎么解决呢?其实可以关闭它.方法: Tools->Options->Text Editor->C/C++->Advanced->Disable Database,设置为True 但是这样的办法会产生另外的一些问题,可能会导致其他的一些

visual studio C/C++ 编程学习 visual studio 中的生成事件

也许是太方便了,大家在visualstudio中调试代码时,大多习惯了直接点这个小绿箭头,但其实从点这个小绿箭头直到程序开始运行中间经历了多个步骤. 下面我就这段事件在编译过程中遇到的问题,讲一些我的经验. 今天先来说一说 visual studio 中的生成事件 一个事例:有几幅bmp图像数据文件放在 test .vcproj工程文件所在文件夹下面的Data文件夹中.此时,外界调用该工程所生成的DLL文件,且需要取Data文件夹中bmp图像数据文件. 如下图所示: 作为首启动项的CallTes

在Visual&#160;Studio中调试C/C++&#160;mexFunction文件

C/C++ MEX文件:也称为MEX源码文件,就是就是普通的fortran/C/C++文件,只是其中定义了一个mexFunction的接口,用于和MATLAB通讯,使用mex()函数可以将其编译为MATLAB MEX文件.至于如何书写mex源码文件,您可以看下MATLAB的帮助文档! MATLAB MEX文件:也称为MEX二进制文件,是一种动态链接库,可以在MATLAB像普通函数一样直接调用或运行,windows平台下的扩展名为mexw32或者mexw64.使用mex()可以将MEX源码文件编译