程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WinForm子窗體向父窗體傳遞值

WinForm子窗體向父窗體傳遞值

編輯:關於.NET
功能描述:
兩個窗體,父窗體:Form1,子窗體:Form2。


1.點擊父窗體的(按鈕1),出現子窗體。

在子窗體的文本框輸入字符串


2.點擊子窗體的(按鈕2),子窗體消失,同時將文本框中內容傳送給父窗體。
父窗體文本框顯示獲得值。


很簡單的功能(不過網上很多人喜歡裝,回答往往高深莫測,弄得人一頭霧水)。
詳細代碼如下:
Form1的代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowToWindow
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
if (frm2.DialogResult == DialogResult.OK)
{
textBox1.Text = frm2.tt;
frm2.Close();
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}

Form2的代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowToWindow
{
public partial class Form2 : Form
{
public string tt
{
get { return textBox1.Text; }
}
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
}
}
關鍵點有兩個,一是實現值的傳遞,這個比較簡單,就是在form2 中設置幾個公共變量
如:
public string tt
{
get { return textBox1.Text; }
}
這裡的get 是為了更方便地獲取form2中textbox1.text的值,也可以不用這個方法,直接在form2的(按鈕2)點擊事件中為tt賦值;
二是實現點擊按鈕後form2可以消失,這裡在form1的(按鈕1)點擊事件中進行。通過form2的DialogResult屬性判斷是否關閉form2。
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
if (frm2.DialogResult == DialogResult.OK)//確認form2的(按鈕2)已點擊
{
textBox1.Text = frm2.tt;
frm2.Close();//關閉form2
}
}
form2的DialogResult屬性是在他的(按鈕2)的點擊事件中設置的
this.DialogResult = DialogResult.OK;//點擊(按鈕2),設置FORM2的DialogResult

為什麼不直接在(按鈕2)的點擊事件中設置關閉form2呢,原因很簡單,這樣做的話就不方便向form1傳遞值了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved