程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Winform窗體傳值的辦法(示例)

Winform窗體傳值的辦法(示例)

編輯:C#入門知識

Winform窗體傳值的辦法(示例)。本站提示廣大學習愛好者:(Winform窗體傳值的辦法(示例))文章只能為提供參考,不一定能成為您想要的結果。以下是Winform窗體傳值的辦法(示例)正文


停止用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文本框
       
private void Form2_Load(object sender, EventArgs e)
        {
            textBox1.Text = str;
        }

(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。

int m;
if(int.TryParse("2"),out m)
{
...
}

前往true ,運轉{}內,並給m賦值為2;
 
if(int.TryParse("ddd"),out m)
{
...
}

前往false,不運轉if{}內,並給m賦值為0;
應用Parse和TryParse轉換數字字符串
根本數字類型包括Parse和TryParse辦法,可用於將數字字符串轉換為指定的數字類型,例如:

 TryParse辦法是.NET2.0中引入的,它能供給有前提的解析。這個辦法會前往一個布爾值,以指導解析能否勝利,從而可以避免去添加異常處置代碼的費事。上面的例子應用了一個Int32類型來演示TryParse的兩種情勢:

 

在第二種情勢中,第一個參數是要解析的文本字符串,第二個參數是NumberStyles列舉類型,它解釋了輸出字符串中能夠包括的內容,前往值將放在第四個參數中前往。

 以上就是Winform窗體傳值的辦法(示例),願望對年夜家有所贊助。

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved