积极答复者
求助有关窗体的问题?

问题
答案
-
想在程序主窗体运行后,弹出一个消息框询问是否要对程序做初始设置,请问如何能在主窗体运行后,再弹出这个消息框?
你大可以换一个思路,不能用Form_Load——在某个Form类中增加一个LoadComplete事件,然后在原来的Form_Show事件中引发。比如:
namespace WinFormCSharp
{
public partial class Form1 : Form
{
public event EventHandler LoadCompleted = null;
public Form1()
{
InitializeComponent();
}
void Form1_LoadCompleted(object sender, EventArgs e)
{
MessageBox.Show("要不要加载");
}
private void Form1_Shown(object sender, EventArgs e)
{
//模拟你要初始化加载的大量代码,用DoEvents代替。
Application.DoEvents();
LoadCompleted += new EventHandler(Form1_LoadCompleted);
//完成初始化加载之后,引发自定义事件。
LoadCompleted(this, null);
}
}
}具体可以参考:http://www.codeproject.com/KB/dialog/WinformsUsingShownEvent.aspx
如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者
If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
下载MSDN桌面工具(Vista,Win7)
下载Technet桌面小工具(Vista,Win7)
慈善点击,点击此处- 已标记为答案 Dummy yoyoModerator 2011年9月15日 2:31
-
你可以改为在主窗体打开之前来处理,你还可以做一个等等的窗体,等数据初始或加载完成后才显示主窗体。
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (MessageBox.Show("是否进行初始化设置?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { // 调用初始化设置的方法 // 相关参数的加载等等 } Application.Run(new MainFrom()); } }
知识改变命运,奋斗成就人生!- 已标记为答案 Dummy yoyoModerator 2011年9月15日 2:31
- 取消答案标记 Dummy yoyoModerator 2011年9月15日 2:31
- 已标记为答案 Dummy yoyoModerator 2011年9月15日 3:37
全部回复
-
想在程序主窗体运行后,弹出一个消息框询问是否要对程序做初始设置,请问如何能在主窗体运行后,再弹出这个消息框?
你大可以换一个思路,不能用Form_Load——在某个Form类中增加一个LoadComplete事件,然后在原来的Form_Show事件中引发。比如:
namespace WinFormCSharp
{
public partial class Form1 : Form
{
public event EventHandler LoadCompleted = null;
public Form1()
{
InitializeComponent();
}
void Form1_LoadCompleted(object sender, EventArgs e)
{
MessageBox.Show("要不要加载");
}
private void Form1_Shown(object sender, EventArgs e)
{
//模拟你要初始化加载的大量代码,用DoEvents代替。
Application.DoEvents();
LoadCompleted += new EventHandler(Form1_LoadCompleted);
//完成初始化加载之后,引发自定义事件。
LoadCompleted(this, null);
}
}
}具体可以参考:http://www.codeproject.com/KB/dialog/WinformsUsingShownEvent.aspx
如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者
If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
下载MSDN桌面工具(Vista,Win7)
下载Technet桌面小工具(Vista,Win7)
慈善点击,点击此处- 已标记为答案 Dummy yoyoModerator 2011年9月15日 2:31
-
Hi 牛先生,
欢迎来到MSDN 论坛!就目前而言,其他方案也是类似于Wei的方案,在 Shown( )事件中添加代码逻辑。
所以,本质上来说,我个人认为没有什么其他更好的方案了。
祝您今天愉快!
Yoyo Jiang[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已编辑 Dummy yoyoModerator 2011年9月15日 7:34
-
你可以改为在主窗体打开之前来处理,你还可以做一个等等的窗体,等数据初始或加载完成后才显示主窗体。
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (MessageBox.Show("是否进行初始化设置?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { // 调用初始化设置的方法 // 相关参数的加载等等 } Application.Run(new MainFrom()); } }
知识改变命运,奋斗成就人生!- 已标记为答案 Dummy yoyoModerator 2011年9月15日 2:31
- 取消答案标记 Dummy yoyoModerator 2011年9月15日 2:31
- 已标记为答案 Dummy yoyoModerator 2011年9月15日 3:37