你好,欢迎你阅读此贴。开发环境:
VS2005,Winform(C#)。问题背景:
在一个主窗口中打开一个设置成TopMost属性的半透明子窗体,这个子窗体比较大(比主窗口小),而且显示在中间位置。这时可以继续在主窗口中操作,如果这时主窗口弹出一个模态对话框(ShowDialog)或者消息提示(MessageBox.Show),或者打开文件对话框等等,设置成TopMost属性的半透明子窗体就会遮盖住这个弹出的模式对话框,使程序不能操作,因为不能移动这个设置成TopMost属性的半透明子窗体。问题提出:
怎样使一个设置成TopMost属性的子窗体在主窗体弹出模态对话框后可以移动?期待你的回答,谢谢。祝身体健康!
VS2005,Winform(C#)。问题背景:
在一个主窗口中打开一个设置成TopMost属性的半透明子窗体,这个子窗体比较大(比主窗口小),而且显示在中间位置。这时可以继续在主窗口中操作,如果这时主窗口弹出一个模态对话框(ShowDialog)或者消息提示(MessageBox.Show),或者打开文件对话框等等,设置成TopMost属性的半透明子窗体就会遮盖住这个弹出的模式对话框,使程序不能操作,因为不能移动这个设置成TopMost属性的半透明子窗体。问题提出:
怎样使一个设置成TopMost属性的子窗体在主窗体弹出模态对话框后可以移动?期待你的回答,谢谢。祝身体健康!
解决方案 »
- webbrowser 如何解决控件的ESC和方向键的问题
- 【★★★接口的调用★★★】
- 有做过物流的朋友进来下-----里程表问题
- C# 操作dbf 数据库问题
- 我想在按钮上显示,路径导航图标(就是windows工具栏上向上图标)怎么弄?
- 如何动态获取Datagrid的选中行的各字段的值??
- 关于成立智能家居软件开发项目组的意向
- 请问如何当随意点击DataGrid任意记录时都进行正行选择,就是把这一行都选上,还有如何不允许用户改变列得高度??
- 数据库表插入数据的时候,如何提取插入数据并显示到页面上,求代码
- Datagrid中怎样绑定Excell中的数据?(在线等待)
- MSSQL2000要命的问题!寻仙人解决!!!
- 如何在textbox中显示日期时间
ListenerThread()
{
//这是一个自由线程。不能在这里直接调用一个窗体
FormShow();//OK
}
delegate void FormHandler(DataSet ds);//声明一个委托
//定义一个方法此方法用来显示一个窗体
private void FormShow(DataSet ds)
{
if (!this.InvokeRequired) //如果当前线程不是主UI线程,返回true,否则,返回false.
{
frmBills fb = new frmBills();
fb.Show();
fb.Display(ds);
}
else
{
FormHandler fHandler = new FormHandler(this.FormShow); //创建一个新instance指向FormShow.
this.Invoke(fHandler, new object[] {ds}); //启动delegate
}
static extern bool EnableWindow(IntPtr hWnd, bool bEnable);
{
EnableWindow(this.Handle, true);
}
我试了这个方法,你们猜怎么着,成了.非常感谢.
用Show(this)的方式打开你的半透明子窗体试试,看看这是不是你想要的功能
我做过类似的东西,把topMost属性设成false
把TopMost属性设置成false后,怎么用Timer让窗口保持在最前面呢?