C# 解决调用winform窗体顶置且解决任务栏图片显示问题

窗体顶置两种方法:

方法1:

/// <summary>

/// 设置当前活动的窗口

/// </summary>

[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);

/// <summary>

/// 得到当前活动的窗口

/// </summary>

[DllImport("user32.dll", CharSet = CharSet.Auto)]

private static extern System.IntPtr GetForegroundWindow();

private void MainFrm_Load(object sender, EventArgs e)

{

SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 1 | 2);

}

方法2:

private void testBtn_Click(object sender, EventArgs e)

{

Form2 frm = new Form2();

frm.Show();

SetWindowPos(GetForegroundWindow(), -1, 0, 0, 0, 0, 1 | 2);

}


解决任务栏图片显示有时失效方法:

private void testBtn_Click(object sender, EventArgs e)

{

this.Close();

Form2 frm = new Form2();

frmShowInTaskbar = false;

frm.Show();

frm.ShowInTaskbar = true;

}

时间: 2024-10-05 06:58:37

C# 解决调用winform窗体顶置且解决任务栏图片显示问题的相关文章

C# WeifenLuo.WinFormsUI.Docking.dll 应用之问题集 反射动态调用winform窗体

反射通过命名空间.窗体名称,调用窗体 public void OpenChildForm(string formName) { Type t = Type.GetType(formName); Assembly asm = Assembly.GetExecutingAssembly(); DockContent frm = asm.CreateInstance(formName) as DockContent; if (frm != null) { frm.Show(this.dockPanel

解决基于JQ焦点图快速点击切换按钮图片显示错误的问题

之前用原生js做过焦点图,今天突然想用JQ做一下,但是遇到一个问题,当我不停点击切换按钮时,由于不停触发animate动画,导致图片显示错乱的问题,解决办法第一想到的就是点击切换后立刻解绑事件,然后动画函数运行完再添加事件,但是 ....用 $('.box').unbind('click'); 解绑后,再把原有事件添加回来却没有办法添加回来 $("button").bind("click",function(){ //函数体 }); 这样?可是函数体里没法写 ,可能

powershell 调用winform dll

//1.加载dll,调用winform窗体,使用指定构造函数 param{ $filePath="" } [void][reflection.assembly]::LoadFile($filePath) $a=New-Object namespace.classctor(args) $a.DoSth()

小数运算需要注意什么? 接口和抽象类 WinForm窗体上两个panel,怎么实现一个panel固定漂浮在另一个panel之上

小数运算需要注意什么? 1. 生活中0.1+0.2=0.3, 计算机中可不是这样,为什么呢? 大家都知道计算机类型都是有数据范围的.整形int范围是 正负21亿左右,小数类型同样也是有范围的,但是即使0.1~0.2之前如果问你有多少小数? 无穷个!!! 那么有限的范围怎么表示无限的数据呢? 告诉你表示不了,只能存储一个无限接近的数. 另外大家都知道计算机所有数据都是二进制,0.5即 2的-1次方,0.25是2的-2次方,同样解释了为什么不能表达所有小数. 这样大家也就明白下面这个例子 100个0

winform窗体继承泛型类时,设计器无法使用解决办法

当我们使用winform程序时,winform窗体程序和控件程序都是可以通过设计器进行控件拖拽的,但如果我们继承了一个带有泛型的form基类.那么设计器是无法使用的. 目前我没有找到根本解决的办法,但可以间接解决无法调试的问题. 下面具体说明如何实现 比如我们有FormA,BaseForm<Entity>, FormA : BaseForm<XXX> 这样直接继承是无法使用设计器的. 需要增加一个临时的form类,比如TempForm. 由TempForm先继承BaseForm, 

c# winform窗体闪烁解决方法

在主窗体中任意位置加上下面的代码即可 protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } c# winform窗体闪烁解决方法

WinForm 窗体属性

WinForm - C/S 客户端     B/S 网页端 客户端应用程序 - 是需要安装在用户电脑上才可以使用的程序特点:不需要联网也可以打开使用部分功能但是现在的情况是许多功能依然需要互联网的支持 运行结构:代码部分在用户电脑上执行 使用window窗体应用程序 常见窗口类型:1.记事本    2.计算器    3.杀毒软件.QQ这种漂亮的窗体    4.不规则窗体 窗口布局: (1)AutoScroll:当控件内容超出可见区域时,自动显示滚动条 (2)AutoScrollMargin (1

Matlab.NET混合编程调用Figure窗体

原文:[原创]Matlab.NET混合编程调用Figure窗体 1.前言 做Matlab.NET混合编程好几年了,虽然Matlab很多函数忘记得差不多了,但基本的东西还是能熟练使用.特别是在C#调用Matlab函数这方面,积累了比较多的经验,和使用经验密切相关.根据很多朋友经常遇到的WinForm窗体混编调用Matlab的Figure的问题,花了一些功夫,把这个封装为C#控件,使得大家可以很容易调用Matlab的Figure了. 2.Matlab.NET混合编程概述 这方面就不仔细阐述了,主要是

c#中跨线程调用windows窗体控件

c#中跨线程调用windows窗体控件解决. 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread thre