private void btOK_Click(object sender, EventArgs e) { bool inputValid = true; //Sanity Check if (!ValidateInput(txtXMin)) { inputValid = false; } if (!ValidateInput(txtXMax)) { inputValid = false; } if (!ValidateInput(txtYMin)) { inputValid = false; } if (!ValidateInput(txtYMax)) { inputValid = false; } if (!inputValid) { MessageBox.Show("Invalid input values!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Limit Check double xStart = Convert.ToDouble(txtXMin.Text); double xEnd = Convert.ToDouble(txtXMax.Text); double yStart = Convert.ToDouble(txtYMin.Text); double yEnd = Convert.ToDouble(txtYMax.Text); //Perform ZOOM double XMin = ptrXAxis.ValueToPixelPosition(xStart); double XMax = ptrXAxis.ValueToPixelPosition(xEnd); double YMin = ptrYAxis.ValueToPixelPosition(yStart); double YMax = ptrYAxis.ValueToPixelPosition(yEnd); ptrXAxis.ScaleView.Zoom(xStart, xEnd); ptrYAxis.ScaleView.Zoom(yStart, yEnd); //Swtich to next axis ptrXAxis = (ptrXAxis == ptrChartArea.AxisX) ? ptrChartArea.AxisX2 : ptrChartArea.AxisX; ptrYAxis = (ptrYAxis == ptrChartArea.AxisY) ? ptrChartArea.AxisY2 : ptrChartArea.AxisY; ptrXAxis.ScaleView.Zoom(ptrXAxis.PixelPositionToValue(XMin), ptrXAxis.PixelPositionToValue(XMax)); ptrYAxis.ScaleView.Zoom(ptrYAxis.PixelPositionToValue(YMin), ptrYAxis.PixelPositionToValue(YMax)); DialogResult = DialogResult.OK; }
/// <summary> /// Converts an axis value to an absolute coordinate along an axis. /// Measured in pixels. /// This method only works in paint events. /// </summary> /// <param name="axisValue"> /// The axis value. /// </param> /// <returns> /// A double value that represents the pixel position. /// </returns> public double ValueToPixelPosition(double axisValue) { return(axis.ValueToPixelPosition(axisValue)); }