C#通過反射獲取當(dāng)前工程中所有窗體并打開的方法
本文實(shí)例講述了C#通過反射獲取當(dāng)前工程中所有窗體并打開的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace TestAppHelperMSDNSample { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form startup = new Form(); startup.Text = "Choose a form to run"; startup.Size = new System.Drawing.Size(300, 300); startup.StartPosition = FormStartPosition.CenterScreen; startup.Load += new EventHandler(startup_Load); ComboBox cboForms = new ComboBox(); cboForms.Name = "cboForms"; cboForms.DropDownStyle = ComboBoxStyle.DropDownList; cboForms.Size = new System.Drawing.Size(250, 20); cboForms.Location = new System.Drawing.Point(25, 75); startup.Controls.Add(cboForms); Button btnOpenForm = new Button(); btnOpenForm.Text = "Open Form"; btnOpenForm.Size = new System.Drawing.Size(100, 30); btnOpenForm.Location = new System.Drawing.Point(100, 150); btnOpenForm.Click += new EventHandler(btnOpenForm_Click); startup.Controls.Add(btnOpenForm); Application.Run(startup); } static void btnOpenForm_Click(object sender, EventArgs e) { ComboBox cbo = ((sender as Button).Parent as Form).Controls["cboForms"] as ComboBox; Properties.Settings.Default.LastFormFullName = cbo.SelectedItem.ToString(); Properties.Settings.Default.Save(); Form f = Activator.CreateInstance(Type.GetType(cbo.SelectedItem.ToString())) as Form; f.ShowDialog(); } static void startup_Load(object sender, EventArgs e) { ComboBox cbo = ((sender as Form).Controls["cboForms"] as ComboBox); // load all the Forms in executing assembly Type[] types = System.Reflection.Assembly.GetExecutingAssembly().GetExportedTypes(); foreach (Type t in types) { if (t.BaseType == typeof(Form)) { cbo.Items.Add(t.FullName); } } // select the last used if (!string.IsNullOrEmpty(Properties.Settings.Default.LastFormFullName)) { if(cbo.Items.Contains(Properties.Settings.Default.LastFormFullName)) { int index = cbo.FindString(Properties.Settings.Default.LastFormFullName); if (index >= 0) cbo.SelectedIndex = index; } } } } }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
上一篇:關(guān)于ASP網(wǎng)頁無法打開的解決方案
欄 目:C#教程
下一篇:沒有了
本文標(biāo)題:C#通過反射獲取當(dāng)前工程中所有窗體并打開的方法
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/7055.html
您可能感興趣的文章
- 01-10C#通過重寫Panel改變邊框顏色與寬度的方法
- 01-10C#獲取進(jìn)程或線程相關(guān)信息的方法
- 01-10C#通過Semaphore類控制線程隊(duì)列的方法
- 01-10C#調(diào)用dos窗口獲取相關(guān)信息的方法
- 01-10C#編程獲取資源文件中圖片的方法
- 01-10C#獲取任務(wù)欄顯示進(jìn)程的方法
- 01-10C#利用反射技術(shù)實(shí)現(xiàn)去掉按鈕選中時(shí)的邊框效果
- 01-10C#及WPF獲取本機(jī)所有字體和顏色的方法
- 01-10C#獲取動(dòng)態(tài)生成的CheckBox值
- 01-10C#獲取網(wǎng)頁源代碼的方法


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法