设置窗体透明C#代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置窗体透明C#代码相关的知识,希望对你有一定的参考价值。

上个示例是C#调用windows api

在原来代码上加入窗体透明,控件不透明代码:

技术分享

 1 using System;
 2 using System.Runtime.InteropServices;
 3 using System.Windows.Forms;
 4 
 5 namespace HoverTreeWinForm
 6 {
 7 public partial class FormHewenqi : Form
 8 {
 9 
10 /// <summary>
11 /// 使窗体透明 by 何问起
12 /// </summary>
13 protected override CreateParams CreateParams
14 {
15 get
16 {
17 
18 CreateParams parameter = base.CreateParams;
19 parameter.ExStyle |= 0x00080000;
20 return parameter;
21 
22 }
23 }
24 
25 /// <summary>
26 /// http://hovertree.com/h/bjaf/v4y0b2l6.htm
27 /// </summary>
28 /// <returns></returns>
29 [DllImport("User32.dll")]
30 public static extern int MessageBox(int h, string m, string c, int type);
31 public FormHewenqi()
32 {
33 InitializeComponent();
34 //使控件不透明
35 this.TransparencyKey = BackColor;
36 }
37 
38 private void button_hewenqi_Click(object sender, EventArgs e)
39 {
40 MessageBox(0, "Hello Win32 API HoverTree", "何问起网", 4);
41 }
42 
43 private void linkLabel_help_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
44 {
45 System.Diagnostics.Process.Start("http://hovertree.com/h/bjaf/v4y0b2l6.htm");
46 }
47 
48 private void button_hoverc_Click(object sender, EventArgs e)
49 {
50 //获取主窗体句柄
51 IntPtr h_handle = HewenqiUser32.GetCurrentWindowHandle();
52 int h_jubing = 0; ;
53 if (h_handle != IntPtr.Zero)
54 h_jubing = (int)(h_handle);
55 MessageBox(h_jubing, "Hello hovertree.com", "欢迎光临何问起", 4);
56 }
57 }
58 }

1、先把窗体的颜色变成一种很不常见的颜色。 
2、把该窗体的TransparecyKey的颜色设置成窗体的颜色。 
3、加入控件,但是控件的颜色不能和窗体颜色一致,否则控件也透明。 
运行程序后,就只能看见标题栏和控件了。

转自:http://hovertree.com/h/bjaf/i3lp7ay0.htm

演示下载:http://pan.baidu.com/s/1mhfgJ6C g56m

以上是关于设置窗体透明C#代码的主要内容,如果未能解决你的问题,请参考以下文章

C#程序设计窗体如何将导入的图片背景变成透明?

c# winform 如何实现窗体边框半透明

C#中winform窗体,如何用代码设置字体的样式(如粗体、斜体)?

对VS中的winform窗体,如何用代码实现子控件在父控件中的相对位置的设置?请问C#语言实现

显示后的 Windows 窗体不透明度 - C#

C# 里winform窗体颜色怎么设置?