C#中怎样在一个窗体引用另一个窗体的变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中怎样在一个窗体引用另一个窗体的变量相关的知识,希望对你有一定的参考价值。

这个简单。
代码如下:
假设form1中变量的定义为:public
string
form1Str
=
"form1";
在form2中:form1
myForm1
=
new
form1();
string
form2Str
=
myForm1.form1Str;
这样就可以获取到form1中变量的引用了!
不过建议不要这么用,可以使用属性来做。
代码如下:
在form1中:private
string
form1Str;
public
string
Form1Str

get

return
form1Str;

set

form1Str
=
value;


在form2中代码相似:form1
myForm1
=
new
form1();
string
form2Str
=
myForm1.Form1Str;
这样就符合面向对象的封装原则了!
参考技术A 将变量在A窗体中设为全局变量
假设为public
static
string
a;
在控件的value_change事件中赋值:a=控件名.Text;
因为a是静态全局变量,所以B窗体使用到a值的时候直接用
A.a即可访问到;至于是赋值还是代入运算什么的都是A.a即可取到
参考技术B 2个窗口有关系的话:
from2
f
=
new
from2();
f.变量=f1的变量;
f.show();
然后在FORM2中就可以用啦。
要不就public
static
参考技术C 把这个变量定义为public
static
string;
然后在form1中使用Form2.这个变量

在C#一个程序中,将一个窗体中的数据传送到另一个窗体

使用多个窗体搭建的程序,需要用到窗体间的数据传递,常用两种方法:

方法一

1,进入子窗体的Designer.cs,将子窗体中的私有控件控件定义为public

 

 2.在主窗口程序Form1.cs中将子窗口实例化

 

 3.直接引用子船体中的控件

 

方法二:

在Program里 建一个结构体;里面定义一个静态变量,这个变量在FORM1 和FORM2 中可以通用;直接赋值取值就好;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Form1Form2
{
public struct mm
{
public static string m;
};
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

FORM1
mm.m = textBox1.Text;
FORM2
textBox1.Text = mm.m;

 

以上是关于C#中怎样在一个窗体引用另一个窗体的变量的主要内容,如果未能解决你的问题,请参考以下文章

C#如何在一个窗体中读取另一个窗体的控件的数据

在C#一个程序中,将一个窗体中的数据传送到另一个窗体

Delphi中从一个窗体传参数到另一个窗体的办法都有哪些?

C#怎样在一个窗体上执行另一个窗体的按钮,不能用new啊!

C#中如何在另一个类中调用Form1窗体控件的方法呢?

C#中如何在一个窗体中调用另一个窗体控件中的数据?