如何更改图片框(winform)的边框颜色?
我想根据不同的事件打开和关闭图片框周围的边框颜色/样式。
是否有属性或function可以帮助我实现这一目标?
Winforms不允许您更改控件的边框颜色,它们由用户选择的主题修复。 获得所需内容的最简单方法是不需要编写自己的控件,将图片框放在Panel中,使其略小一些。 然后只需更改面板的BackColor。
设计师会尝试将控件与网格对齐,直接在“属性”窗口中编辑“位置”和“大小”属性,而不是将其混合,因此设计师会对您进行一些打击。
这一直是我用来做的:
要更改边框颜色,请从Picturebox控件的Paint
事件处理程序中调用它:
private void pictureBox1_Paint_1(object sender, PaintEventArgs e) { ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, Color.Red, ButtonBorderStyle.Solid); }
要动态更改边框颜色,例如从鼠标点击事件,我使用图片框的Tag
属性来存储颜色并调整图片框的Click
事件以从那里检索它。 例如:
if (pictureBox1.Tag == null) { pictureBox1.Tag = Color.Red; } //Sets a default color ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, (Color)pictureBox1.Tag, ButtonBorderStyle.Solid);
那么,picturebox Click事件会是这样的:
private void pictureBox1_Click(object sender, EventArgs e) { if ((Color)pictureBox1.Tag == Color.Red) { pictureBox1.Tag = Color.Blue; } else {pictureBox1.Tag = Color.Red; } pictureBox1.Refresh(); }
你需要using System.Drawing;
在开始时不要忘记最后调用pictureBox1.Refresh()
。 请享用!
这是一个简单的例子 (在VB.NET中,但转换起来应该很简单),它可以帮到你。 你不必担心使用像Passant那样的额外面板。
如果您正在讨论鼠标事件,则可以使用MouseEnter和MouseLeave或MouseHover事件来执行此操作,并且可以使用OnPaint事件进行实际绘制。 只是使上面提到的鼠标事件或您关心的任何事件上的PictureBox无效。
上述就是C#学习教程:如何更改图片框(winform)的边框颜色?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1006520.html