[C#]+浅析C#透明窗体

             这里介绍C#透明窗体,当接触了.Net以后,才发现用Visual C#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的C#透明窗体到底是什么样。

  • 做一个C#透明窗体

    当我第一次在视窗2000中看到C#透明窗体,就想做出这样一个窗体应该是非常难的。肯定要调用很多的API函数。当接触了.Net以后,才发现用Visual C#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的C#透明窗体到底是什么样。

    透明窗体的源代码:

      
      
    1. using System ;
    2. using System.Windows.Forms ;
    3. using System.Drawing ;
    4. public class Form2 : Form
    5. {
    6. public static void Main( )
    7. {
    8. Application.Run( new Form2( ) );
    9. }
    10. public Form2( )
    11. {
    12. this.Location = new System.Drawing.Point( 100 , 100 ) ;
    13. this.Cursor = System.Windows.Forms.Cursors.Hand;
    14. // 定义在窗体上,光标显示为手形
    15. this.Text = "透明的WinForm窗体!";
    16. // 定义窗体的标题名称
    17. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    18. // 定义窗体的开始显示位置是屏幕的中间
    19. this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
    20. // 窗体的边界是Fixed3D类型
    21. this.ForeColor = System.Drawing.SystemColors.Desktop;
    22. //以桌面的前景色作为窗体的前景色
    23. this.Font = new System.Drawing.Font ( "宋体", 9 ) ;
    24. // 定义字体类型,大小
    25. this.BackColor = System.Drawing.Color.Blue;
    26. // 定义背景色为蓝色
    27. this.ClientSize = new System.Drawing.Size( 440 , 170 ) ;
    28. // 设置窗体的大小
    29. // Opacity属性设立窗体的透明程度,只对于视窗2000有效
    30. this.Opacity = 0.60 ;
    31. }
    32. }  


    小结:
    以上的代码其实和第一个例子的代码有很多相似,只是在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);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值