WinForm (C#)绘图问题,望高手赐教!!!!

Sakeyi 2009-03-19 03:54:11
问题:
现在WinForm的窗体上有两个覆盖在一起的控件,如:DataGridView和PictureBox,
Grid在下面,PICTUREBOX在上面,想要在picturebox上画线条,把在GRID上的某些CELL
连起来,当然,这样PICTUREBOX就需要透明,但WINFORM无记忆功能,一旦透明就连GRID
的那一块面积全部没了;

别让我直接在PICTUREBOX上画表格又画字(我现在的做法),那太麻烦了,
能在GRID这种控件上想办法最好了。重绘GRID也太麻烦了,最好高手能另想个办法呀,比如加个层什么
的,传说有呀,但咱是鸟,不会呀。


需要的就是这么个功能,望高手们来救呀,东西就要这么个效果,无论什么方式来实现,
望大家给个思路,做法,当然有代码的多多感激了!
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sakeyi 2009-03-20
  • 打赏
  • 举报
回复
已搞定,虽然我不是用的各位的方法,但3和4楼的方法都很好
xugh 2009-03-19
  • 打赏
  • 举报
回复
学习一下
hbmy9107lwt 2009-03-19
  • 打赏
  • 举报
回复
牛人
天乐 2009-03-19
  • 打赏
  • 举报
回复
有趣的问题,关注一下
h_w_king 2009-03-19
  • 打赏
  • 举报
回复
Image pm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
PictureBox p = new PictureBox();
p.Width = this.dataGridView1.Width;
p.Height = this.dataGridView1.Height;
p.BackColor = Color.Transparent;
p.Image = pm;

this.dataGridView1.Controls.Add(p);

Graphics g = Graphics.FromImage(pm);
g.DrawLine(Pens.Blue, new Point(2, 2), new Point(30, 100));
zgke 2009-03-19
  • 打赏
  • 举报
回复
PictureBox _PictureBox = new PictureBox();
_PictureBox.BackColor = Color.Transparent;
_PictureBox.Size = new Size(32,32);
_PictureBox.Location = new Point(0, 0);
dataGridView1.Controls.Add(_PictureBox);


透明会透到父窗体上..添加到dagaGridView上就可以了
dyshadow 2009-03-19
  • 打赏
  • 举报
回复
感觉只有重绘GRID一个办法。
重绘GRID并不是那么复杂的咯~~~
或者。。。你可以在准备画线条的时候,先把GRID的显示截取下来,在PIC上画上。之后再让用户在上面画线,画完之后在GRID上重新绘制。
chinesesword 2009-03-19
  • 打赏
  • 举报
回复
好复杂 帮顶

111,126

社区成员

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

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

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