请理解,我知道还有其他线程涉及此问题,但我的需求不同。
基本上在我看到人们说要使用 MSChart 实现滚动条之前,他们使用
.大小 = ...
或
.View = ...
但是,这会使滚动条自动出现,并且此滚动条包含一个按钮,单击该按钮会使滚动条消失,从而使图表显示所有数据,并且无法在不重新启动的情况下将滚动 strip 回图表应用程序。
所以请问,有没有办法在图表的 X 轴上加入水平滚动条?我需要 以便我可以在 100 秒 block 的 block 上查看我的图表数据。
即0 - 100,然后单击滚动条会将我带到 100 - 200 block 。
先谢谢大家!!!!!!我也在用 C# 编码
最佳答案
这是您需要的示例:
(要尝试一下,只需创建一个表单,添加一个 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;
}
快照:
关于c# - 向 MS Chart 控件 C# 添加滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141126/