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

C#通過反射打開相應(yīng)窗體方法分享

 更新時間:2015年05月18日 08:43:47   投稿:hebedich  
本文章來給各位同學(xué)介紹關(guān)于C#單擊菜單欄或工具欄時通過反射打開窗體的方法,有需要了解的朋友可進入?yún)⒖紖⒖肌?/div>

C#單擊菜單欄或工具欄時通過反射打開窗體的方法,可以以取代長長的if-else或switch-case語句。要點:將菜單或工具欄項的名稱設(shè)置為與相應(yīng)窗體名稱相同(關(guān)鍵)。

private void MenuItem_Click(object sender, EventArgs e)
{
   ToolStripMenuItem menuItem = (ToolStripMenuItem)sender;
   Form form = (Form)Assembly.Load(“您的程序集名稱”).CreateInstance(“窗體命名空間. “+ menuItem.Name); //注意: 窗體命  名空間后面一定要加一個點
   form.MdiParent = this; //如果是Mdi窗體的話請加這一行
   form.Show();
}

如果我們的一個窗體里有N個窗體,或者是有一Tree需要對應(yīng)的調(diào)用N個窗體話,如果使用IF ELse方法可能會很麻煩,

一般可能我會們這樣寫 

private void button3_Click(object sender, EventArgs e)
    {
      //獲取單擊的Button名稱
      string btnname = ((Button)sender).Name;
      if (btnname == "button1")
      {
        //處理窗體
      }
      else if (btnname == "button2")
      {
        //處理窗體
      }
      else
      {
        //處理窗體
      }
    }

這樣也不是不可 行,但是如果100多個上千個就不行了,
可以說超過10個就不好玩了,但是如果使用反射就很方便 ,只需要幾行代碼就可以的,
看下面的方法吧

/// <summary> 
    /// 打開新的子窗體 
    /// </summary> 
    /// <param name="strName">窗體的類名</param> 
    /// <param name="AssemblyName">窗體所在類庫的名稱</param>  
    public static void CreateForm(string strName, string AssemblyName)
    {
      string path = AssemblyName;//項目的Assembly選項名稱 
      string name = strName; //類的名字 
      Form doc = (Form)Assembly.Load(path).CreateInstance(name);
      doc.Show();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      //獲取單擊的Button名稱
      string btnname = ((Button)sender).Text;
      CreateForm("WindowsFormsApplication1." + btnname, "WindowsFormsApplication1");
    }

有了上面的方法,只要我們的用戶控件Text和窗體的類名一樣就可能實現(xiàn)動態(tài)加載了,當(dāng)然如果有的同志說我的Text要用漢字怎么辦,那就再換個屬性啊,比如Name或者是其他屬性都可以。總之肯定比你一個一個的去寫要方便很多

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • C#中時間的幾種格式轉(zhuǎn)換方法

    C#中時間的幾種格式轉(zhuǎn)換方法

    有時候我們要對C#時間進行轉(zhuǎn)換,達到不同的顯示效果,這里簡單介紹下,方便需要的朋友
    2013-09-09
  • C#集合之有序列表的用法

    C#集合之有序列表的用法

    這篇文章介紹了C#集合之有序列表的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C# 使用Fiddler捕獲本地HttpClient發(fā)出的請求操作

    C# 使用Fiddler捕獲本地HttpClient發(fā)出的請求操作

    這篇文章主要介紹了C# 使用Fiddler捕獲本地HttpClient發(fā)出的請求操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 使用HttpHanlder處理404:File not found的問題

    使用HttpHanlder處理404:File not found的問題

    本篇文章小編為大家介紹。使用HttpHanlder處理404:File not found的問題。需要的朋友參考下
    2013-04-04
  • C#實現(xiàn)Word轉(zhuǎn)換TXT的方法詳解

    C#實現(xiàn)Word轉(zhuǎn)換TXT的方法詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)Word轉(zhuǎn)換TXT的功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#實現(xiàn)滑動開關(guān)效果

    C#實現(xiàn)滑動開關(guān)效果

    這篇文章主要為大家詳細介紹了C#實現(xiàn)滑動開關(guān)效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)

    C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)

    這篇文章主要為大家詳細介紹了C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C# 通過 oledb 操作Excel實例代碼

    C# 通過 oledb 操作Excel實例代碼

    本篇文章主要介紹了C# 通過 oledb 操作Excel實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 使用C#實現(xiàn)在word中插入頁眉頁腳的方法

    使用C#實現(xiàn)在word中插入頁眉頁腳的方法

    這篇文章主要介紹了使用C#實現(xiàn)在word中插入頁眉頁腳的方法,是操作Word的常見方法,有一定的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-08-08
  • 基于C#實現(xiàn)磁性吸附窗體

    基于C#實現(xiàn)磁性吸附窗體

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)磁性吸附窗體,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12

最新評論

教育| 诏安县| 赣榆县| 安新县| 宽甸| 萝北县| 榆林市| 翼城县| 贵南县| 杭锦后旗| 永丰县| 东安县| 海口市| 隆尧县| 松溪县| 平昌县| 乌鲁木齐市| 牙克石市| 谢通门县| 略阳县| 清苑县| 淮安市| 简阳市| 桑日县| 梁河县| 临洮县| 九台市| 霸州市| 八宿县| 根河市| 浮山县| 同心县| 达拉特旗| 桂东县| 达孜县| 德阳市| 南江县| 湘潭县| 新建县| 垫江县| 江西省|