首页 文章

使用垂直滚动时,表格绘制事件无法正确绘制[关闭]

提问于
浏览
0

我有一个接受数据的表单,根据输入的数据,它将打开另一个表单并绘制我已包含在其适当位置的图像 . 我成功了 . 我限制了它允许绘制的水平空间的数量,所以一旦达到某个点,它就开始绘制在前面的图像之下,直到代码告诉它不要绘制任何其他东西 .

我遇到的问题是我希望能够垂直绘制无限量的图像,并使用垂直滚动条查看下面的图像是否被切断 . 发生的事情是,当我向下滚动时,图像不会被绘制,几乎就像它们被切断一样 . 如果我快速向下滚动,我会看到所有绘制的东西,但它们全部被混合在一起 . 我希望它的行为就像使用我正在输入的这个文本框来写这个问题,一旦这个文本框填满了容量,滚动条就会变大,然后我可以向上或向下滚动以查看其余的的内容 . 此表单不可调整大小,这就是我想保留它的方式 .

我不确定我的代码的哪一部分要包含,因为所有内容都是正确绘制的,并且在正确的位置,只是当我向上或向下滚动时才会出现问题 .

我的所有绘图代码都在paint事件中 . 我用e.Graphics.DrawImage()绘制,图像取自我创建的文件 .

我设置了这些属性:

// on the form 

this.AutoScroll = true 

// after everything has been painted and inside the paint event

this.AutoScrollMinSize = new Size(totalHeightOfDrawnImages, widthOfForm)

建议?我已经在这里查看了很多链接,要么我不理解修复它的建议,并且无法使其工作,或者它们只是根本不适用于我的情况 .

1 回答

  • -1

    PictureBox比Form更好 .

    调整表单的高度并按原样滚动边框 .

    将PictureBox控件放到表单中 .

    调整pictureBox的大小以包含您的所有内容 .

    将Form的Paint事件迁移到PictureBox .

相关问题