C#窗体任务栏图标关于notifyIcon问题,看说明
为了实现双击任务栏图标让主窗体显示出来,我在双击任务栏图标中写了如下代码:this.ShowInTaskbar=true;this.WindowState=FormWin...
为了实现双击任务栏图标让主窗体显示出来,我在双击任务栏图标中写了如下代码:
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
但是有一个问题,(不关闭C#应用程序的前提下),当我进行别的操作后,(如,双击下我的电脑或者打开IE浏览器),当我再次双击任务栏图标时,此应用程序能够显示出来,但是在它IE浏览器的后面,我根本看不到它,只有让IE最小化了才能看到.我想实现的功能就是,当我双击任务栏图标时,它能够显示在一切应用程序的最上一层.如果我加上一条: this.TopMost = true;它会总是显示在最上一层了,我再打开一个IE,它会把IE遮住了,也不行,怎么解决? 展开
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
但是有一个问题,(不关闭C#应用程序的前提下),当我进行别的操作后,(如,双击下我的电脑或者打开IE浏览器),当我再次双击任务栏图标时,此应用程序能够显示出来,但是在它IE浏览器的后面,我根本看不到它,只有让IE最小化了才能看到.我想实现的功能就是,当我双击任务栏图标时,它能够显示在一切应用程序的最上一层.如果我加上一条: this.TopMost = true;它会总是显示在最上一层了,我再打开一个IE,它会把IE遮住了,也不行,怎么解决? 展开
3个回答
展开全部
if (this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
this.Focus();
}
{
this.WindowState = FormWindowState.Normal;
this.Focus();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个需要调用本地API 使他弹出来 而不是让他一直置顶
//在类中调用Windows API
//设置此窗体句柄的窗体为活动窗体
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow(); //获得当前活动窗体的句柄
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
//调用
IntPtr handle=Handle;
if (handle!= GetForegroundWindow()) //获取当前活动窗体
SetForegroundWindow(handle); //如果不是,强制把自己的设置为活动窗体
调用可以在Timer中运行,把Timer设置一个间隔值,随便
Timer一段时间就会去检查一遍.....如果自己没有被顶置,那么把自己顶置
//在类中调用Windows API
//设置此窗体句柄的窗体为活动窗体
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow(); //获得当前活动窗体的句柄
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
//调用
IntPtr handle=Handle;
if (handle!= GetForegroundWindow()) //获取当前活动窗体
SetForegroundWindow(handle); //如果不是,强制把自己的设置为活动窗体
调用可以在Timer中运行,把Timer设置一个间隔值,随便
Timer一段时间就会去检查一遍.....如果自己没有被顶置,那么把自己顶置
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询