wnform 打开模式窗体的问题

u010618015 2014-07-21 06:28:30
主窗体的代码(BackTransparentScreen 对象是一个半透明的窗体,作用是在弹出NotifyScreen模式窗体时实现主窗体半透明的效果):
public bool ShowNotify(string title, string msg, bool isNeedReturn)
{
BackTransparentScreen backScreen = new BackTransparentScreen();
this.AddOwnedForm(backScreen);
backScreen.Show();

try
{
Mode.NotifyScreen notifyUC = new Mode.NotifyScreen(title, msg, isNeedReturn);
DialogResult result = notifyUC.ShowDialog();
return result == System.Windows.Forms.DialogResult.OK;
}
finally
{
this.RemoveOwnedForm(backScreen);
backScreen.Close();
}
}

NotifyScreen窗体有一个按钮用来关闭该窗体并设置窗体结果:
void btnOk_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.Close();
}


出现的问题:当运行完notifyUC.ShowDialog()时,窗体会关闭,然后半透明的窗体也会关闭,就在这时会出现主窗体闪烁一下,请帮忙看下原因. 尝试在finally{}里增加线程睡眠会出现模式窗体和主窗体卡在一起.
...全文
168 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010618015 2014-07-22
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
http://blog.csdn.net/wuyazhe/article/details/5642431
我是需要打开模式窗体之后只能操作该窗体, 在关闭时拿到返回值. 使用线程那所要做的事情就没意义了.
threenewbee 2014-07-22
  • 打赏
  • 举报
回复
http://blog.csdn.net/wuyazhe/article/details/5642431

111,094

社区成员

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

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

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