说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何在后台弹出窗体(窗口置顶)?

HTML文档下载 WORD文档下载 PDF文档下载
好像设置topmost没有效果
比如后台程序(msn)之类的,探出消息框
从后台弹出窗体是什么意思。

Topmost 
或者 ShowDialog()方法来显示窗体。

消息框就是 MessageBox.Show()的各种重载。
 MessageBox.Show()
up
你问题描述清楚啊
一个测试程序
Program.cs
创建TestForm窗体

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace TestTopMost
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new TestForm());
        }
    }
}
TestForm.cs
每1秒产生一个TestMessage窗口

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace TestTopMost
{
    public partial class TestForm : Form
    {
        private System.Timers.Timer m_timer = new System.Timers.Timer(1000);

        private static bool m_bThreadRunning = false;
        private static object privateObjectLock = new object();

        static bool GetThreadRunning()
        {
            bool bReturn = false;
            lock (privateObjectLock)
            {
                bReturn = m_bThreadRunning;
            }
            return bReturn;
        }

        static void SetThreadRunning(bool run)
        {
            lock (privateObjectLock)
            {
                m_bThreadRunning = run;
            }
        }

        public TestForm()
        {
            InitializeComponent();
            m_timer.Elapsed += new System.Timers.ElapsedEventHandler(TimerHandler);

            m_timer.AutoReset = true;
            m_timer.Enabled = true;
        }

        public void TimerHandler(object source, System.Timers.ElapsedEventArgs e)
        {
            Thread thread = new Thread(ThreadFunc);
            thread.Start();
        }

        public static void ThreadFunc()
        {
            if (GetThreadRunning() == false)
            {
                SetThreadRunning(true);

                TestMessage msg = new TestMessage();
                msg.ShowDialog();

                SetThreadRunning(false);
            }
        }
    }
}
TestMessage.cs
弹出1秒钟之后销毁自己

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TestTopMost
{
    public partial class TestMessage : Form
    {
        private System.Timers.Timer m_timer = null;

        public TestMessage()
        {
            InitializeComponent();

            m_timer = new System.Timers.Timer(1000);
            m_timer.Elapsed += new System.Timers.ElapsedEventHandler(TimerHandler);
            m_timer.AutoReset = false;
            m_timer.Enabled = true;

            TopMost = true;
        }
        public void TimerHandler(object source, System.Timers.ElapsedEventArgs e)
        {
            Close();
        }
    }
}
这个测试代码无法在当前窗口为其他程序的时候,弹出TestMessage窗体并置顶
后来在form load的时候调用api setforegroundwindow + setwindowpos,可以了

        private System.Timers.Timer m_timer = null;
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern System.IntPtr GetForegroundWindow();
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern bool SetForegroundWindow(IntPtr hWnd);


this.Load += delegate 
            {
                if (Handle != GetForegroundWindow())
                    SetForegroundWindow(Handle);
                SetWindowPos(Handle, -1, 0, 0, 0, 0, 1 | 2);
            };
Form frm=new Form1();
frm.TopMost=True;
frm.Show();
winForm里这样:

Form frm=new Form1(); 
frm.TopMost=True; 
frm.Show();

webForm里这样:

            System.Text.StringBuilder sb = new StringBuilder();
            sb.Append("<script>");
            sb.Append("window.open('BBSTieSearch.aspx"','','fullscreen =0,scrollbars=0,toolbar=0,resizable=1,top=100px,left=100px,width=800px,height=500px')");
            sb.Append("</script>");
            Page.ClientScript.RegisterStartupScript(typeof(string), "k1", sb.ToString());
引用 9 楼 bartoooon 的回复:
后来在form load的时候调用api setforegroundwindow + setwindowpos,可以了 

C# code
        private System.Timers.Timer m_timer = null;
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        priv…


厉害!~~
谷歌代码托管平台Google Code将正式关闭 提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 约见越狱大神!2015 MSS移动安全峰会议程披露 Spark 1.3更新概述:176个贡献者,1000+ patches 从游戏设计到星际探险,微软HoloLens全息技术将改变什么? 触摸屏技术未来?详解Apple新手段Force Touch 专访云适配CEO陈本峰:紧跟HTML5热潮,Web组件化知多少? QQ音乐5.0全新设计过程要点解析 GDC 2015感悟:从0到1,VR投入手游开发路漫漫 TestBird发布手游真人众测平台——附中国手游兼容性测试白皮书 与用户的再一次连接,微软的免费升级计划背后 颠覆App!LayaBox用Flash开发重度HTML5游戏 WinHEC:微软小娜与小冰正式登陆Windows 10平台 Coursera工程师董飞:典型硅谷公司大数据实战分析 微软开源Visual Studio构建工具MSBuild 死而复生!下架6月,Launcher重回App Store 虚拟投影、高保真耳机!新型可穿戴家庭影院Dashbon Mask 【程序员电子刊精选】躺枪的互联网思维 Algolia的分布式搜索网络架构 对抗苹果?豪雅联合Google、Intel开发智能奢表 VR产品技术解析之三星Gear VR 雅虎北研即将关闭 人才抢夺战迅速拉响 移动应用中的AR开发,5款最受欢迎工具推荐! 中国黑客Pwn2Own再创佳绩 Keen Team三年五夺魁 星环CTO孙元浩:技术解析Transwarp Inceptor是怎样炼成的 第七届中国云计算大会将于6月3-5日在北京召开 软件发布:五子棋大战 光驱的问题 软件发布:扑克(版本:36.0,玩法的数量和版本号一样) 软件发布:鸿森万能证件打印系统 软件发布:密码盗窃器(超小版:30k) 软件发布:寝室多人共享上网计时计费器 软件发布:美萍安全卫士密码破解器 软件发布:整人蛀虫 SQL SERVER存储过程的问题!!!! 软件发布:词痴 软件发布:自动关机 软件发布:南易彩票选号系统 pfc基类庫是纯英字,谁有中文的。 软件发布:精灵英文输入法(写代码助手) 软件发布:QQSpy密码探测器98版 for 0425 高手请,为何在不同地方打开对话框会有不同的结果呢? 软件发布:《商务导航》 软件发布:amp player 豪华版 如何关闭XCOPY打开的窗口,详细一点 请援手:pfc程序如何再升级?(关于版本更新) 谁是高手,一个事务处理问题。 大家来聊聊:JBUILDER5比JUILDER4在那方面改进了!? 我们这个破烂小公司成天TMD瞎折腾! 根据用户名和密码登陆的问题! 大家来说一下,中程和高程证书在找工作时作用怎样 Dialog上放了一个group box,请问如何动态改变group box框框中的整个颜色?急呀! 用程序向表中插数据的问题? 怎样制作一个类似日历的控件?快快快! 做个调查:在上海delphi的前景如何?现在工资怎么样? 如何给graph控件的values赋值. c++Builder的悲哀历程,求助帮忙,各位大虾多指点 建议封杀e_lion,影响看贴情绪!杀无赦!!! 请教高手:我用vc6.0向导生成了一个Utility Project,不想用MFC AppWizard(exe)生成的基本类,可我无法编译我写的cpp(带winMain函数)文件,为何? 无任何理由,第一个进来者300分。当场结帐。 各位,是如何调试自己编写的servlet的,我使用jswdk每次,修改servlet后都要重启一次服务器,有没有什么好法子。 不看不知道。 在写servlet时,如果要输出一段文字的问题。 “瑞星2001病毒实时间控装载失败”? 既然看到了,不妨进来“坐坐”! (关于串口) 看看我的计划《程序员生活》, 数据库小问题 有谁用过Delphi6带的InstallShield Express - Borland Limited 请赐教:我只想建一个空工程,里面什么类也没有,只望往加我写的类(带winMain 函数),编译成exe文件,用vc6.0,怎么做呀 硬盘喀-啦,喀-啦连续的响是何原因 你们好,能告诉多表更新的时候UPDATE(true,false)中的true,false是什么意思吗? (菜菜鸟级问题)怎么给别人分数?自己的分数又是怎样积累的? 算法问题求解 怎样去看继承下来的方法的代码? 原来大把花钱的感觉真是爽!还是没有任何理由,第7个进来者300分! 我买了一张D片winnt4.0.6, 不知怎么安装。我用winnt /ox作了三张启动盘,但到最后要求我插入光盘,可是回车后最反映,能不能不用启动盘,首先说明这张D版盘可用。请大家快帮帮我@_@ 如何把我的照片拿下来? 一班植树占三个班总棵树的1/5,二班植树是三个班植树棵树的3/5,二班比一班多植树20棵,这三个班一共植树多少棵? 鸡兔同笼,有23个头,56条腿,鸡兔各几只【用方程做】 鸡兔共40只,兔子比鸡多16条腿,问鸡兔各多少只有x的方程 希望小学二、三年级共植树114棵,其中三年级的植树棵数是二年级的2倍,问二、三年级各植树多棵? 鸡兔同笼,共有21个头,56条腿.鸡、兔各有多少只?(方程解) 一只鸡有2条腿,兔子有4条腿,现在又鸡兔若干只,他们共有240条腿,鸡是兔子的2呗,求鸡兔各有多少只?第一个回答的给悬殊按 奥数题(鸡兔同笼)蜘蛛有8条腿,蝴蝶有6条腿和2对翅膀,禅有6条腿和1对翅膀.现在这三种小虫共21只共140条腿和23对翅膀.蜘蛛,蝴蝶,禅各几只? 鸡兔同笼20只,鸡和兔的腿共56条,鸡有()只,兔有()只 鸡兔同笼,共有30个头和84条腿,求鸡和兔各几只? 鸡兔同笼奥数题有2分、5分、1角的硬币20枚,共计1.20元,其中5分有几枚,1角有几枚? 鸡兔同笼共9只,腿26条,则鸡..只.兔..只.怎样求出的..本人只学过一元一次方程,请用 一元一次方程解答.. 鸡兔同笼,有25个头,有70条腿, 请问有几只兔子几只鸡?急用! 奥数题(鸡兔同笼)某农民养鸡兔若干只,已知鸡比兔多13只,鸡的脚比兔的脚多16只,鸡兔各多少只?(横式计算) 鸡兔同笼,腿200只,鸡的腿书比兔少56只,鸡兔各多少只? 鸡兔同笼,共有35个头,94条腿.求鸡和兔子各有多少只. T1.在括号里面分别填上两个相邻的自然数,使下式成立!( )<(一百零一分之一+一百零二分之一+一百零三分之一+.+一百五十分之一)*3<( )T2.自然数A和B的最小公倍数是140,最大公约数是5, 鸡兔同笼共九只,腿26条,则鸡和兔各有几只? 1.鸡兔同笼,共有8个头,20条腿,笼里有几只鸡?几只兔?(用方程和列举法.) 甲乙两个箱子所装水果的质量比是5:4,现在如果把甲水果的25%放进乙,再从乙拿出30千克,这时两个箱子的重量相等.求甲乙两箱原来各有多少千克水果? 鸡兔同笼 21个头 56条腿 鸡兔各几只? 鸡兔同笼,共有10个头,32条腿,鸡,兔各有几只?列表格 如题,一项工程,甲单独做要36天,乙单独做要45天.如果开工时甲、乙两队合做,甲中途退出转做新的工程,乙队又做了18天才完成任务.问甲队做了多少天? 鸡兔同笼方程解笼子里有若干只鸡和兔,从上面数,有8个头,从下面数,有26只脚.鸡和兔各有几只?所有解的过程都写上写清楚,不能掉 鸡兔同笼,共有32个头,74条腿,鸡有()兔有()只 比例应用题 也要用算术方法解一次 急 1、一辆轿车从甲地开往乙地,每小时行驶72km,4小时到达,如果每小时行驶80km,几小时到达?2、一捆铁丝长212.5m,剪下5m长的一段重200g,这捆铁丝重多少克?3、 鸡兔同笼,鸡比兔多26只,足数共274只,问鸡兔各有几只?方程 鸡兔同笼,共10个头,26条腿,请问有几只鸡?几只兔?急 (用算术法算,不要用方程)谢谢各位配合!1.有一箱灯泡,先拿出168个,又拿出剩下的2/3,这时箱里剩下的灯泡恰好是这箱灯泡总数的1/7,这箱灯泡共有多少个?2.小华看一本书,第一天看了一些,第二 鸡兔同笼,兔比鸡少20只,脚数共262只,鸡兔各有多少只?(方程解答,并说出计算道理) 鸡兔同笼,共有10个头,32条腿,鸡、兔各有多少只?列表法 六年级数学题 要用算术解 不要方程篮球比赛中,3分线以外投中一球得3分,3分线内投中一球得2分.在一次篮球比赛中,球星易建联总共投中9个球,得20分,他投中的3分球和2分球各多少个? 笼子里有相同数量的鸡和兔,一共有48条腿,各有鸡和兔几只?(用方程解) 数学的鸡兔同笼怎么用方程计算?在没有“鸡比兔多……只”、“兔比鸡多……只”的情况下,该怎么用方程计算?例如:有鸡和兔共100只,共有280条腿,鸡有几只?这题就没有上面说的情况,怎么用 [用算术方法解,不能用方程]某商店从外地购进360个玻璃制品,运输时损坏了40个,剩下的按进价的117%售出,商店可盈利百分之几? 鸡兔同笼 共有48条腿 已知兔比鸡多8条腿 鸡兔各有多少只? 鸡兔同笼【用方程计算】现有数量相同的鸡兔同笼,已知兔脚比鸡脚多28只.问:笼子中的鸡和兔子各有多少只?还要等量关系式。 请列示解答或一元一次方程修一条水渠,如果每天多修8米,可以提前4天,若每天少修八米,将推迟八天完成,求水渠的长度. 鸡、兔共有100条腿,若鸡数和兔数互换,则共有86条腿,鸡兔各有多少只?请讲解本题 鸡兔同笼问题方程计算怎么解决看来我要动真格儿的了给你们一个算式,打问号部分是“为什么这样做”如:4x+2(8-x)=262x+16 =26x =5还有,回答要简略 六年级数学题(一元一次方程)0.3分之x-1-0.5分之x+2=1.2 鸡兔同笼,有8个头,20条腿,鸡和兔各有多少只?用算术方法怎么做 鸡兔同笼问题,如果只告诉你脚数差,应该怎么算?(方程) 一元一次方程的应用已知六年级2班共有45人,男生人数于女生人数的比为4:5,求这个班男女生各有多少人? 鸡兔同笼,共有20个头,64条腿,鸡和兔各有多少只? 北师大版六年级上册数学书,28页,三题,解方程, 一道数学题(可用方程、算数法,方程用一元一次方程)求详细解答!六年级同学分成甲 乙两个组劳动,甲 乙两组人数比是7:3 ,后来因为劳动需要,从甲组派了30人到乙组,这样甲乙两组人数比变 鸡兔同笼,有8个头,20条腿,鸡和兔各有多少只?用方程 是北京师范大学出版社的!数学书上册的,242页的12.13.14.15.16题(全用方程没有书的,12.有一块棱长为0.6米的正方体钢坯,想将它锻成横截面是0.008米的立方的长方形钢材,锻成的钢材有多高?13.某公 要解设,并且是一元一次方程一家商店将某种型号的彩电按物价部门准核的原价提高30%,然后标出“大酬宾,八折优惠”,经顾客投诉,执法部门按非法收入的10倍处以每台1000元罚款,则每台彩电原 鸡兔同笼,有20个头,50条腿,鸡有()只,兔有()只,一个平行四边变成()形时面积最大, 鸡兔同笼, 用一元一次方程解,算术也行1、某商店经销一种商品,由于进货价格降低了百分之六点四,使得利润率提高了百分之八,求原来经销此种商品的利润率.2、一项工程,A单独做要四十天,B单独做要三 鸡兔同笼,有20个头,54条腿,鸡与兔各有多少只? 最简单的方程怎么算 小学数学题题目 把下面各比化成前项是100的比.(1)实验小学今年植树的棵数与去年植树棵数的比是4:3.2 (2)一辆小汽车的速度与一架超音速飞机的速度之比是1:15. 要解题思路,最好用算术方法,或者一元一次方程.货车速度与轿车速度的比是3:8,两车分别从A、B两地同时出发,相向而行.八分之三小时相遇,如果两车从A、B两地同时出发同向而行,货车速度在前, 鸡兔同笼共有十八个头54条腿同笼中鸡和兔各有多少只? 一班植树的棵数占三个班的五分之一,二班与三班的比是3:5,二班比三班少植树40棵,这三个班各植树多少棵要方程 鸡兔同笼,有20个头,56条腿,鸡与兔各有多少只? 鸡兔同笼问题方程解 ,鸡和兔共有18只,共有72只脚,设有X只兔,那鸡有多少只打错了是56只脚不好意思
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn