WinForms 新窗体后台打开完美的解决

最近在做浏览器开发时,想要实现 IE 6那种多窗体,又允许后台打开而不抢占视野的方式。

WinForms 应用程序中想要后台打开一个新的窗体,而不(抢焦)、(遮挡)目前窗体。

需要注意的是,SW_SHOWNOACTIVATE打开的“不抢焦”窗体,是不会执行 Shown 和 Load。一定要注意!放置首页,如文章质量不够,有劳编辑移除:)

最简单的方法如下:

   public class TestForm : Form        {

            const int SW_SHOWNOACTIVATE = 4;            [System.Runtime.InteropServices.DllImport("user32.dll")]            static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

            protected override void OnCreateControl()            {                base.OnCreateControl();                // 在这里,可以增加其他标识来标识                if(this.Tag != null)                {                    (this.Tag as Form).TopMost = false;                    this.Tag = null;                }

            }

            private void NewWindow(bool focused)            {                var f = new TestForm();

                if(focused) f.Show();                else                {                    this.TopMost = true;                    f.Tag = this;                    ShowWindow(f.Handle, SW_SHOWNOACTIVATE);                }            }        }

时间: 2024-11-09 00:33:22

WinForms 新窗体后台打开完美的解决的相关文章

markdown===在新窗口中打开网址的解决办法,以及其他遗留问题!

[超链接文字](url){:target="_blank"} 遗留问题: 如何设置图片的尺寸 我的复选框一直不生效,why? 公式 $$ 公式 $$ 不生效 如何设置代码块的背景颜色 等等~~ 睡觉,明晚解决! 原文地址:https://www.cnblogs.com/botoo/p/8424694.html

_blank开新窗体不符合标准?

我们要在新窗体中打开链接通常的做法是在链接后面加target="_blank",我们採用过渡型的DOCTYPE(xh tml1-transitional. dtd)时没有问题,可是当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这种方法 将通只是W3C的校验,会出现例如以下错误提示: "there is no attribute targetfor this element(in this HTML version)" 原来在HTML4.01

CefSharp禁止弹出新窗体,在同一窗口打开链接,或者在新Tab页打开链接,并且支持带type="POST" target="_blank"的链接

说明:在同一窗口打开链接,只要稍加改造就可以实现,这里实现的是在新Tab页打开链接,并且支持带type="POST" target="_blank"的链接 github和bitbucket上相关问题: 1.WPF empty POST data when using custom popup    https://github.com/cefsharp/CefSharp/issues/1267 2.CefLifeSpanHandler, customized OnB

wordpress后台打开慢/卡顿的解决方法

---------------------2014年12月29日更新--------------------- 我已经用下面提到的第三种方法禁用了谷歌字体了,最近wordpress后台还是莫名奇妙地非常慢,卡顿感让我十分不爽,本着处女座追求完美的毛病,继续寻找原因. 这回是浏览器左下角一直显示“正在等待0.gravatar.com”,看样子问题还是出在gravatar头像上了,貌似是gravatar的服务被可恶的GFW给墙了!可是在wordpress上似乎没有办法完全删除gravatar相关的代

ajax回调打开新窗体防止浏览器拦截

function click_fun(){ window.open("www.baidu.com");//能打开 $.ajax({ 'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 'type': 'post', 'dataType': 'json', 'data': data, success: function (data) { window.open("www.baidu.com&q

Response.Redirect 打开新窗体的两种方法

普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗体打开所指定的  URL 地址的.可是,假设细致分析一下,假设设置 form 元素的 target 属性,还是有办法打开新窗体的.以下就是能够採用的两种方法. 方法一:在server端设置 targ

对话框控件 MessageBox.Show()用法补充 打开新窗体的3中模式

(一)对话框控件 1.fontcolor 字体设置 属性:showcolor 可以调节字体颜色 showApply 控制显示应用按钮 例:设置一个文本框,点击按钮,文本框中的颜色字体发生改变 DialogResult dr = fontDialog1.ShowDialog(); if (dr == DialogResult.OK) { //设置文本框中的字体属性 richTextBox1.Font = fontDialog1.Font; //设置文本框中字体的颜色 richTextBox1.Fo

解决sublime text 2总是在新窗口中打开文件

在mac下不是很喜欢sublime text 2 总是在新窗口中打开文件,很麻烦,文件打多了,就会出现N多窗口,虽然可以直接打开当前目录可以解决,但有时候查看其它项目中的单个文件,就比较麻烦.百度一直在搜索,无果. 今天去官方论坛看了一下,发现了一个设置: ”open_files_in_new_window”: true,将其设置成false就OK了,会在当前窗口中打开文件 具体设置:Preferences -> Settings – Users  ->  搜索open_files_in_ne

android安卓开发基础小笔记,添加按钮事件,打开新窗体,窗体传值,回传

给一个按钮添加onclick事件 //获取按钮对象 Button Aiyo = (Button)findViewById(R.id.button1); Aiyo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {//tv.setText("woceshi"); //弹出提示 Toast.makeText(getApplicationContext(), '你好', Toas