2017-12-30 18 views
0

다음은 C# 프로그램의 차트에 대한 내 init 메서드입니다.스크롤 막대를 클릭 할 때까지 차트 시리즈가 표시되지 않습니다.

private void initGraph() 
{ 
    chartTrend.Cursor = Cursors.Hand; 
    chartTrend.ChartAreas[0].CursorX.LineColor = Color.Red; 
    chartTrend.ChartAreas[0].CursorX.LineWidth = 2; 
    chartTrend.ChartAreas[0].CursorX.LineDashStyle = ChartDashStyle.Dot;    
    chartTrend.ChartAreas[0].CursorX.IsUserEnabled = true; 

    // let us select a portion of chart so then zoom that portion 
    chartTrend.ChartAreas[0].CursorX.IsUserSelectionEnabled = true; 
    chartTrend.ChartAreas[0].CursorX.Interval =1 ; 
    chartTrend.ChartAreas[0].CursorX.IntervalType = DateTimeIntervalType.Seconds; 

    chartTrend.ChartAreas[0].CursorX.AutoScroll = false; 
    chartTrend.ChartAreas[0].AxisY.IsStartedFromZero = true; 
    chartTrend.ChartAreas[0].AxisX.ScaleView.Zoomable = true; 
    chartTrend.ChartAreas[0].AxisY.ScaleView.Zoomable = false; 

    // disable zoom-reset button (only scrollbar's arrows are available) 
    chartTrend.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll; 
    chartTrend.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true; 
    chartTrend.ChartAreas[0].AxisX.ScrollBar.Enabled = true; 
    chartTrend.ChartAreas[0].AxisX.ScaleView.SizeType = DateTimeIntervalType.Seconds;   
    chartTrend.ChartAreas[0].AxisX.ScaleView.Size = 528; 
} 

문제는 차트에 데이터를 추가 할 때 스크롤을 클릭하기 전까지는 표시되지 않습니다. 나는 심지어 소프트웨어로 스크롤을 움직이려고했지만 작동하지 않았다. 내가 무엇을 할 수 있을지?

그런데, 모두 initGraph() 방법의 마지막 줄입니다. 내가 그것을 주석 처리 할 때 데이터가 표시되지만, 내가 관심이없는 방식으로 표시됩니다.

+0

당신은 추가 할 수있는 ['chartTrend.ChartAreas [0] .RecalculateAxesScale()'] (HTTPS : //msdn.microsoft.com/en-us/en-en/library/system.windows.forms.datavisualization.charting.chartarea.recalculateaxesscale (v = vs.110) .aspx). 데이터가 없으면 아무것도 표시 될 수 없습니다. – TaW

+0

@TaW 감사합니다. 그러나 작동하지 않습니다. 데이터를 추가 한 후에도 코드를 추가했지만 코드를 추가해도 동일한 결과가 나타납니다. – phoenix2000

답변

0

스크롤의 위치가 문제였습니다. 나는 차트에 데이터를 추가 할 때 차트가 시간 범위의 시작에서 멀리 떨어져 있고 스크롤을 클릭 한 후 적절한 시간에 그 차트를 그렸다고 이해했습니다. 그래서 난 내 첫 포인트를 추가 한 후 스크롤을 이동하기로 결정하고 마지막으로, 문제는이 선으로 해결 :

chartTrend.ChartAreas[0].AxisX.ScaleView.Position = chartTrend.ChartAreas[0].AxisX.Minimum; 
관련 문제