动态创建 MDI Form 方法

时间:2022-10-20 10:32:26

新项目刚结束,终于可以小小松口气,同时在这里与大家分享一些项目心得,会在本BLOG中不定期公布。首先分享的是动态创建MDIFORM的方法,当一个程序中包括有N十个MIDFORM时,你不会想着一个个去N行的代码去控制他显示与否吧?但这个项目中我们较多的程序员就是这样去控制的,在检查代码时,发现太多的冗余代码,不易于维护。由于本人比较懒,就想了以下方法去精简这个MIDFORM显示的过程。

方法代码:

动态创建 MDI Form 方法动态创建 MDI Form 方法         /**/ /// <summary>
动态创建 MDI Form 方法        
/// 根据登录权限判断弹出窗口
动态创建 MDI Form 方法        
/// </summary>
动态创建 MDI Form 方法        
/// <param name="strPrim">权限名</param>
动态创建 MDI Form 方法        
/// <param name="fInput">弹出窗口名</param>

动态创建 MDI Form 方法         private   void  ShowForm( string  strPrim,  string  fInput)
动态创建 MDI Form 方法动态创建 MDI Form 方法        
... {
动态创建 MDI Form 方法            
//判断是否已经打开,如果打开显示在最上面
动态创建 MDI Form 方法
            foreach (Form childForm in this.MdiChildren)
动态创建 MDI Form 方法动态创建 MDI Form 方法            
...{
动态创建 MDI Form 方法                
if (childForm.Name == fInput)
动态创建 MDI Form 方法动态创建 MDI Form 方法                
...{
动态创建 MDI Form 方法                    childForm.Activate();
动态创建 MDI Form 方法                    
return;
动态创建 MDI Form 方法                }

动态创建 MDI Form 方法            }

动态创建 MDI Form 方法            
//未打开
动态创建 MDI Form 方法
            if (STAFF_JURISDICTION.Contains(strPrim.ToLower()))
动态创建 MDI Form 方法动态创建 MDI Form 方法            
...{
动态创建 MDI Form 方法                
string strClassName = fInput;
动态创建 MDI Form 方法                
if (fInput.IndexOf("."> 0)
动态创建 MDI Form 方法                    strClassName 
= fInput;
动态创建 MDI Form 方法                Assembly assembly 
= Assembly.GetExecutingAssembly();
动态创建 MDI Form 方法                Type type 
= assembly.GetType(strClassName);
动态创建 MDI Form 方法                
object obj = Activator.CreateInstance(type, null);
动态创建 MDI Form 方法                Form fm 
= (Form)obj;
动态创建 MDI Form 方法                
//判断是否已经打开
动态创建 MDI Form 方法
                fm.MdiParent = CommonControl.ActiveForm;
动态创建 MDI Form 方法                
//样式设置
动态创建 MDI Form 方法
                fm.StartPosition = FormStartPosition.CenterScreen;
动态创建 MDI Form 方法                
if (fm.FormBorderStyle == FormBorderStyle.FixedToolWindow
动态创建 MDI Form 方法                    
|| fm.FormBorderStyle == FormBorderStyle.SizableToolWindow)
动态创建 MDI Form 方法动态创建 MDI Form 方法                
...{
动态创建 MDI Form 方法                    fm.FormBorderStyle 
= FormBorderStyle.FixedDialog;
动态创建 MDI Form 方法                    fm.MaximizeBox 
= false;
动态创建 MDI Form 方法                }

动态创建 MDI Form 方法                
if (fm.MaximizeBox == true)
动态创建 MDI Form 方法                    fm.WindowState 
= FormWindowState.Maximized;
动态创建 MDI Form 方法                fm.Show();
动态创建 MDI Form 方法            }

动态创建 MDI Form 方法            
else
动态创建 MDI Form 方法动态创建 MDI Form 方法            
...{
动态创建 MDI Form 方法                MessageBox.Show(
"没有该项目操作权限,请联系相关管理人员赋权!""警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
动态创建 MDI Form 方法            }

动态创建 MDI Form 方法        }

调用:

 

动态创建 MDI Form 方法ShowForm( " A001 " " MySys_002 " );

 

以上方法调用增加了权限的控制,因此大家要使用的话,需要做小的调整,怎么调就不用说了吧:)