国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET中使用類名產生單態窗體或非單態窗體

2024-07-10 12:38:07
字體:
來源:轉載
供稿:網友

在做MDI窗體的時候,childwindow有的是單件模式的有的是不需要單件模式的

而父窗體呢可能需要通過配置文件獲取的窗體的類名來統一實例化一個子窗體來顯示。

下面就是我的一個實現方法,希望和大家一塊探討

定義單態子窗體

public class frmTemp : XamSoft.Shared.frmChildBase

窗體中包含如下定義

private static frmTemp _Instance;
/// <summary>
/// SDI窗體對象的獲取入口
/// 如果不需要SDI窗體則不加入此方法
/// </summary>
/// <returns></returns>
public static frmTemp GetInstance()
{
    if(_Instance == null)
   {
        _Instance = new frmTemp();
        return _Instance;
  }
  else
  {
       return _Instance;
  }
}

在父窗體中根據子窗體類名顯示子窗體

//通過配置文件決定啟動窗體
XamSoft.Shared.frmChildBase myForm = new frmChildBase();
System.Type myClassToShow = GetMyClass("XamSoft.frmTemp ");
//XamSoft子窗體類所在命名空間
foreach( System.Reflection.MethodInfo myMethod in myClassToShow.GetMethods())
{
     if(myMethod.Name == "GetInstance")
     {
          myForm = (XamSoft.Shared.frmChildBase)myMethod.Invoke(null,null);
     }
}

if(myForm == null)
{
    myForm = (XamSoft.Shared.frmChildBase)myClassToShow.Assembly.CreateInstance(myClassToShow.FullName);
}
myForm.MdiParent = this;
myForm.Show();

public Type GetMyClass(string tClassName)
{
    string fileName = "my.exe";
    Assembly asm = Assembly.LoadFrom(fileName);
    string className = tClassName;
    Type thisType = asm.GetType(className);
     return thisType;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新蔡县| 房山区| 岳西县| 牙克石市| 高阳县| 淅川县| 寻乌县| 科尔| 宁化县| 红原县| 乌拉特前旗| 武定县| 手机| 嘉峪关市| 罗定市| 姜堰市| 禹城市| 玉环县| 抚州市| 萍乡市| 汉川市| 博客| 东丰县| 长子县| 监利县| 怀来县| 明光市| 栾城县| 科技| 册亨县| 金秀| 丹寨县| 广西| 武定县| 长宁县| 齐河县| 盈江县| 曲麻莱县| 颍上县| 梧州市| 三河市|