最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#窗體傳值實例匯總

 更新時間:2014年12月04日 09:55:15   投稿:shichen2014  
這篇文章主要介紹了C#窗體傳值,實例形式匯總了靜態(tài)變量傳值、委托傳值、對話框之間的傳值等常見應(yīng)用技巧,需要的朋友可以參考下

本文實例匯總了C#窗體傳值的方法。分享給大家供大家參考。具體方法如下:

1.靜態(tài)變量傳值,非常簡單適合簡單的非實例的

復(fù)制代碼 代碼如下:
public calss form1:Form{
    public static int A;
}
public class form2:Form{
   form1.A=1;
}

2.委托傳值
復(fù)制代碼 代碼如下:
public class form1:Form{
  public int A{get;set;}
  public static Action<int> setIntADelForClass;//類的委托
  public Action<int>setIntADel   //實例的委托
  public void setintA(int a){
    A=a;
  }
  public void form_load(object sender, EventArgs e){
  setIntADelForClass=setIntA;
  setIntADel   =setIntA;
  }
}
public class form2:Form{
  public void setFom1IntA{
   form1.setIntADelForClass(10);//通過類的委托將form1 的A變量設(shè)置為10
  form1 fm1=new form1();
  fm1.setIntADel(12);//通過實例的委托將新實例fm1的A變量設(shè)置為12
  }
}

3.使用onwer屬性,適合對話框之間的傳值
復(fù)制代碼 代碼如下:
public class Form1:Form{
  public int A{get;set;}
  
   private void button1_click(object sender, EventArgs e){
    A=10;
    Form2 fm2=new Form2();
    fm2.ShowDialog(this);
   }
 
}
public class Form2:Form{
    private void button1_Click(object sender, EventArgs e)
        {
            Form1 fm = (Form1)this.Owner;
            MessageBox.Show(fm.A);//讀Form1的A
            fm.A=11;//寫Form1的A       
           
            
        }
}

當(dāng)然也可以使用委托繼續(xù)傳值

4.重構(gòu)窗體構(gòu)造函數(shù),初始化的時候傳值,只適合初始化的適合,不夠方便

5.委托+事件的方法

下面代碼是一個點擊Form1 button 使Form2的button顯示Form1.textbox內(nèi)容
可以一次性傳很多值,步驟是在窗體A中聲明一個事件,B窗體中實現(xiàn)相同方法簽名的方法為事件賦值,B中回調(diào)該方法
Form1的代碼:

復(fù)制代碼 代碼如下:
//--------------------------------------->>--------------------Form1---------------
public partial class Form1 : Form{
     public string B //獲取textbox1的text
        {
            get { return textBox1.Text; }
            set
            {
                textBox1.Text = value;
            }
        }
        public delegate void EventArgsaccept(object sender, acceptEventArgs e);//聲明一個事件簽名的委托
        public static event EventArgsaccept accept;//相當(dāng)于實例化一個事件
        private void button1_Click(object sender, EventArgs e)
        {
            acceptEventArgs ae = new acceptEventArgs();
            ae.b = B;
            
            if (accept != null) {
                accept(this,ae);
            }
        }
    }
  
 
}
  public class acceptEventArgs : EventArgs {//封裝EventArgs類,添加可傳遞的屬性
        public  string b { get; set; }
    }
//------------------->>----------------------------------end code of form1-----------

 
form2的代碼,實現(xiàn)一個相同簽名的方法,如我們的accept的簽名是 方法名(object a,acceptEventArgs b);
復(fù)制代碼 代碼如下:
//-------------------------------------->>---------------------------------------code of form2---
 public partial class Form2 : Form{
  private void Form2_Load(object sender, EventArgs e)
        {
            Form1.accept += Form1_accept;//為form1的事件賦值,當(dāng)form1執(zhí)行該事件的時候會執(zhí)行該方法
        }
  void Form1_accept(object sender,acceptEventArgs e) {//實現(xiàn)一個相同方法簽名的方法
            this.button1.Text = e.b;          
     }
}
//------------------------>>---------------

具體的原理,我想因為委托是函數(shù)指針?biāo)钥梢酝ㄟ^傳值能保存函數(shù)指針的位置?所以可以標(biāo)記相應(yīng)的實例的,執(zhí)行其他實例的方法?

還沒看編譯原理,發(fā)表一下自己看法,不要誤導(dǎo)大眾
6.通過全局?jǐn)?shù)據(jù)讀寫,適合登陸驗證

復(fù)制代碼 代碼如下:
AppDomain.CurrentDomain.SetData("user", "小明");
AppDomain.CurrentDomain.GetData("user");

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • WPF實現(xiàn)Table布局控件的示例代碼

    WPF實現(xiàn)Table布局控件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用WPF實現(xiàn)Table布局控件,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-10-10
  • C#反射編程之GetConstructor()方法解讀

    C#反射編程之GetConstructor()方法解讀

    C#中Type類的GetConstructor()方法用于獲取指定類型的構(gòu)造函數(shù),該方法有多個重載版本,可以根據(jù)不同的參數(shù)獲取不同特性的構(gòu)造函數(shù),返回值為ConstructorInfo類型,表示找到的構(gòu)造函數(shù),如果沒有找到則返回null
    2024-12-12
  • Unity游戲開發(fā)中的橋接模式

    Unity游戲開發(fā)中的橋接模式

    橋接模式是Unity游戲開發(fā)中常用的設(shè)計模式之一,用于將抽象部分與實現(xiàn)部分分離,從而使它們可以獨立地變化。通過橋接模式,不同的抽象類可以與不同的實現(xiàn)類組合使用,從而實現(xiàn)更加靈活和可擴展的系統(tǒng)設(shè)計。常見的應(yīng)用包括游戲中的場景渲染、UI界面設(shè)計、音效播放等
    2023-05-05
  • C#預(yù)定義的基礎(chǔ)類型轉(zhuǎn)換

    C#預(yù)定義的基礎(chǔ)類型轉(zhuǎn)換

    這篇文章介紹了C#預(yù)定義的基礎(chǔ)類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#如何將DataTable導(dǎo)出到Excel解決方案

    C#如何將DataTable導(dǎo)出到Excel解決方案

    由于公司項目中需要將系統(tǒng)內(nèi)用戶操作的所有日志進(jìn)行轉(zhuǎn)存?zhèn)浞?,考慮到以后可能還需要還原,所以最后決定將日志數(shù)據(jù)備份到Excel中
    2012-11-11
  • C# 10個常用特性匯總

    C# 10個常用特性匯總

    這篇文章主要介紹了C# 10個常用特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#如何使用Bogus創(chuàng)建模擬數(shù)據(jù)示例代碼

    C#如何使用Bogus創(chuàng)建模擬數(shù)據(jù)示例代碼

    這篇文章主要給大家介紹了關(guān)于C#如何使用Bogus創(chuàng)建模擬數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C#使用foreach語句搜索數(shù)組元素的方法

    C#使用foreach語句搜索數(shù)組元素的方法

    這篇文章主要介紹了C#使用foreach語句搜索數(shù)組元素的方法,涉及C#使用foreach語句遍歷數(shù)組實現(xiàn)搜索功能的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#中驗證sql語句是否正確(不執(zhí)行語句)

    C#中驗證sql語句是否正確(不執(zhí)行語句)

    C#中驗證sql語句是否正確(不執(zhí)行語句),需要的朋友可以參考一下
    2013-03-03
  • C# 中如何使用Thread

    C# 中如何使用Thread

    這篇文章主要介紹了C# 中使用 Thread的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01

最新評論

聊城市| 高台县| 军事| 阳城县| 怀仁县| 虹口区| 大荔县| 伊川县| 大埔区| 甘德县| 绥棱县| 昭苏县| 荃湾区| 白玉县| 新兴县| 梁平县| 西平县| 类乌齐县| 孟州市| 广元市| 田东县| 安仁县| 光山县| 宁城县| 腾冲县| 博客| 宣城市| 乌鲁木齐县| 盐亭县| 鄢陵县| 日照市| 墨玉县| 陵川县| 乌拉特后旗| 泰州市| 仪征市| 屯留县| 松江区| 黎平县| 新巴尔虎右旗| 茶陵县|