`
king_tt
  • 浏览: 2113612 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

.net WinForm 新窗体后台打开完美的解决

 
阅读更多

最近在做浏览器开发时,想要实现 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);
                }
            }
        }


分享到:
评论

相关推荐

    VB.NET Winform窗口后台运行+防多开+开机后台自动启动示例-BgProcessTemplate.rar

    VB.NET Winform窗口后台运行+防多开+开机后台自动启动示例 可用于制作一个开启自动启动的后台运行程序,并且自带窗口可唤出显示

    个人练习工具——鼠标连点器(c#编写)

    闲的没事,使用c#+.Net(Winform窗体)编写的鼠标连点器。 工具描述: 鼠标自动点击工具,可自行设置鼠标点击速度、鼠标点击位置、支持热键快捷键(开启\结束)连点器、支持自己编辑热键快捷键。

    autocad .net开发注意事项

     1、如果要在Winform中打开DWG图形文件,这个Form必须用Application.ShowModelessDialog方式显示,不然会报错(执行环境无效)。  2、在非模态窗口中修改实体时,需要将图层锁定,否则会报错;模态窗口则无此情况...

    C#WinForm学生管理系统后台ADO.NET访问SQL2005

    这个小型的系统,是课本上常用的功能,数据库中有四个表组成,分别是学生表,课程表,选课表,...所以代码量比较大,不过很值得入门,这个就是我用C#写的第一个访问数据库的窗体程序。大家多多下载,希望对大家有用!

    asp.net知识库

    完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算...

    C# WinForm 酒店管理系统项目源码

    C#酒店管理系统源码 Visual Studio+Access数据库 你可以改成其他数据库,很好改。 基本的数据库增删改查操作。 包括用户管理,房客管理,客房管理,出入管理等。

    c# Winform 弹出式等待窗口,多线程

    网上有好多使用多线程弹出式等待窗口作为程序中较长时间后台运行提示的,但是做的都不完善,尤其是用 waitThread.Abort() 杀死线程时容易产生异常,进而出错。本程序是比较完善的改进,利用...程序运行环境 vs.net 2010

    WinForm进度条的2种异步实现方式

    BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要用户长时间等待的情况可以使用这个类。 注意确保在 DoWork 事件处理程序中不操作任何用户界面对象。而应该过 ProgressChanged 和 ...

    基于Furion/.NET 6实现的通用管理平台

    基于Furion/.NET 6实现的通用管理平台。整合最新技术,模块插件式开发,前后端分离,开箱即用。集成SqlSugar、多租户、缓存、数据校验、鉴权、事件总线、动态API、通讯、远程请求、任务调度、gRPC等众多黑科技。代码...

    Winform弹出式等待窗口源码v1.0

    一、源码特点 采用Winform进行开发,弹出式等待窗口,欢迎下载 二、功能介绍 本源码是一个Winform弹出式等待窗口源码,网上有好多使用多线程弹出式等待窗口作为程序中较长时间后台运行提示的,但是做的都不完善,...

    亮剑.NET深入体验与实战精要2

    5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 ...

    C# winform的一个分页控件

    winform 的一个前台 分页控件,项目用了devExpress控件组。 你也可以不用,用普通的按钮,输入框代替,后台代码都是基本一样。 用法,工具箱,选择项,浏览,选 xpager.dll就有了。 有个 OnPageChanged 事件,里面写...

    亮剑.NET深入体验与实战精要3

    5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 ...

    C# winform典型系统开发模板

     9.2.5 使用ADO.NET连接Access数据库 206  9.3 设计过程 207  9.3.1 数据库设计 207  9.3.2 群发短信实现 209  9.3.3 已发送短信管理 213  9.3.4 接收短信实现 215  9.3.5 常用联系人管理...

    C#对Layer弹出层的封装的MessageBox类

    此文件为C#的类文件,在Aps.net网页中使用,使用前引入layer的js文件,可以直接通过MessageBox.Show(this,"弹出窗体的内容");向页面输出弹出层代码。可实现和窗体程序弹窗MessageBox类似效果,使用非常方便,快捷。

    JavaSpring Boot框架开发的报名系统.zip

    在实现以上前端设计以后,开始后台设计,后台主要以WinForm窗体的形式来展现给用户,它的对象,主要是各个院校,机构的招生部门,权限是管理员。用户下载这个客户端,并且有自己的管理员账号,登录成功后,可在主...

    c# 调用百度地图API 代码示例

    将百度地图嵌入c# cs窗体中,cs后台控制百度地图: 1)用WebBrower控件加载本地的一个html文件,在html中实现加载百度地图 2)动态添加覆盖物 3)动态添加标签 4)动态添加点击小气球提示 5)经纬度提取详细地址 查...

    C#实训教程

    10.1 后台内存管理 190 10.2 值数据类型 190 10.3 引用数据类型 192 10.4 垃圾收集 194 10.5 释放未托管的资源 195 10.6 析构函数 195 10.7 IDisposable接口 196 10.8 实现IDisposable接口和析构函数 198 ...

    C#向无窗口的进程发送消息

    注:本文适用.net2.0+的winform程序 一个winform程序,我希望它不能多开,那么在用户启动第二个实例的时候,作为第二个实例来说,大概可以有这么几种做法: 1.弹个窗告知用户【程序已运行】之类,用户点击弹窗后,...

Global site tag (gtag.js) - Google Analytics