c# 怎么判断当前窗体是正在操作的。

我现在填充两个界面到1个panel,根据设置focus和BringToFront来设置显示哪个界面。我现在需要我当前显示的是否是此界面。
我使用了如下方法,都不管用:
1.Form.ActiveForm==this
2.public static extern IntPtr GetForegroundWindow();//获取当前激活窗口句柄
3.this.Focused
请教各位该怎么实现?

第1个回答  2018-05-24
Form.ActiveForm理论上应该可以,但你的this指的是哪个?自己先要理清楚。
也可以把整体需求贴出来帮你设计下思路。追问

我以前用的是form.activeForm,是可以,但是我现在把form加到一个panel里面,就不行了。我现在尝试用Intptr成功了,点击按钮的时候,赋值给一个全局的Inptr变量,然后当我需要判断的时候,判断this.Handle是否等于全局Inptr,如果等于则表示当前窗体是活动的。但是这种方式只限于点击了按钮,如果不点击按钮则无效。所以还是需要其他的思路。

追答

你有public static Form的实例么,类似inptr

本回答被提问者和网友采纳

【程序设计】c#里怎样判断当前进程是否打开
实现方式一: 使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.C#实现如下:把program.cs文件里的Main()函数改为如下代码:static void Main(){ bool runone;System.Threading.Mutex run = new System.Threading.Mutex(true, "jiaao_test", out runone);if (runone){ run.ReleaseMutex();Ap...

C# 另一个进程正在使用它,怎么才能找到正在使用它的这个进程呢_百度知 ...
1、有可能是你自己当前的C#程序代码中调用这个文件结束后,没有及时关闭这个文件的流操作,导致下次调用时,系统会判断到你这个文件没有被关闭,一直处于打开读取状态,就会报这个错误,最好的解决办法是,文件IO读取结束后,及时关闭文件流。2、也可能是你这个文件本身就是只读的 3、如果你这个程序已经发...

C# winform 程序 怎么样得到当前窗体在屏幕上的坐标了
} 注意:Form1是窗体类名,label1是Form1窗体里面的一个Label控件,注意这个事件是Move事件,也就是窗口移动事件

c# 判断当前窗体是否靠边
例上边界判断:如果窗体的上边界和屏幕的上边界相等,就调用。或右边界判断:如果窗体的左边界和屏幕的宽度相等,就调用。

C# 中 new出一个新窗体后,记录下句柄好,怎么再次判断这个句柄好是否有效...
数组初始值全是false的 如果好友的窗体打开就给那个好友的布尔附值为true.如果窗体关闭,就给那个布尔附值为false 在打开窗口前加上一句 if(buer[X]==false){ Form fo=new Form();\/\/...略 } 不知道这样可不可以解决你的问题..--- 可以传参数过去 把好友的名字传给那个窗体 在打开好友的事件...

C# winform 如何在子页面中判断主进程是否为当前活动窗体进程
子页面是WEB的说法,WINFORM只划分启动窗体、继承窗体、模态窗体。线程的话存在这么一说,WINFORM可以继承窗体事件,有时候也不一定要通过异步、多线程操作。C++和这个不是一回事,他可以跨线程。比如在C#中有个backgroudworker,他就是个多线程控件。C++直接用get属性就搞定 ...

C#获取当前窗体句柄及该窗体里的信息
C#获取当前窗体句柄及该窗体里的信息可以参考以下的代码:FindWindow(lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题} ): HWND; {返回窗口的句柄; 失败返回 0} \/\/FindWindowEx 比 FindWindow 多出两个句柄参数:FindWindowEx(Parent: HWND; {要查找子窗口的父窗口句柄} Child: HWND; ...

C#怎么判断鼠标是否在窗口中
用api就可以了。首先获得自己窗体是不是前台窗体,用GetForegroundWindow,如果是,则获得窗体在屏幕中的位置及大小,接着获得鼠标位置,最后判断是否在窗体内。

关于c# winform 编程的,怎么弄提示类似“加载中”的小窗口
\/\/初始位置在显示器中央 _childForm.StartPosition = FormStartPosition.CenterScreen;\/\/以上3项均可以在窗体属性中直接设置 \/\/绑定关闭事件 _childForm.FormClosed += new FormClosedEventHandler(ChildFormOnFormClosed);_childForm.Show();\/\/弹出 \/\/这里做你需要做的操作 _childForm.Close();\/\/关闭 ...

C#下子父窗体怎么判断子窗体是否被打开,防止重复打开?
给你个思路在子窗体里定义一个全局静态变量值为0 在父窗体的按钮里写打开子窗口方法,在判断子窗体全局变量里的值是否等于1,如果是1,则打开,为0,则没打开过,再加一句修改子窗体的该全局变量值为1,关闭子窗体的时候修改变量值为0.,就这样 很容易的 ...

相似回答