方法一:代码实现

/// <summary>

/// 设置透明按钮样式

/// </summary>

private void SetBtnStyle(Button btn)

{

    btn.FlatStyle = FlatStyle.Flat;//样式

    btn.ForeColor = Color.Transparent;//前景

    btn.BackColor = Color.Transparent;//去背景

    btn.FlatAppearance.BorderSize = 0;//去边线

    btn.FlatAppearance.MouseOverBackColor = Color.Transparent;//鼠标经过

    btn.FlatAppearance.MouseDownBackColor = Color.Transparent;//鼠标按下

}

private void btn_MouseHover(object sender, EventArgs e)

{

    Button btn = sender as Button;

    btn.FlatAppearance.BorderSize = 1;

}





private void btn_MouseLeave(object sender, EventArgs e)

{

    Button btn = sender as Button;

    btn.FlatAppearance.BorderSize = 0;

}



1、C#按钮透明:

    设置按钮的backcolor为0,0,0,0 的数字即可,同时设置FlatApperance的BorderSize为0,FlatStyle为Flat,这样该按钮就完全透明了,此种效果常用在用 背景做皮肤,然后在相应位置放一个按钮,控制按钮事件,但不想让用户看到按钮的情况;

    2、C#窗体关闭时产生透明渐变:

    前几天无意中听同学说想要弄个窗体渐变的,后来自己上网搜索了一下,发现些方法,自己试了一下是成功的,但是还是有些问题,郁闷。。。以下列出几种我弄的方法:

    ① 新键窗体,窗体里加个按钮,双击按钮进入事件编写代码:

 while (this.Opacity > 0)  

{  

this.Opacity -= 0.02;  

Thread.Sleep(20);  

}  

Application.Exit();

    程序运行后点击该按钮关闭的时候整个窗体是先变成黑色,然后透明度再慢慢变小,变为0的时候程序再退出的,理论上来说我这个思路应该是正确的,可是我就不知道是怎么回事了?

    ②往窗体里加入Timer控件,Interval设置为20,控件事件编写代码:

 if (this.Opacity > 0)  

{  

this.Opacity -= 0.02;  

}  

else {  

Application.Exit();   

}

    然后在按钮的点击事件中写上  timer1.Start(); 就行了,经测试,这种方法是可以的,窗体是慢慢变透明而后又关闭的。。。

    C#透明窗体及按钮的效果变化遇到的问题

    可是随后的问题又来了,我现在是想当我点击窗体右上角的关闭按钮时,窗体渐变关闭,我在窗体的FormClosing事件中输入 timer1.Start();,测试,结果是当我点击窗体右上角的关闭按钮时,程序是直接退出了,并没有渐变消失,郁闷,搞不懂是怎么回事哦,而后上网 找了好久,找到个解决方法,FormClosing事件中输入e.Cancel = true;   timer1.Start();  测试,结果,点击关闭后,窗体是能渐变消失了,可是当透明度到0了以后,并没有关闭,任务栏上的图标还在,任务管理器里也有相应的进程。

 private void Form1_FormClosing(  

object sender, FormClosingEventArgs e)  

{  

timer1.Start();  

e.Cancel = false;  

     

}

    两步顺序倒了,解释下:在窗体关闭时事件 调用线程逐减透明度 然后 Cancel=false;是让窗体关闭不取消楼主理解错误了 true是取消 所以窗体不会关闭Cancel 一般是关闭窗体时写,例子:

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)  

{  

DialogResult dr=MessageBox.Show("是否关闭本窗体","提示",MessageBoxButtons.YesNo);  

if (DialogResult.No == dr)//如果点否按钮  

{  

e.Cancel = true;//取消关闭  

}  

}

    C#透明窗体及按钮的效果的实现基本情况就向你介绍到这里,希望对你了解和学习C#透明窗体及按钮的效果有所帮助。

c#中设置按钮Button为透明的更多相关文章

  1. 如何在css中设置按钮button中包含图片文字对齐方式

    <el-button class="class-management style="line-heught">班级管理

  2. android中设置TextView/Button 走马灯效果

    在Android的ApiDemo中,有Button的走马灯效果,但是换作是TextView,还是有一点差异. 定义走马灯(Marquee),主要在Project/res/layout/main.xml ...

  3. DevExpress 中 设置 labelControl 的背景透明到图片的方法

    labelControl 中的 backColor 可以设置为: TransParent 当设置为: Transparent 的时候,labelControl 的背景依然为 主form的背景颜色 ,研 ...

  4. HTML中,按钮button与submit区别是什么?

    type=button 单纯是按钮功能:type=submit 是发送表单:既然是这样,那么能否全部用submit代替button? Sumit提交表单,Button需要绑定事件才可以用提交数据不可以 ...

  5. QT 中设置按钮图片和文字的两种方法

    1.使用QpushButton自带的API实现: void setIcon(const QIcon &icon) void setText(const QString &text) 该 ...

  6. Xcode中设置按钮在十分钟之内禁用

    btn.enabled=NO;` NSTimer * notificationTimer = [NSTimer scheduledTimerWithTimeInterval:10*60.0 targe ...

  7. android 按钮Button单击背景切换

    res/drawable/btn_selected.xml <?xml version="1.0" encoding="utf-8"?> <s ...

  8. android中在java代码中设置Button按钮的背景颜色

    android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...

  9. Android设置按钮为透明

    设置一个按钮为透明, (1)修改配置文件 <Button android:id="@+id/btnAppMore"     android:layout_width=&quo ...

随机推荐

  1. Bluetooth LE(低功耗蓝牙) - 第三部分

    回顾 在本系列的前两篇文章中,我们已经了解了一些关于Bluetooth LE的背景并建立一个简单的Activity / Service框架.   在这篇文章中,我们将探讨Bluetooth LE的细节 ...

  2. arp命令(windows ),nmap查看局域网内所有主机IP和MAC

    ARP命令详解 ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址.实用arp命令,我们能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容.此外,使用arp命令,也可 ...

  3. HTML,CSS编码规范

    不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的. HTML 语法 对于属性的定义,确保全部使用双引号,绝不要使用单引号. 为每个 HTML 页面的第一行添加标准模式(stand ...

  4. showMonth

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. Windows作业

    1.什么是Windows作业 Windows作业实际上一个进程组,可以给作业设置权限,一旦进程加入到作业内,进程的权限将会被作业限制. 2.创建一个作业 HANDLE CreateJobObject( ...

  6. Unity3D学习笔记——选择Enemy

    一.步骤: 1.创建三个Cube,并将这三个Cube的Cube的Tag设为Enemy 2.导入第一人称视角的资源 3.创建名为Targeting的C#脚本 4.编写Targeting脚本,并将它附到第 ...

  7. Hibernate(九)一对多双向关联映射

    上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在 ...

  8. Ubuntu系统下为IDEA创建启动图标

    默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,需要在该目录下创建一个名为“idea.desktop”的文件. ...

  9. 数据结构学习笔记——stack实现(数组篇)

    一 栈:是一种表,限制插入和删除只能在一个位置,也即是表的末端(也是栈的顶)进行. 基本操作:push 和 pop. 二 栈的数组实现: 运用数组来存储元素,和栈操作先关的是theArray(一个数组 ...

  10. 为xampp 安装pear db (database) 模块

    pear channel-update pear.php.netpear install db