2012-12-13 64 views
2

我在C#windows窗體項目中使用圖表控件。我想要的是當虛線在圖表上移動時,虛線跟隨着我的鼠標。我可以使光標或數據點的中心線;此時我很靈活。我已經在下面列出了我正在尋找的屏幕截圖。
Black dotted lines on cursor圖表中的光標行

所以在這裏你可以看到黑色的虛線(光標不會出現,因爲它是一個屏幕抓取)。我已經有了一個mouseMove事件,但是我不確定在那個mousemove中包含哪些代碼來實現這個工作(現在它只在單擊鼠標時才起作用,但我認爲這只是因爲我已經啓用了CursorX.IsUserSelection)。我已經格式化了圖表創建函數中的行,但是有一些CursorX.LineEnable函數或類似的東西嗎?我一直無法找到任何。我知道我可以用塗漆的物體做到這一點,但我希望避免麻煩。
在此先感謝!我將在下面列出我的線路格式。這是在圖表創建部分。

 chData.ChartAreas[0].CursorX.IsUserEnabled = true; 
     chData.ChartAreas[0].CursorX.IsUserSelectionEnabled = true; 
     chData.ChartAreas[0].CursorY.IsUserEnabled = true; 
     chData.ChartAreas[0].CursorY.IsUserSelectionEnabled = true; 

     chData.ChartAreas[0].CursorX.Interval = 0; 
     chData.ChartAreas[0].CursorY.Interval = 0; 
     chData.ChartAreas[0].AxisX.ScaleView.Zoomable = true; 
     chData.ChartAreas[0].AxisY.ScaleView.Zoomable = true; 

     chData.ChartAreas[0].CursorX.LineColor = Color.Black; 
     chData.ChartAreas[0].CursorX.LineWidth = 1; 
     chData.ChartAreas[0].CursorX.LineDashStyle = ChartDashStyle.Dot; 
     chData.ChartAreas[0].CursorX.Interval = 0; 
     chData.ChartAreas[0].CursorY.LineColor = Color.Black; 
     chData.ChartAreas[0].CursorY.LineWidth = 1; 
     chData.ChartAreas[0].CursorY.LineDashStyle = ChartDashStyle.Dot; 
     chData.ChartAreas[0].CursorY.Interval = 0; 

回答

6

裏面的圖表的MouseMove事件處理程序,您可以執行以下操作,使光標移動:

private void chData_MouseMove(object sender, MouseEventArgs e) 
{ 
    Point mousePoint = new Point(e.X, e.Y); 

    Chart.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true); 
    Chart.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, true); 

    // ... 
} 

這是SetCursorPixelPosition方法的文檔:http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.cursor.setcursorpixelposition.aspx

+0

這正是我通緝!非常感謝你,非常簡潔和明確的答案。 – tmwoods