我正在制作一个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值。从那一刻开始,所有的线路都消失了!
请帮助!!
提前致谢并抱歉我的英语不好,
迭
答案 0 :(得分:1)
我找到了Chart控件。它会自动完成所有这些。
答案 1 :(得分:0)
你写在第一个框中的那段代码在哪里写的?它是在控件的更新方法中吗?
当然,图表在这里更合适