首页 > 编程语言 >实战——二、c#窗体(2)

实战——二、c#窗体(2)

时间:2022-10-31 18:38:35浏览次数:39  
标签:实战 gp c# button hw System button1 窗体 Drawing


初入坑,细节上问题不断。


问题一:上一篇博文中写了控件透明的方法,对于label是实用的,即
​​​this.label1.BackColor = System.Drawing.Color.Transparent;​​​
但是对于button便失效了

解决方案:设置button的backcolor,里面第一个值设置为0,即完全透明,
​​​ button1.BackColor = Color.FromArgb(0,xxx,xxx,xxx);​​​
但是这还不够,需要同时设置其flatstyle属性为Flat或者PopUp,两者有不同,在此不赘述。


按照上述方法设置完按钮后,发现显示的只剩button的text了,完全显示不出来是个button的样子,如果要美观,除非P一张适配的背景图出来,感觉不妥,随即果断弃坑。换背景,换思路。


问题二:如何让按钮改变形状?

思路:用radius嘛,网页不是有这个,c#应该也有的,然而事实是,想多了。还剩仨办法,用其他东西代替button ,或者重绘button,或者老老实实用矩形的按钮。按钮肯定得高大上,第三种方法被否决了。第一种方法,难道其他的就能有圆形的嘛,除非用picturebox,但是又得P图,没点技术含量(因为不会P图),所以就剩第二种方法了,重绘。

解决方案:
逛遍各大论坛,得出如下代码,写在button的paint事件中

int hw = button1.Height;
if (hw > button1.Width) hw = button1.Width;
System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
gp.AddEllipse(4, 4, hw -8, hw - 8);
gp.FillMode = System.Drawing.Drawing2D.FillMode.Winding;
button1.BackColor = Color.FromArgb(200,141,141,141);
button1.Region = new Region(gp);

贴成果啦,什么功能都没实现,外形也极其难看的程序照。

实战——二、c#窗体(2)_重绘


标签:实战,gp,c#,button,hw,System,button1,窗体,Drawing
From: https://blog.51cto.com/u_15854687/5810854

相关文章

  • 实战——一、c#窗体(1)
    近期时间比较充裕,能够有大把时间泡在实验室里,因此想用c#做个项目,便从这里开始,贴出一些不明白但现在理解了的东西,帮助自己理解,也同时分享出来。闲话不多说,从窗体开始,设计。第......
  • c#中,类的重写中,new和override的区别
    在c#中有两种方法可以重写类的成员函数,分别是**new**和**override**,看书时书上并没有说明两者的区别,经过网上查资料后,总结如下:如果使用的是override,则调用的是它实际类的函......
  • c#在控制窗体最大化时不覆盖状态栏
    c#在控制窗体最大化时不覆盖状态栏,可以通过下面这种方式privatevoidForm1_Load(objectsender,EventArgse){this.Left=0;this.Top=......
  • c#的sealed修饰符
    看书时发现sealed可以阻止类被继承,但是sealed能否作用于方法或者属性呢?答案是肯定的!当sealed用来修饰方法时,只能对派生类使用,这个方法将重写基类的方法,但是该类的派生类......
  • [单片机框架][bsp层][cx32l003][bsp_tim] TIM定时器配置和使用
    TIM1简介高级控制定时器(TIM1)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输......
  • [单片机框架][bsp层][cx32l003][bsp_crc] 硬件CRC配置和使用
    循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任意字节数据的CRC计算结果。在应用中,CRC技术主要应用于核实数据传输或者数据存储的正确性和完整性。本模块算法......
  • [单片机框架][bsp层][cx32l003][bsp_key] KEY配置和使用
    按键的基本原理是设置单片机IO口(PB0-PB3)为输入状态,如DDRB=0XF0(方向寄存器,“1”为输出,“0”为输入);单片机一直检测按键端口(PB0-PB3)的状态,当端口为低电平时(即按键按下),实行相......
  • CSP-S 2022 假期计划&trick
    https://www.luogu.com.cn/blog/tsukimaru/csp-s-2022-jia-ji-ji-hua-di-yi-ge-jian-dan-sui-ji-hua-zuo-fahttps://ac.nowcoder.com/acm/contest/40649/D倘若你遇到选取......
  • [单片机框架][bsp层][cx32l003][bsp_led] LED配置和使用
    LED是一种半导体器件,大家其实对LED并不陌生,各种电器的指示灯、手机键盘灯、LED液晶屏的背光、高亮LED手电筒等,都是通过LED发光的。LED有两种主要用途,一种是作为指示灯;另一种......
  • [单片机框架][bsp层][cx32l003][bsp_flash] FLASH配置和使用
    本芯片包含1颗64K/32KByte容量的嵌入式Flash存储器,包括一个128/64sector的MainArray区域,一个8sector的NVR区域。每个sector的容量为512Byte。Flas......