進行用C#來開發(fā)windows應用程序項目時,不同窗口之間傳值有很多種不同的方法, 假設(shè)項目中有兩個窗體,F(xiàn)orm1和Form2,要實現(xiàn)的效果是:點擊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的構(gòu)造函數(shù)將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()  {  //通過構(gòu)造方法將Form對象給Form字段賦值  form = form;  }  private void button_Click(object sender, EventArgs e)  {  //隨機改變Form的背景顏色  form.BackColor = Color.FromArgb(r.Next(),r.Next(),r.Next());  } }示例二:
假設(shè)項目中有兩個窗體,F(xiàn)orm1和Form2,要實現(xiàn)的效果是點擊Form1中的Button1按鈕實現(xiàn)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))//關(guān)于TryParse的使用方法,見補充知識。  {  sum = a + b;  frm2.STR = sum.ToString();  frm2.ShowDialog();  }  else  {  frm2.STR = "輸入的為非數(shù)字型字符串";  frm2.ShowDialog();  } }大功告成,在你的機子上運行下,是不是成功了?
 補充知識:
parse,tryparse區(qū)別
Convert.ToInt32,int.Parse(),int.TryParse,(int) 四者都可以解釋為將類型轉(zhuǎn)換為 int,那它們的區(qū)別是什么呢?
Convert.ToInt32 與 int.Parse 較為類似,實際上 Convert.ToInt32 內(nèi)部調(diào)用了 int.Parse:
Convert.ToInt32 參數(shù)為 null 時,返回 0;
int.Parse 參數(shù)為 null 時,拋出異常。
Convert.ToInt32 參數(shù)為 "" 時,拋出異常;
int.Parse 參數(shù)為 "" 時,拋出異常。
Convert.ToInt32 可以轉(zhuǎn)換的類型較多;
int.Parse 只能轉(zhuǎn)換數(shù)字類型的字符串。
int.TryParse 與 int.Parse 又較為類似,但它不會產(chǎn)生異常,轉(zhuǎn)換成功返回 true,轉(zhuǎn)換失敗返回 false。最后一個參數(shù)為輸出值,如果轉(zhuǎn)換失敗,輸出值為 0。
返回true ,運行{}內(nèi),并給m賦值為2;
 
返回false,不運行if{}內(nèi),并給m賦值為0;
使用Parse和TryParse轉(zhuǎn)換數(shù)字字符串
基本數(shù)字類型包含Parse和TryParse方法,可用于將數(shù)字字符串轉(zhuǎn)換為指定的數(shù)字類型,例如:
TryParse方法是.NET2.0中引入的,它能提供有條件的解析。這個方法會返回一個布爾值,以指示解析是否成功,從而可以免去添加異常處理代碼的麻煩。下面的例子使用了一個Int32類型來演示TryParse的兩種形式:
在第二種形式中,第一個參數(shù)是要解析的文本字符串,第二個參數(shù)是NumberStyles枚舉類型,它說明了輸入字符串中可能包含的內(nèi)容,返回值將放在第四個參數(shù)中返回。
以上就是Winform窗體傳值的方法(示例),希望對大家有所幫助。
新聞熱點
疑難解答
圖片精選