如何让form一直在最低层 大家知道 form 有个 TopMost属性,可以让窗口置于同级窗口最上层!那我想要实现,窗口一直在其他软件的最下层,类似windows桌面一样,开任何程序都可以在它之上,该如何做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不大了解http://topic.csdn.net/t/20020426/16/679185.html 参考一下 this.SendToBack();this.BringToFront(); private void Form2_Paint(object sender, PaintEventArgs e) { this.SendToBack(); } using System.Runtime.InteropServices; 在定义部分引入下面两个函数: [DllImport("user32")] private static extern IntPtr FindWindow(string lpClassName,string lpWindowName); [DllImport("user32")] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 在窗体On_Load事件中添加(Santos的代码): IntPtr hDeskTop=FindWindow("Progman", "Program Manager"); SetParent(this.Handle,hDeskTop); 将form的TopMost设置成false不就可以了吗? using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace WindowsFormsApplication8{ public class WindowUtil { [DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32")] public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); private static IntPtr hDeskTop = IntPtr.Zero; //桌面句柄 /// <summary> /// 将传入窗口句柄的窗体钉在桌面 /// </summary> /// <param name="hWindow"></param> public static void SetLockOnDesk(IntPtr hWindow) { IntPtr hDeskTop = FindWindow("Progman", null); SetParent(hWindow, hDeskTop); } /// <summary> /// 将传入窗口句柄的窗体取消钉在桌面 /// </summary> /// <param name="hWindow"></param> public static void ClearLockOnDesk(IntPtr hWindow) { SetParent(hWindow, IntPtr.Zero); } }}调用方式://钉在桌面,传入窗口句柄private void btnLock_Click(object sender, EventArgs e){ WindowUtil.SetLockOnDesk(this.Handle);}//取消钉在桌面private void btnUnlock_Click(object sender, EventArgs e){ WindowUtil.ClearLockOnDesk(this.Handle);} 问一下 NameValueCollection Dictionary HashTable的适用范围 C#问题。懂得进,在线等。解决后在追加分 如何去掉背景色呢 如何在.net里面将表情转译 图片框怎么加文字呢 急! C#(winform) 中的treeView 为什么无法显示 imagelist中的图片呢? 看看下面代码,运完出错"内存不足"! 水晶报表问题?运行显示“登陆错误” 问题求教:关于如何debug dll内的il代码的问题。各位请发表自己的看法 请问怎样设置一个控件的focus属性? 我的VS2005(winform)这边可以改,那边可以调试? (急)有关多数据库数据同步问题
this.BringToFront();
private void Form2_Paint(object sender, PaintEventArgs e)
{
this.SendToBack();
}
在定义部分引入下面两个函数:
[DllImport("user32")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
在窗体On_Load事件中添加(Santos的代码):
IntPtr hDeskTop=FindWindow("Progman", "Program Manager");
SetParent(this.Handle,hDeskTop);
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication8
{
public class WindowUtil
{
[DllImport("User32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32")]
public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); private static IntPtr hDeskTop = IntPtr.Zero; //桌面句柄 /// <summary>
/// 将传入窗口句柄的窗体钉在桌面
/// </summary>
/// <param name="hWindow"></param>
public static void SetLockOnDesk(IntPtr hWindow)
{
IntPtr hDeskTop = FindWindow("Progman", null);
SetParent(hWindow, hDeskTop);
}
/// <summary>
/// 将传入窗口句柄的窗体取消钉在桌面
/// </summary>
/// <param name="hWindow"></param>
public static void ClearLockOnDesk(IntPtr hWindow)
{
SetParent(hWindow, IntPtr.Zero);
}
}
}调用方式:
//钉在桌面,传入窗口句柄
private void btnLock_Click(object sender, EventArgs e)
{
WindowUtil.SetLockOnDesk(this.Handle);
}
//取消钉在桌面
private void btnUnlock_Click(object sender, EventArgs e)
{
WindowUtil.ClearLockOnDesk(this.Handle);
}