use*_*616 7 .net c# mousewheel microsoft-chart-controls
如何使用鼠标滚轮启用Microsoft图表控件放大
我有以下代码,我需要知道如何制作此活动?在哪个班级..
private void chData_MouseWheel(object sender, MouseEventArgs e)
{
try
{
if (e.Delta < 0)
{
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset();
}
if (e.Delta > 0)
{
double xMin = chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum;
double xMax = chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum;
double yMin = chart1.ChartAreas[0].AxisY.ScaleView.ViewMinimum;
double yMax = chart1.ChartAreas[0].AxisY.ScaleView.ViewMaximum;
double posXStart = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) - (xMax - xMin) / 4;
double posXFinish = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) + (xMax - xMin) / 4;
double posYStart = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) - (yMax - yMin) / 4;
double posYFinish = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) + (yMax - yMin) / 4;
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(posXStart, posXFinish);
chart1.ChartAreas[0].AxisY.ScaleView.Zoom(posYStart, posYFinish);
}
}
catch { }
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为上面的答案应该是,
chData.MouseWheel + = new MouseEventHandler(chData_MouseWheel);
但根据我发现的结果,只要您没有将焦点设置在代码中的图表控件上,图表的鼠标滚轮就不起作用.因此,我使用图表控件的鼠标输入将焦点设置为图表控件的图表和鼠标离开事件,以将控件设置回其父控件.
因此,您需要在代码中添加以下行,相应地绑定鼠标左键和鼠标输入图表控件的事件,并添加上面的行.
private void chartTracking_MouseEnter(object sender, EventArgs e)
{
this.chartTracking.Focus();
}
private void chartTracking_MouseLeave(object sender, EventArgs e)
{
this.chartTracking.Parent.Focus();
}
Run Code Online (Sandbox Code Playgroud)
您拥有的是事件的处理程序方法MouseWheel。您需要将处理程序方法附加到MouseWheel图表控件的事件。根据方法签名,我假设您的图表控件名为chData,因此您可以在表单的构造函数中使用以下代码:
chData.MouseWheel += new EventHandler(chData_MouseWheel);
Run Code Online (Sandbox Code Playgroud)
当然,您也可以在设计时将处理程序与事件关联起来。为此,请使用“属性”窗口并单击工具栏中的闪电图标以切换到“事件”视图。然后找到该MouseWheel事件,单击下拉箭头,然后选择处理程序方法的签名。这将导致设计人员将上述代码写入表单的代码隐藏文件中。
除此之外,您的代码中还有一个巨大的危险信号:一个空catch块。如果您没有处理异常或对其执行任何操作,那么您不应该捕获它。这不是口袋妖怪,捕捉到它们并没有奖励。
| 归档时间: |
|
| 查看次数: |
12266 次 |
| 最近记录: |