如何从主窗体传值到子窗体
IPEndPoint readerip = new IPEndPoint(IPAddress.Parse(currentDevice.DeviceIP),currentDevice.PortNo);
我如何将主窗体的currentDevice.DeviceIP和currentDevice.PortNo传值给子窗体?
public string IP()
{
string ip;
ip = currentDevice.DeviceIP;
return ip;
}
public int PORT()
{
int port;
port = currentDevice.PortNo;
return port;
}
想试着用上面的函数传值,可是报错:
未将对象引用设置到对象的实例。
我应该怎么修改呢?或者是谁有好的方法呢?
------解决方案--------------------报错,应该是你的currentDevice为null,你需要先赋值,至于子窗体传值,你需要说清楚子窗体与主窗体的逻辑关系以及调用关系,确切的说是应用场景。传值方式还是有很多的
------解决方案--------------------窗体间传值的几种方法,搬运过来的~
第一种方法:
创建一个类,里面声明用于存储接收的字段。传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用。(这种方法传递是双向的)
第二种方法:
1.在Form1里定义
public string Name = "*****"
2. 在Form2里创建Form1对象,
Form1 f = new Form1();
然后就可以通过f.Name取值了
第三种方法:用构造函数
在窗体Form2中
int value1;
string value2;
public Form2 ( int value1 , string value2 )
{
InitializeComponent ( );
this.value1 = value1;
this.value2 = value2;
}
在窗体Form1中这样调用
new Form2 ( 111 , "222" ).Show ( );
这样就把111,"222",这2个值传送给了Form2 d
但是这样的传值是单向的
第四种方法:通过窗体的公有属性值(特点:实现简单)
举例“在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值
public string Form2Value
{
get
{