这里介绍C#透明窗体,当接触了.Net以后,才发现用Visual C#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的C#透明窗体到底是什么样。
-
做一个C#透明窗体
当我第一次在视窗2000中看到C#透明窗体,就想做出这样一个窗体应该是非常难的。肯定要调用很多的API函数。当接触了.Net以后,才发现用Visual C#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的C#透明窗体到底是什么样。
透明窗体的源代码:
- using System ;
- using System.Windows.Forms ;
- using System.Drawing ;
- public class Form2 : Form
- {
- public static void Main( )
- {
- Application.Run( new Form2( ) );
- }
- public Form2( )
- {
- this.Location = new System.Drawing.Point( 100 , 100 ) ;
- this.Cursor = System.Windows.Forms.Cursors.Hand;
- // 定义在窗体上,光标显示为手形
- this.Text = "透明的WinForm窗体!";
- // 定义窗体的标题名称
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- // 定义窗体的开始显示位置是屏幕的中间
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
- // 窗体的边界是Fixed3D类型
- this.ForeColor = System.Drawing.SystemColors.Desktop;
- //以桌面的前景色作为窗体的前景色
- this.Font = new System.Drawing.Font ( "宋体", 9 ) ;
- // 定义字体类型,大小
- this.BackColor = System.Drawing.Color.Blue;
- // 定义背景色为蓝色
- this.ClientSize = new System.Drawing.Size( 440 , 170 ) ;
- // 设置窗体的大小
- // Opacity属性设立窗体的透明程度,只对于视窗2000有效
- this.Opacity = 0.60 ;
- }
- }
小结:
以上的代码其实和第一个例子的代码有很多相似,只是在Form2 Class中多定义了一些属性。1)."this" 关键字,我想大家都注意到了这个关键字,那么到底该如何理解他。举例如下:当我在自我介绍的时候(其实就是在定义我的属性),我会说"我的名字叫 xx","我的年龄是xx","我的邮箱是xx"……你可能注意到"我的"这二个字,他就是指我本人--王天。同样的道理在程序设计中,"this"关键字就是指向一个对象的实例。所有在上面代码中"this.Font"、"this.Text"就是在设定当前或者正在运行的Form2实例的属性。
2).再看看上面的代码,在程序中又导入了一名称空间--System.Drawing。通过这个名称空间定义的类,就可以更好的设计对象,处理颜色和大小。
3).下面通过下表来具体说明一下在上面程序中设立的属性的具体含义。 以上介绍C#透明窗体。
问题描述:
迅雷的图标,但按显示桌面时它不会在桌面上消失!!而我用c#做做的window窗体就是要实现这种效果,即当按显示桌面时窗体还留在桌面上而不最小化解决方案:
引用:
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);