C# 对象引用未设置为splashform中对象的实例
我想让我的程序在检查程序是否连接到设备时显示加载消息。。。但是,当我尝试使用代码关闭Splash窗体时,出现了一个错误C# 对象引用未设置为splashform中对象的实例,c#,splash-screen,C#,Splash Screen,我想让我的程序在检查程序是否连接到设备时显示加载消息。。。但是,当我尝试使用代码关闭Splash窗体时,出现了一个错误 SplashForm.CloseForm(); 实际的表单代码是 class SplashForm { //Delegate for cross thread call to close private delegate void CloseDelegate(); //The type of form to be displayed as the s
SplashForm.CloseForm();
实际的表单代码是
class SplashForm
{
//Delegate for cross thread call to close
private delegate void CloseDelegate();
//The type of form to be displayed as the splash screen.
private static SplashForm splashForm;
static public void ShowSplashScreen()
{
// Make sure it is only launched once.
if (splashForm != null)
return;
Thread thread = new Thread(new ThreadStart(SplashForm.ShowForm));
thread.IsBackground = true;
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
static private void ShowForm()
{
splashForm = new SplashForm();
Application.Run(splashForm);
}
static public void CloseForm()
{
splashForm.Invoke(new CloseDelegate(SplashForm.CloseFormInternal));
}
static private void CloseFormInternal()
{
splashForm.Close();
}
...
}
在此代码中。。。我在第行收到一条错误消息“对象引用未设置为对象的实例”
splashForm.Invoke(new CloseDelegate(SplashForm.CloseFormInternal));
原因和解决方案是什么?未将
对象引用设置为对象的实例
消息是NullReferenceException的商标。这里,这意味着您的splashForm
字段为空
在调用“<代码> SpultFrase.CutelFielm()/代码>和2)之前,请调用“<代码> SpultFrase.StuffSelScript()/代码>)考虑调用<代码>线程.Cug()/<代码> <代码> StPrasHeldScript()/代码>,这样您可以确信,在离开该方法的时候,
splashForm
不为空。未设置为对象实例的对象引用
消息是NullReferenceException的商标。这里,这意味着您的splashForm
字段为空
在调用“<代码> SpultFrase.CutelFielm()/代码>和2)之前,请调用“<代码> SpultFrase.StuffSelScript()/代码>)考虑调用<代码>线程.Cug()/<代码> <代码> StPrasHeldScript()/代码>,这样您可以确信,在离开该方法的时候,
splashForm
不为空。我对同一程序中的其他进程使用相同的splashForm。它在那里工作,但不适用于我检查设备连接的特定代码。我在同一个程序的其他进程中使用相同的启动形式。它在那里工作,但不适用于我检查设备连接的特定代码。