winform控件的相对定位问题

darlin_緢 2013-06-14 02:43:33
问题:界面中有个DataGridView,现在要在界面上添加个PictureBox,且这个PictureBox是相对DataGridView来定位的。如果拖动界面的大小,PictureBox要相对DataGridView的位置是不遍的。

初始界面是这样的:


代码是这样写的:

dataGridView3.RowCount = 13;
PictureBox p1 = new PictureBox();
p1.Location = new Point(400, 200);
p1.SizeMode = PictureBoxSizeMode.AutoSize;
p1.Cursor = Cursors.Hand;
p1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right;
p1.Image = imageList1.Images[0];
dataGridView3.Controls.Add(p1);



但是,拖动窗体大小后,图形就变样了:



而且,它好像是绝对定位的,我拖动下面的滚动条,图片的位置是定死的,没有变化,但DataGridView向左移动了:



当窗体大小变化时,怎么样可以让PictureBox相对DataGridView的位置不变啊?
...全文
611 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
effun 2013-06-14
  • 打赏
  • 举报
回复
参考DataGridView.Scroll事件
  • 打赏
  • 举报
回复
引用 4 楼 mm3646 的回复:
[quote=引用 3 楼 hellboy419 的回复:] 不知道对不对 但是我觉得 首先picturebox的位置应该设置为相对于你的单元格的位置 第二在重绘单元格事件中应该重绘你的图片
我设置了PictureBox的定位是相对单元格的定位了,我想问,拖动滚动条,又重绘单元格吗??[/quote] 那就在拖动滚动条事件中重绘呗
darlin_緢 2013-06-14
  • 打赏
  • 举报
回复
引用 3 楼 hellboy419 的回复:
不知道对不对 但是我觉得 首先picturebox的位置应该设置为相对于你的单元格的位置 第二在重绘单元格事件中应该重绘你的图片
我设置了PictureBox的定位是相对单元格的定位了,我想问,拖动滚动条,又重绘单元格吗??
  • 打赏
  • 举报
回复
不知道对不对 但是我觉得 首先picturebox的位置应该设置为相对于你的单元格的位置 第二在重绘单元格事件中应该重绘你的图片
darlin_緢 2013-06-14
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
劝你别这么干,你还是在cellpantting事件中,绘制单元格图片吧,那样不用考虑相对位置,只需要cell的区域绘制就行了
我试过,直接在单元格中插入图片,那样就需要设置DataGridView的某一列为DataGridViewImageColumn类型。但是,我需要在这一列上面,即可以添加图片,也可以添加文字。
bdmh 2013-06-14
  • 打赏
  • 举报
回复
劝你别这么干,你还是在cellpantting事件中,绘制单元格图片吧,那样不用考虑相对位置,只需要cell的区域绘制就行了

111,098

社区成员

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

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

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