繁体   English   中英

具有动态宽度的WinForms Graphics PictureBox

[英]WinForms Graphics PictureBox with dynamic width

我正在制作Winform .NET应用程序。 它必须以条形格式显示图形。 我使用的是图片框,因为这是我知道该方法的唯一方法(如果有人知道更好的方法,请告诉我)。

我使用以下代码动态添加线条(图形的条形):

int currentX = this.lineAmmount * (lineWidth + lineMargin);
pictureBox.CreateGraphics().DrawLine(new Pen(color, lineWidth), //Pen
    currentX, pictureBox.Height, //Starting (x, y)
    currentX, pictureBox.Height - Convert.ToInt32(value * graphicsScale)); //Ending (x, y)
this.lineAmmount++;

那很完美。

我现在想要的是pictureBox具有水平滚动条。 所以我将pictureBox放入带有autoscroll = true的面板中。 现在,我需要它来动态增加pictureBox的宽度。 所以我在添加每一行后添加了以下代码:

pictureBox.Width = Math.Max(this.lineAmmount * (lineWidth + lineMargin), 205);

(205是我想要的最小宽度)。

该代码也很棒。 宽度增加。 在前几行中,Math.Max始终返回205,在几行之后,它开始返回orher值。 从那一刻起,所有线都消失了!!!

请帮忙!!

在此先感谢您,我的英语不好,

地亚哥

我发现了图表控件。 它会自动执行所有操作。

您在第一个方框中发布的代码写在哪里? 在控件的更新方法中吗?

当然,这里的图表会更合适

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM