欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2015年08月05日 11:13:29   投稿:mrr  
C#開發(fā)windows應(yīng)用程序項(xiàng)目時(shí),不同窗口之間傳值有很多中方法,在此給大家介紹兩種比較常用的winform窗體傳值的方法,有需要的朋友可以參考下

進(jìn)行用C#來開發(fā)windows應(yīng)用程序項(xiàng)目時(shí),不同窗口之間傳值有很多種不同的方法, 假設(shè)項(xiàng)目中有兩個(gè)窗體,F(xiàn)orm1和Form2,要實(shí)現(xiàn)的效果是:點(diǎn)擊Form1中的按鈕打開From2,點(diǎn)擊Form2中的按鈕改變窗體Form1的背景顏色。

示例一:

點(diǎn)擊Form1中的按鈕打開From2,點(diǎn)擊Form2中的按鈕改變窗體Form1的背景顏色。

Form1的代碼:

 public partial class Form : Form
 {
  public Form()
  {
  InitializeComponent();
  }
  private void button_Click(object sender, EventArgs e)
  {
  //通過Form的構(gòu)造函數(shù)將Form對(duì)象傳遞到Form中
  Form form = new Form(this);
  form.Show();
  }
 }

 Form2的代碼:

public partial class Form : Form
 {
  //首先在Form中定義Form類型字段用來存儲(chǔ)Form對(duì)象
  Form form=null;
  Random r = new Random();
  public Form()
  {
  InitializeComponent();
  }
  public Form(Form form):this()
  {
  //通過構(gòu)造方法將Form對(duì)象給Form字段賦值
  form = form;
  }
  private void button_Click(object sender, EventArgs e)
  {
  //隨機(jī)改變Form的背景顏色
  form.BackColor = Color.FromArgb(r.Next(),r.Next(),r.Next());
  }
 }

示例二:

假設(shè)項(xiàng)目中有兩個(gè)窗體,F(xiàn)orm1和Form2,要實(shí)現(xiàn)的效果是點(diǎn)擊Form1中的Button1按鈕實(shí)現(xiàn)TextBox1和TextBox2中的值相加,然后把這個(gè)相加的值傳遞給Form2中的TextBox1,并在TextBox1中顯示出這個(gè)和值。

通過為窗體類寫屬性來傳遞值

(1),在被傳遞值的窗體(這里是Form2)類里面寫屬性

private string str;//定義的私有變量


 public string STR//為窗體Form2定義的屬性
 {
  get //讀
  { return str;
  }
  set//寫
  {
  str = value;
  }
 }

(2),在Form2中把讀到的屬性賦給Form2中的TextBox1文本框
       

復(fù)制代碼 代碼如下:

private void Form2_Load(object sender, EventArgs e)
        {
            textBox1.Text = str;
        }

(3),在Form1中的Button1的Click點(diǎn)擊事件中寫如下代碼
       

 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的使用方法,見補(bǔ)充知識(shí)。
  {
  sum = a + b;
  frm2.STR = sum.ToString();
  frm2.ShowDialog();
  }
  else
  {
  frm2.STR = "輸入的為非數(shù)字型字符串";
  frm2.ShowDialog();
  }
 }

大功告成,在你的機(jī)子上運(yùn)行下,是不是成功了?

 補(bǔ)充知識(shí):
parse,tryparse區(qū)別
Convert.ToInt32,int.Parse(),int.TryParse,(int) 四者都可以解釋為將類型轉(zhuǎn)換為 int,那它們的區(qū)別是什么呢?
Convert.ToInt32 與 int.Parse 較為類似,實(shí)際上 Convert.ToInt32 內(nèi)部調(diào)用了 int.Parse:
Convert.ToInt32 參數(shù)為 null 時(shí),返回 0;
int.Parse 參數(shù)為 null 時(shí),拋出異常。
Convert.ToInt32 參數(shù)為 "" 時(shí),拋出異常;
int.Parse 參數(shù)為 "" 時(shí),拋出異常。
Convert.ToInt32 可以轉(zhuǎn)換的類型較多;
int.Parse 只能轉(zhuǎn)換數(shù)字類型的字符串。
int.TryParse 與 int.Parse 又較為類似,但它不會(huì)產(chǎn)生異常,轉(zhuǎn)換成功返回 true,轉(zhuǎn)換失敗返回 false。最后一個(gè)參數(shù)為輸出值,如果轉(zhuǎn)換失敗,輸出值為 0。

復(fù)制代碼 代碼如下:

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

返回true ,運(yùn)行{}內(nèi),并給m賦值為2;
 

復(fù)制代碼 代碼如下:

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

返回false,不運(yùn)行if{}內(nèi),并給m賦值為0;
使用Parse和TryParse轉(zhuǎn)換數(shù)字字符串
基本數(shù)字類型包含Parse和TryParse方法,可用于將數(shù)字字符串轉(zhuǎn)換為指定的數(shù)字類型,例如:

 TryParse方法是.NET2.0中引入的,它能提供有條件的解析。這個(gè)方法會(huì)返回一個(gè)布爾值,以指示解析是否成功,從而可以免去添加異常處理代碼的麻煩。下面的例子使用了一個(gè)Int32類型來演示TryParse的兩種形式:

 

在第二種形式中,第一個(gè)參數(shù)是要解析的文本字符串,第二個(gè)參數(shù)是NumberStyles枚舉類型,它說明了輸入字符串中可能包含的內(nèi)容,返回值將放在第四個(gè)參數(shù)中返回。

 以上就是Winform窗體傳值的方法(示例),希望對(duì)大家有所幫助。

 

 

 

相關(guān)文章

  • C#繪制曲線圖的方法

    C#繪制曲線圖的方法

    這篇文章主要介紹了C#繪制曲線圖的方法,以完整實(shí)例形式較為詳細(xì)的分析了C#進(jìn)行曲線繪制的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • c#中LINQ的基本用法(一)

    c#中LINQ的基本用法(一)

    這篇文章介紹了c#中LINQ的基本用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#定時(shí)關(guān)閉窗體實(shí)例

    C#定時(shí)關(guān)閉窗體實(shí)例

    這篇文章主要介紹了C#定時(shí)關(guān)閉窗體實(shí)例,在Windows桌面應(yīng)用程序開發(fā)中具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#?中?List?與?List?多層嵌套不改變原值的實(shí)現(xiàn)方法(深度復(fù)制)

    C#?中?List?與?List?多層嵌套不改變原值的實(shí)現(xiàn)方法(深度復(fù)制)

    這篇文章主要介紹了C#?中?List?與?List?多層嵌套不改變原值的實(shí)現(xiàn)方法,使用?BinaryFormatter?將原始?List?序列化為字節(jié)流,然后再反序列化得到新的?List,實(shí)現(xiàn)了深度復(fù)制,需要的朋友可以參考下
    2024-03-03
  • C# 獲取當(dāng)前總毫秒數(shù)的實(shí)例講解

    C# 獲取當(dāng)前總毫秒數(shù)的實(shí)例講解

    這篇文章主要介紹了C# 獲取當(dāng)前總毫秒數(shù)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#開發(fā)WinForm根據(jù)條件改變DataGridView行顏色

    C#開發(fā)WinForm根據(jù)條件改變DataGridView行顏色

    這篇文章介紹了C#開發(fā)WinForm根據(jù)條件改變DataGridView行顏色的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C# SQLite事務(wù)操作方法分析

    C# SQLite事務(wù)操作方法分析

    這篇文章主要介紹了C# SQLite事務(wù)操作方法,簡單分析了使用SQL代碼及C#代碼實(shí)現(xiàn)事務(wù)功能的操作技巧,需要的朋友可以參考下
    2017-07-07
  • c# 靜態(tài)類的使用場景

    c# 靜態(tài)類的使用場景

    這篇文章主要介紹了c# 靜態(tài)類的使用場景,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#如何實(shí)現(xiàn)調(diào)取釘釘考勤接口的功能

    C#如何實(shí)現(xiàn)調(diào)取釘釘考勤接口的功能

    這篇文章主要介紹了C#如何實(shí)現(xiàn)調(diào)取釘釘考勤接口的功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • C#里SuperSocket庫不能發(fā)現(xiàn)命令的原因

    C#里SuperSocket庫不能發(fā)現(xiàn)命令的原因

    這篇文章主要介紹C#里SuperSocket庫不能發(fā)現(xiàn)命令的原因,在使用SuperSocket來寫服務(wù)器的過程中,這是一個(gè)非??焖俚拈_發(fā)方式,也非常好用。不過學(xué)習(xí)的曲線有點(diǎn)高,在使用的過程中經(jīng)常會(huì)遇到各種各樣的問題。下面來看看學(xué)習(xí)舉例說明吧
    2021-10-10

最新評(píng)論