進行用C#來開發windows應用程序項目時,不同窗口之間傳值有很多種不同的方法, 假設項目中有兩個窗體,Form1和Form2,要實現的效果是:點擊Form1中的按鈕打開From2,點擊Form2中的按鈕改變窗體Form1的背景顏色。
示例一:
點擊Form1中的按鈕打開From2,點擊Form2中的按鈕改變窗體Form1的背景顏色。
Form1的代碼:
public partial class Form : Form { public Form() { InitializeComponent(); } private void button_Click(object sender, EventArgs e) { //通過Form的構造函數將Form對象傳遞到Form中 Form form = new Form(this); form.Show(); } }
Form2的代碼:
public partial class Form : Form { //首先在Form中定義Form類型字段用來存儲Form對象 Form form=null; Random r = new Random(); public Form() { InitializeComponent(); } public Form(Form form):this() { //通過構造方法將Form對象給Form字段賦值 form = form; } private void button_Click(object sender, EventArgs e) { //隨機改變Form的背景顏色 form.BackColor = Color.FromArgb(r.Next(),r.Next(),r.Next()); } }
示例二:
假設項目中有兩個窗體,Form1和Form2,要實現的效果是點擊Form1中的Button1按鈕實現TextBox1和TextBox2中的值相加,然后把這個相加的值傳遞給Form2中的TextBox1,并在TextBox1中顯示出這個和值。
通過為窗體類寫屬性來傳遞值
(1),在被傳遞值的窗體(這里是Form2)類里面寫屬性
private string str;//定義的私有變量 public string STR//為窗體Form2定義的屬性 { get //讀 { return str; } set//寫 { str = value; } }
(2),在Form2中把讀到的屬性賦給Form2中的TextBox1文本框
(3),在Form1中的Button1的Click點擊事件中寫如下代碼
private void button1_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); int a, b, sum; if (int.TryParse(textBox1.Text, out a) && int.TryParse(textBox2.Text, out b))//關于TryParse的使用方法,見補充知識。 { sum = a + b; frm2.STR = sum.ToString(); frm2.ShowDialog(); } else { frm2.STR = "輸入的為非數字型字符串"; frm2.ShowDialog(); } }
大功告成,在你的機子上運行下,是不是成功了?
補充知識:
parse,tryparse區別
Convert.ToInt32,int.Parse(),int.TryParse,(int) 四者都可以解釋為將類型轉換為 int,那它們的區別是什么呢?
Convert.ToInt32 與 int.Parse 較為類似,實際上 Convert.ToInt32 內部調用了 int.Parse:
Convert.ToInt32 參數為 null 時,返回 0;
int.Parse 參數為 null 時,拋出異常。
Convert.ToInt32 參數為 "" 時,拋出異常;
int.Parse 參數為 "" 時,拋出異常。
Convert.ToInt32 可以轉換的類型較多;
int.Parse 只能轉換數字類型的字符串。
int.TryParse 與 int.Parse 又較為類似,但它不會產生異常,轉換成功返回 true,轉換失敗返回 false。最后一個參數為輸出值,如果轉換失敗,輸出值為 0。
返回true ,運行{}內,并給m賦值為2;
返回false,不運行if{}內,并給m賦值為0;
使用Parse和TryParse轉換數字字符串
基本數字類型包含Parse和TryParse方法,可用于將數字字符串轉換為指定的數字類型,例如:
TryParse方法是.NET2.0中引入的,它能提供有條件的解析。這個方法會返回一個布爾值,以指示解析是否成功,從而可以免去添加異常處理代碼的麻煩。下面的例子使用了一個Int32類型來演示TryParse的兩種形式:
在第二種形式中,第一個參數是要解析的文本字符串,第二個參數是NumberStyles枚舉類型,它說明了輸入字符串中可能包含的內容,返回值將放在第四個參數中返回。
以上就是Winform窗體傳值的方法(示例),希望對大家有所幫助。
新聞熱點
疑難解答