问题:界面中有个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的位置不变啊?WinFormDataGridView界面

解决方案 »

  1.   

    劝你别这么干,你还是在cellpantting事件中,绘制单元格图片吧,那样不用考虑相对位置,只需要cell的区域绘制就行了
      

  2.   


    我试过,直接在单元格中插入图片,那样就需要设置DataGridView的某一列为DataGridViewImageColumn类型。但是,我需要在这一列上面,即可以添加图片,也可以添加文字。
      

  3.   

    不知道对不对 但是我觉得首先picturebox的位置应该设置为相对于你的单元格的位置
    第二在重绘单元格事件中应该重绘你的图片
      

  4.   


    我设置了PictureBox的定位是相对单元格的定位了,我想问,拖动滚动条,又重绘单元格吗??
      

  5.   


    我设置了PictureBox的定位是相对单元格的定位了,我想问,拖动滚动条,又重绘单元格吗??
    那就在拖动滚动条事件中重绘呗
      

  6.   

    参考DataGridView.Scroll事件