【问题标题】:WinForms Graphics PictureBox with dynamic width具有动态宽度的 WinForms Graphics PictureBox
【发布时间】:2010-09-27 13:41:09
【问题描述】:

我正在制作一个 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++;

效果非常好。

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

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

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

该代码也可以很好地工作。宽度增加。第一行 Math.Max 总是返回 205,几行之后它开始返回 orher 值。从那一刻起,所有的线条都消失了!!!

请帮忙!!

在此先感谢,并为我的英语不好感到抱歉,

迭戈

【问题讨论】:

    标签: c# .net winforms graphics picturebox


    【解决方案1】:

    我发现了图表控件。它会自动完成所有这些操作。

    【讨论】:

    • 看起来你当时回答了你的问题。
    【解决方案2】:

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

    当然,图表会更适合这里

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 2012-12-16
      • 2012-04-20
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多