Csharp/C#教程:如何更改图片框(winform)的边框颜色?分享


如何更改图片框(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

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐