c#窗口间传值
这个在网上看到了好多,一搜c#子窗口,父窗口,几乎都是传值的,今天我就简单介绍一下利用构造方法进行传值。
父窗口:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Sequence_C_sharp
{
public partial class Form1 : Form
{
private void Log_Click(object sender, EventArgs e)
{
int i = 0;
string type = "hhh";
Log_Form log = new Log_Form(i,type);
int j = log.get();
log.ShowDialog();
}
}
}
父窗口,为Form1。我们可以看出来,子窗口是Log_Form。在创建Log_Form对象时,将参数i,type当做参数传入。利用Log中的get方法得到log中的值。就是这么简单。下面看一下子窗口的代码。
子窗口:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Sequence_C_sharp
{
public partial class Log_Form : Form
{
private string log_info;
private int k = 0;
public int get()
{
return k;
}
public Log_Form() //空参构造,默认就有
{
InitializeComponent();
}
public Log_Form(int i, string Log_info) //有参构造,自己编写,用来传值
{
InitializeComponent();
int Param = i;
log_info = Log_info;
}
}
}
从上面的代码可以看出,父窗口向子窗口传值利用了构造函数的重载。而由子窗口向父窗口传值则利用了子窗口中的get方法,当然,这个get方法名称可以变,不是硬性规定,你要是乐意写成set也是可以的,只是代码的易读性不好了。