【问题标题】:C# Panel or picturebox for drawing用于绘图的 C# 面板或图片框
【发布时间】:2018-07-02 01:44:00
【问题描述】:

我希望绘制一张点(坐标)地图,我希望稍后能够通过单击它们来选择这些点。使用图片框更好还是我应该使用面板?

编辑

我从一组值中绘制点

【问题讨论】:

  • 最好使用WPF和Canvas
  • 您使用的是哪种技术?窗体? WPF?等等...?
  • 我正在使用 Windows 窗体应用程序
  • 我在你的问题标签中添加了“winforms”,这样会更清楚。
  • Use a PictureBox 启用了 DoubleBuffer,所以效果要好得多。只需处理 PictureBox 的 Paint 事件并在其中完成所有绘图。

标签: c# winforms panel picturebox


【解决方案1】:

使用 PictureBox 时,最好将 Bitmap 对象分配给 PictureBox.Image,然后绘制到 Bitmap,因为这就是它的设计工作方式。

如果你想使用 Panel,你应该使用你自己的继承自 Panel 的类,这样你就可以设置如下选项。如果您需要滚动条,这可能是最好的选择:

public class Canvas : Panel {

    public Canvas() {
        ResizeRedraw = true;
        DoubleBuffered = true;
    }
}

【讨论】:

  • 谢谢!可以选择我在图片框中绘制的项目吗?
  • @user2928013 是的,但需要做一些工作。单击控件时,使用鼠标坐标确定单击了哪个点(如果有)。然后您可以更改它的颜色并重新绘制以显示它已被选中。
  • 在面板中会更容易吗?
  • @user2928013 我建议两者都尝试。如果您想要滚动条,则无论如何都需要将 PictureBox 放在面板中。但是如果你发现需要在不同的 Bitmap 之间切换,那么 PictureBox 会更有用。
猜你喜欢
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 2012-12-13
  • 2013-05-27
相关资源
最近更新 更多