C#設計界面時,未將對象引用設置到對象實例問題解決方案
在做.Net項目時,經常遇到在設計界面時,出現未將對象引用設置到對象實例問題,下面給出解決方案:
1、對於Winform和Asp.Net的界面設計可以按如下操作:
Winform項目:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (string.Compare(Process.GetCurrentProcess().ProcessName, devenv) == 0)
return;
//其他相關代碼,或者
//if (string.Compare(Process.GetCurrentProcess().ProcessName, devenv) != 0)
// {
//其他相關代碼,
// }
//或者
// if(!this.DesignMode)
//{ }
}
有時必須在構告函數中添加一些操作(雖然不提倡這樣做),也會出現這樣的問題,在構造函數中的寫去稍有不同
public BuroHomeFrm()
{
InitializeComponent();
if (string.Compare(Process.GetCurrentProcess().ProcessName, devenv) != 0)
{
//其他代碼。。。。。
}
或者
// if(!this.DesignMode)
//{ 其他代碼 }
//如果還是那樣寫,還是會報錯。
// if (string.Compare(Process.GetCurrentProcess().ProcessName, devenv) == 0)
// return;
}
Asp.Net可參考上述寫法
2、對於WPF,可以參考上述寫法,也有另一種寫法
if(!DesignerProperties.GetIsInDesignMode(this))
{
//其他代碼
}