winform visual usar net example control como charting chart c# winforms charts

c# - visual - ¿Cómo recuperar el rango seleccionado en.Net WinForms Chart Control?



graph on c# (1)

OK, bueno, lo descubrí. Aquí está la primicia:

Hay un evento SelectionRangeChang * ing *, y cuando ese ejecuta los campos ChartArea.CursorX.SelectionStart y ChartArea.CursorX.SelectionEnd tienen valores correctos en ellos. Pero el usuario aún no ha soltado el botón del mouse, por lo que debe almacenarlos.

Cuando el usuario suelta el botón del mouse, el evento SelectionRangeChang * ed * se dispara. De alguna manera está diseñado de tal manera que SelectionStart y SelectionEnd se restablecen a NaN (al igual que los campos NewSelectionStart y NewSelectionEnd en los parámetros de evento). Lo que tienes que hacer es usar los valores que has escondido del otro controlador de eventos ahora que sabes el momento adecuado para usarlos.

¡Así que ahí lo tienes! Con suerte, esta respuesta salvará a otra persona de perder el tiempo.

Estoy usando el control integrado Chart Chart de Winforms ( System.Windows.Forms.DataVisualization.Charting.Chart ) con su capacidad incorporada para permitir que el usuario seleccione un rango. Lo que me gustaría hacer es volver a leer qué rango ha seleccionado el usuario. Seguramente debe haber alguna manera fácil de hacer esto, pero no he podido encontrarlo.

El cursor está habilitado así:

var ca = chart1.ChartAreas["ChartArea1"].CursorX; ca.CursorX.IsUserEnabled = true; ca.CursorX.IsUserSelectionEnabled = true;

Soy consciente de que puedo hacer que el gráfico se ca.AxisX.ScaleView.Zoomable cuando el usuario selecciona un rango habilitando ca.AxisX.ScaleView.Zoomable , pero no quiero que la imagen cambie: en su lugar, estoy usando el gráfico como una forma de mostrar información y Permita que el usuario seleccione un rango de valores X para los cuales luego realizo un procesamiento adicional.

Intenté conectarme a chart1.SelectionRangeChanged y eso de hecho se dispara cada vez que se cambia el rango; parece que no puedo obtener el rango de selección del CursorEventArg que recibo. Tiene los NewSelectionStart " NewSelectionStart " y " NewSelectionEnd ", pero esos son NaN , decepcionante. Traté de ver las diversas propiedades del gráfico y los ejes, pero no encontré nada que sonara prometedor.

Investigaciones posteriores revelan la propiedad ChartArea.CursorX.SelectionStart que parece exactamente lo que necesito ... excepto que también es NaN. No sé si esto es normal o estoy golpeando algún tipo de error?

Entonces, ¿cómo puedo averiguar qué rango seleccionó el usuario?