目前,我正在使用C# datagridview绘制包含>500行和>700列的晶圆映射。
然而,有几个问题:
但是,它似乎会为大多数单元格绘制多个边框复制。
推荐使用Datagridview吗?我试着在面板上画长方形,结果表现更差。
发布于 2013-10-29 20:33:38
这是我的Picturebox,它允许像素大小(相对于内插)。类似于放大微软的画图。
using System.Windows.Forms;
namespace WireWorld
{
    public class ZoomablePicturebox : PictureBox
    {
        public ZoomablePicturebox()
        {
        }
        protected override void OnPaint(PaintEventArgs pe)
        {
            pe.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
            pe.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
            pe.Graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
            pe.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
            base.OnPaint(pe);
        }
    }
}要生成位图,我使用如下内容:
// Pick width and height for your case
Bitmap MyBitmap = new Bitmap(width, height);
using (var g = Graphics.FromImage(retVal))
    g.Clear(BackColor); // Pick a background fill color
// Draw your points, whatever your loop needs to be and your point definition is
foreach (MyPointDef point in _Points)
{
    MyBitmap.SetPixel(point.X, point.Y, point.Color);
}然后我在表格上的面板上放了一个画框。然后面板提供滚动。我可以设置图片和缩放如下:
canvasPB.SizeMode = PictureBoxSizeMode.Zoom; // Ensures picture is resized as we resize picturebox
canvasPB.Image = MyBitmap;
canvasPB.Height = canvasPB.Image.Height * Zoom; // Zoom is 1, 2, 3, etc, for 1X, 2X, ...
canvasPB.Width = canvasPB.Image.Width * Zoom;canvasPB是我的表单中图片框的名称,我试图使用它作为画布。
https://stackoverflow.com/questions/18202730
复制相似问题