最近要做一个对接WebForm的柜台操作Winform的程序,在登陆窗体时因为要传递用户一些信息到后面窗体,所以试了下这个方法。
在入口方法中逻辑如下:
Code
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//欲关闭窗体
Form2 Log = new Form2();
TextBox textBox1 = (TextBox)Log.Controls.Find("textBox1", false)[0];
TextBox textBox2 = (TextBox)Log.Controls.Find("textBox2", false)[0];
//使用模式对话框方法显示Log
Log.ShowDialog();
//DialogResult就是用来判断是否返回父窗体的
if (Log.DialogResult == DialogResult.OK)
{
//在线程中打开主窗体
Application.Run(new Form3(textBox1.Text.ToString().Trim(), textBox2.Text.ToString().Trim()));
}
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//欲关闭窗体
Form2 Log = new Form2();
TextBox textBox1 = (TextBox)Log.Controls.Find("textBox1", false)[0];
TextBox textBox2 = (TextBox)Log.Controls.Find("textBox2", false)[0];
//使用模式对话框方法显示Log
Log.ShowDialog();
//DialogResult就是用来判断是否返回父窗体的
if (Log.DialogResult == DialogResult.OK)
{
//在线程中打开主窗体
Application.Run(new Form3(textBox1.Text.ToString().Trim(), textBox2.Text.ToString().Trim()));
}
}
完成登陆操作后,逻辑如下:
Code
private void button1_Click(object sender, EventArgs e)
{
string Param1 = textBox1.Text.ToString().Trim();
string Param2 = textBox2.Text.ToString().Trim();
this.DialogResult = DialogResult.OK;
}
private void button1_Click(object sender, EventArgs e)
{
string Param1 = textBox1.Text.ToString().Trim();
string Param2 = textBox2.Text.ToString().Trim();
this.DialogResult = DialogResult.OK;
}
Form3窗体接受参数,逻辑如下:
Code
public string _Param1;
public string _Param2;
public Form3(string Param1,string Param2)
{
InitializeComponent();
_Param1 = Param1;
_Param2 = Param2;
}
private void btn_ShowParams_Click(object sender, EventArgs e)
{
lbl_Param1.Text = _Param1;
lbl_Param2.Text = _Param2;
}
public string _Param1;
public string _Param2;
public Form3(string Param1,string Param2)
{
InitializeComponent();
_Param1 = Param1;
_Param2 = Param2;
}
private void btn_ShowParams_Click(object sender, EventArgs e)
{
lbl_Param1.Text = _Param1;
lbl_Param2.Text = _Param2;
}
这里只是简单逻辑,具体使用时当然要考虑一些细节因素,就不多做探讨了,具体情况具体处理,