c# winform pictureBox如何突出显示

limon758 2008-08-05 02:22:40
我按顺序4*4排了16个pictureBox,紧挨着

我现在想选中哪个pictureBox,就给哪个pictureBox突出显示,以告诉用户,你选择的是XX pictureBox

我开始想选中哪个pictureBox就给哪个边框换一种颜色,可惜不会做,然后又想稍微的把选中的pictureBox放大一圈,结果放大了也看不出效果,好象放大的部位被其它pictureBox给压住了

请问还能怎么做可以突出pictureBox,方便用户知道选择了哪个pictureBox

我的16个pictureBox都指向了同一个方法

private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show((sender as PictureBox).Name);
}


请指教!
...全文
643 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qvbymjecsharp 2012-05-17
  • 打赏
  • 举报
回复
哈哈。好的
alovelyyi 2011-11-30
  • 打赏
  • 举报
回复
3楼正解
lwlgy 2010-10-12
  • 打赏
  • 举报
回复
怎么看不到3楼的发言?
limon758 2008-08-05
  • 打赏
  • 举报
回复
3楼的 h_w_king 真是厉害啊`````````

我一天没查到的东西

你一下子就做出来了!!

很佩服!!
bwangel 2008-08-05
  • 打赏
  • 举报
回复
也许应该换一种思路,在toolstripPanel中用button表示你的控件,那样就天然支持mouse经过时突出显示的效果了.占击选中的状态也不一样.
h_w_king 2008-08-05
  • 打赏
  • 举报
回复

PictureBox old = null;
private void pictureBox2_Click(object sender, EventArgs e)
{
PictureBox p = (PictureBox)sender;
if (p == old) return;

if (old != null)
{
old.Width -= 10;
old.Height -= 10;
old.Location = new Point(old.Location.X + 5, old.Location.Y + 5);
}

old = p;
p.Width += 10;
p.Height += 10;
p.Location = new Point(p.Location.X - 5, p.Location.Y - 5);
p.BringToFront();


}

private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
PictureBox p = (PictureBox)sender;
if (p == old)
{
Pen pp = new Pen(Color.Red);
e.Graphics.DrawRectangle(pp, e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle.X + e.ClipRectangle.Width - 1, e.ClipRectangle.Y + e.ClipRectangle.Height - 1);
}
}
limon758 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wdgphc 的回复:]
吧 BorderStyle 换成 Fixed3D的 倒是稍微有一点点变化.
要不你就画16个groupbox,放16个picture,每个之间稍微有一点点空间,这样,选择那个就把他下面的groupbox的底色换了,有点象picture的边框颜色变了一样.
[/Quote]

我是把这16个picture放在了一个groupbox里的,如果分开了就不好控制了

刚才用(sender as PictureBox).BringToFront();可以把当前空间置于顶层了,可是效果不怎么样,不怎么好看

如果能改变边框颜色我觉得还是最好的

BorderStyle 的效果我都试了,太不显眼了````
微小的变化``
wdgphc 2008-08-05
  • 打赏
  • 举报
回复
吧 BorderStyle 换成 Fixed3D的 倒是稍微有一点点变化.
要不你就画16个groupbox,放16个picture,每个之间稍微有一点点空间,这样,选择那个就把他下面的groupbox的底色换了,有点象picture的边框颜色变了一样.

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧