【发布时间】:2010-04-07 02:04:12
【问题描述】:
我在图形和位图方面遇到了一些奇怪的问题。
我有一个显示在 PictureBox 上的图形对象,我正在捕获 MouseMove 和 MouseClick 事件,这些事件在图像上给出了鼠标的 X 和 Y 位置,但如果 Y 位置变大然后 32775,它就会进入负数,这意味着一切都破裂了。如果图像大于 65535,则它会停止显示图像。
任何想法如何解决这些问题?
谢谢
示例代码:
只需点击 Make 10,000 Bigger 大约 4 次,然后向下滚动,它会在右侧显示鼠标 X 和 Y 位置,当您向下移动图像并将鼠标悬停在红色区域上时,如果您向下足够多,它将进入负Y。
【问题讨论】:
-
您是否在 PInvoking API 调用以获取鼠标位置?在 .Net 中,MouseMove 事件中的
MouseEventArgs参数将 X 和 Y 指定为int,因此您不应该遇到此short环绕问题(我自己从未尝试过使用这么大的 PictureBox)。 -
@MusiGenesis 假设整个系列都得到保证...
-
我自己也试过了,设计师不让我把PictureBox的高宽设置成大于32767,你是怎么做到的?
-
我在面板内有一个自动滚动的 PictureBox,我正在将 PictureBox.Image 更改为更大的图片,这使得 PictureBox 在面板内变得更大。如果你能理解的话。
-
我能理解,只是无法复制。当我将 PictureBox 放入 AutoScroll Panel 时,我仍然无法使 PictureBox 大于 32767(对于高度或宽度)。我可以创建一个更大的位图并将其分配给 PictureBox 的 Image 属性,但这仍然不会使 控件 大于 32767。如果你能发布一个代码示例来说明您的问题。