C#简单问题一个,望高手不吝赐教

Impulse_Boy 2004-09-09 10:51:06
我建立一个form类叫frmMain,其结构大致如下:
public class frmMain : System.Windows.Forms.Form
{
......
private frmMain()
{
InitializeComponent();
}

public static frmMain _object;
public static frmMain GetObject()
{
try
{
if(_object.ToString() != String.Empty)
return _object;
else
{
_object = new Configs();
return _object;
}
}
catch(Exception)
{
_object = new Configs();
return _object;
}
}
......
}
调用GetObject函数建立其实例对象,然后调用frmMain.Show()函数,为什么无法显示啊?望高手告知原因。
...全文
70 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Impulse_Boy 2004-09-09
  • 打赏
  • 举报
回复
是STAThread吧?本来Main就是单线程的啊。
我还试过换成MTAThread的,也没有用啊。
是不是还有什么别的原因?
triout 2004-09-09
  • 打赏
  • 举报
回复
那没有什么问题的呀,是否你还在别的什么地方设置了什么内容?
或者把MAIN函数设置为STATThread属性看。
Impulse_Boy 2004-09-09
  • 打赏
  • 举报
回复
Oh,sorry ,代码贴错了。我是用_object = new frmMain();

这个form是应用程序的主窗体,调用时是在Main中:
static void Main()
{
Application.Run(frmMain.GetObject());
}
这时候又无法显式调用frmMain.GetObject.Show();
无法显示……怎么解决啊?
zhpsam109 2004-09-09
  • 打赏
  • 举报
回复
Configs是什么?


我把你的_object = new Configs();该为:_object = new frmMain();

然后再另外一个窗体的按钮单击事件中:
frmMain._object=frmMain.GetObject();
frmMain._object.Show();

可以显示frmMain,但是一次启动程序,只能显示一次,因为_object是静态的!
triout 2004-09-09
  • 打赏
  • 举报
回复
你的GetObject返回的是一个CONFIGS类型的对象,那么这个CONFIGS类型是什么类型?

你又在什么地方显示的?
Firestone2003 2004-09-09
  • 打赏
  • 举报
回复
至少是_object.Show()吧

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧