首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >显示新表单时显示的背景窗口一瞥

显示新表单时显示的背景窗口一瞥
EN

Stack Overflow用户
提问于 2012-06-30 11:13:57
回答 2查看 228关注 0票数 0

我有主窗体。我使用form2.ShowDialog(Application.OpenForms["MainForm"]);从主窗体调用form2,然后从form2调用另一个窗体

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    this.Hide();
    form3.ShowDialog(Application.OpenForms["MainForm"]);
    this.Dispose();

一切正常,但当form3显示时,我可以看到任何在后台显示的窗口,例如:如果我打开了MS paint,将它放在后台,Paint窗口将在我的窗口顶部出现不到一秒的时间,并自动转到后台。为什么这个behavior.How我可以纠正它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-30 12:41:33

当您调用this.Hide()时,Form2将被隐藏,并且另一个窗口需要获得焦点。但是,您使用ShowDialog打开了Form2,这意味着Form2是唯一可以在应用程序中获得焦点的窗口。但是因为你隐藏了Form2,Windows会找到另一个窗口来聚焦(在这个例子中是MS Paint)。

一个解决方案的建议是在隐藏Form2之前人为地让MainForm获得焦点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Application.OpenForms["MainForm"].Activate();
this.Hide();
form3.ShowDialog(Application.OpenForms["MainForm"]);
this.Dispose();

也许更好的解决方案是首先打开Form3,等待它显示,然后隐藏Form2。为此,当您想要显示Form3时,将此代码放在Form2中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
form3.Shown += (_s, _e) => Application.OpenForms["Form2"].Hide();
form3.ShowDialog(Application.OpenForms["MainForm"]);
this.Dispose();
票数 1
EN

Stack Overflow用户

发布于 2012-06-30 13:02:10

在显示对话框之前,你隐藏了你的主窗口,所以你会在瞬间看到另一个窗口,不管哪个窗口在后面。你正在做的事情也是非常危险的,你的程序失去焦点的可能性非常高。无论是在显示对话框之前还是之后,您的程序都不会有一个可以接收焦点的窗口。因此,Windows窗口管理器被迫寻找另一个窗口来给予焦点,它将选择另一个应用程序的窗口。强迫你的背景,使它完全消失,如果该窗口足够大。

你需要采取反制措施。可以通过延迟Hide()调用来隐藏主窗口,表单的BeginInvoke()方法非常方便。您需要确保在对话框关闭之前,您的主窗口再次可见。对话框的FormClosing事件对此很方便。如果对话框已经连接了事件而不是重写OnFormClosing(),尽管不是100%可靠。

因此:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    private void DisplayDialog_Click(object sender, EventArgs e) {
        using (var dlg = new Form2()) {
            this.BeginInvoke(new Action(() => this.Hide()));
            dlg.FormClosing += dlg_FormClosing;
            dlg.StartPosition = FormStartPosition.Manual;
            dlg.Location = this.Location;
            if (dlg.ShowDialog() == DialogResult.OK) {
                // etc..
            }
            dlg.FormClosing -= dlg_FormClosing;
        }
    }

    void dlg_FormClosing(object sender, FormClosingEventArgs e) {
        if (!e.Cancel) this.Show();
    }

或者只是不要隐藏你的主窗口。它不是很有用,对话框已经够烦人的了,是模式化的,并且防止任何复制/粘贴。阻止用户完全看到窗口只会隐藏可能对用户有用的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11273621

复制
相关文章
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
" 模块窗口 " 内容如下 , 在模块窗口中 , 显示的都是 可执行文件 和 加载的 dll 动态库 ;
韩曙亮
2023/03/29
3.5K0
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
canvas实现拖动页面时显示窗口视频
简介   当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽。   今晚心血来潮,起了动手试试的念头。我的想法很简单,用canvas来获取视频每一帧的数据,并用动画函数 requestAnimationFrame函数(这里没有考虑兼容性)来显示每一帧的视频数据。另外,对canvas绑定拖动的 功能,这样就基本实现了简易的窗口视频。   本章内容的重点就是requestAnimationFrame函数和ca
欲休
2018/03/15
1.5K0
canvas实现拖动页面时显示窗口视频
pycharm结果显示窗口_pycharm怎么显示图片
在电脑中重新安装Anaconda3&PyCharm后,运行原来的程序画图时出现了下图界面。
全栈程序员站长
2022/09/25
5.9K0
pycharm结果显示窗口_pycharm怎么显示图片
opencv窗口的创建/显示/销毁
说明:我们设置一个键盘上的q键,当窗口显示后,我们按下键盘上的q键则可以销毁显示的窗口。
淼学派对
2023/10/14
4320
winform渐变窗口显示/关闭
//渐渐的消失 for (int iNum = 10; iNum >= 0; iNum --) { //变更窗体的不透明度 this.Opacity = 0.1 * iNum; //暂停 System.Threading.Thread.Sleep(100); } //渐渐的显示 for (int iNum = 0; iNum <= 10; iNum ++) { /
跟着阿笨一起玩NET
2018/09/18
4.5K0
pycharm plot不显示_pycharm用plot窗口显示图片
最近用了pycharm,感觉还不错,就是pandas中Series、DataFrame的plot()方法不显示图片就给我结束了,但是我在ipython里就能画图
全栈程序员站长
2022/09/25
1.6K0
pygame系列_游戏窗口显示策略
上面给出了一个简单的例子,当然在pygame的官方文档中有对显示策略的更权威的说明:
Hongten
2018/09/13
1.2K0
pygame系列_游戏窗口显示策略
IDEA设置窗口标签换行显示
windows -> editor tabs -> tabs placement 关掉 show tabs in sigle row即可
Happyjava
2020/10/16
4K0
IDEA设置窗口标签换行显示
VFP表单显示网络上的图片
很多狐友都不知道VFP,如何显示网络上的图片,今天加菲猫就写一点小代码,轻巧完成这个功能。
加菲猫的VFP
2021/08/16
1.9K0
Android开发中的全屏背景显示方案
引子     不管是Android还是iOS平台中,都可以看到一些应用在启动的时候会先出现一个启动画面(Splash Activity),如QQ、微信等。这个启动画面中往往会将ActionBar和Status Bar隐藏掉,然后用户进入一种沉浸的状态,形成更强烈的视觉冲击。一方面,这可以给用户留下更深刻的使用体验,从而产生一定品牌效应;另一方面,也给应用的启动初始化留下了充裕的时间,避免因为启动时间过长而给用户留下不良的印象。因此,全屏显示在手机应用中得到了广泛的应用。那么这篇博客中就记录下全屏显示的一些实
24K纯开源
2018/01/18
2.7K0
在窗口显示摄像头的帧
# coding=gbk import cv2 clicked=False def onMouse(event,x,y,flags,param): global clicked if event ==cv2.EVENT_LBUTTONUP: clicked = True cp=cv2.VideoCapture(0)#cp为cameraCapture缩写  # VideoCapture是opencv内置函数,参数为零代表第一个摄像头,一般也就是笔记本内置摄像头  cv2.namedWindow('mywindow') cv2.setMouseCallback('mywidow',onMouse) print ('Showing camera feed. Click window or press any key to stop.')               success, frame = cp.read()//不懂点击
用户2965768
2018/08/30
6700
css显示全屏背景图片
css设置全屏背景图片             *{                 margin: 0;                 padding: 0;             }             html,body{                 width: 100%;                 height: 100%;             }             body{                 background-image: ur
bye
2020/10/29
2.7K0
Python运行不显示DOS窗口方法
方法1:pythonw xxx.py 方法2:将.py改成.pyw (这个其实就是使用脚本解析程序pythonw.exe)
py3study
2020/01/08
2K0
Flex Air 主窗口和多个子窗口从属显示
项目组的程序需要做一个有主窗口和几个小的子窗口(一些控制板), 需求是:点击主窗口的时候,小的子窗口能保持在主窗口前边。 然后切换到其他软件的窗口的时候,主窗口和子窗口能跟着一起退到后边。 烦啊~~3天时间,已经试了N多方法。 1、重载NativeWindow,加入组件的方式。发现很多控件加不进去~~失败 2、一直处理orderToFrontOf(Main),但子窗口会一直闪烁。失败 3、用alwaysInFront,切换到其他软件的时候,把alwaysInFront设置为false。几乎成功了,但还是很多
用户1258909
2018/07/03
1.3K0
解决Mac无法成功安装pygame,无法更改窗口背景颜色,不显示飞船图像的问题
在学习《python编程 从入门到实践》这本书的过程中,按照书上的操作步骤,当我们在终端中使用pip3 install --user hg+http://bitbucket.org/pygame/pygame 命令无法安装pygame,或者通过pip3 install pygame 命令成功安装后,在编写《外星人入侵》代码中调用 import pygame 模块运行程序,会发现python应用图标一直在程序坞中跳动或者不动(如果系统偏好设置里没有开启打开程序时跳动则不动),虽然此时可以通过卸载python(很大一部分原因是因为你的python是官网下载安装的), 然后通过homebrew的方法将python跟pygame必须完全用终端安装的方法解决(命令书上有,但是你将可能遇到下面的问题)。
alithefox
2020/03/27
4.2K0
javascript表单提交的内容显示在表格中
实现三个文本域的内容提交之后显示在表格中,代码直接用文本文件运行,记得后缀改为.html 运行结果
别团等shy哥发育
2023/02/27
7.5K0
javascript表单提交的内容显示在表格中
如何是HTML页面中的表单居中显示[通俗易懂]
在进行前端页面设置的时候,发现写完的form表单始终无法居中显示,详细如图1所示:
全栈程序员站长
2022/09/20
7.8K0
如何是HTML页面中的表单居中显示[通俗易懂]
WPF 获取全局所有窗口的创建显示事件 监控窗口打开
本文将告诉大家如何在 WPF 里面进行全局监控任意的窗口创建显示打开,可以获取到每个 WPF 窗口的打开的时机。如此可以用来辅助定位问题和输出日志
林德熙
2023/04/07
2.1K0
点击加载更多

相似问题

打开Bootstrap弹出窗口时显示背景

12

显示弹出窗口时禁用背景链接

22

显示弹出窗口时更改背景色

43

在显示弹出窗口时防止背景滚动

55

Resharper窗口只显示背景

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文