请理解我知道有关于这个问题的其他线索,但我的需求是不同的。
基本上在我看到有人说用MSChart实现滚动条之前,他们使用
.Size = ...
或
.View = ...
但是,这会使滚动条自动显示,此滚动条包含一个按钮,单击该按钮会导致条形图消失,使图表显示所有数据,无法重新启动滚动条到图表应用程序。
所以我问,请问,有没有办法在我的图表的X轴上包含一个水平滚动条?我需要这样我才能在100秒块的块上查看我的图表数据。
即。 0 - 100,然后点击滚动条将我带到100 - 200块。
先谢谢你们!!!!!我在C#编码也是
答案 0 :(得分:24)
以下是您需要的示例:
(尝试一下,只需创建一个表单,添加一个mschart并调用以下方法)
private void FillChart()
{
int blockSize = 100;
// generates random data (i.e. 30 * blockSize random numbers)
Random rand = new Random();
var valuesArray = Enumerable.Range(0, blockSize * 30).Select(x => rand.Next(1, 10)).ToArray();
// clear the chart
chart1.Series.Clear();
// fill the chart
var series = chart1.Series.Add("My Series");
series.ChartType = SeriesChartType.Line;
series.XValueType = ChartValueType.Int32;
for (int i = 0; i < valuesArray.Length; i++)
series.Points.AddXY(i, valuesArray[i]);
var chartArea = chart1.ChartAreas[series.ChartArea];
// set view range to [0,max]
chartArea.AxisX.Minimum = 0;
chartArea.AxisX.Maximum = valuesArray.Length;
// enable autoscroll
chartArea.CursorX.AutoScroll = true;
// let's zoom to [0,blockSize] (e.g. [0,100])
chartArea.AxisX.ScaleView.Zoomable = true;
chartArea.AxisX.ScaleView.SizeType = DateTimeIntervalType.Number;
int position = 0;
int size = blockSize;
chartArea.AxisX.ScaleView.Zoom(position, size);
// disable zoom-reset button (only scrollbar's arrows are available)
chartArea.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;
// set scrollbar small change to blockSize (e.g. 100)
chartArea.AxisX.ScaleView.SmallScrollSize = blockSize;
}
<强>快照:强>
答案 1 :(得分:0)
我会这样:
0.5f
0.12345
0.2f
1.04
0.3f
2.045
0.1f
2.0
因此,当您添加的点多于比例视图时-会出现滚动条
答案 2 :(得分:0)
我为此制定了自己的方式。希望它对您有帮助:
将图表添加到面板中。
使用panelName.AutoScroll=true;
在面板中正确调整图表大小。
您现在可以像使用图表一样使用面板的滚动条!
如果连续添加数据(例如使用计时器等),请将其添加到计时器的滴答事件中:
chartName.Size = new Size(width++, height++);
,其中int width = chartName.Width;
和int height = chartName.Height;