我有一个扫描图像以显示在应用程序上的应用程序。扫描图像后,我可以选择缩放图像。应用程序上有一个组合框,可同时显示缩放百分比。
我可以使用鼠标滚轮进行精细缩放,并且组合框%会相应更改,这很好。如果我手动选择组合框并选择缩放百分比(例如50%),则会发生问题,那么根本没有任何更改。
代码:
private void ImageBox_ZoomLevelsChanged(object sender, EventArgs e)
{
this.FillZoomLevels();
}
private void ZoomComboBox_Click(object sender, EventArgs e)
{
}
private void FillZoomLevels()
{
ZoomComboBox.Items.Clear();
foreach (int zoom in ImageBox.ZoomLevels)
ZoomComboBox.Items.Add(string.Format("{0}%", zoom));
}
我做错什么了吗?感谢任何帮助。
答案 0 :(得分:0)
如果Panel
上有多个控件,并且显示了ScrollBars
,则将引发MouseWheel
的{{1}}事件,但如果仅存在Panel
上的PictureBox
,其Panel
的大小足以使面板的Image
可见,则ScrollBars
的{{1}}事件不会被引发,而是触发表单的MouseWheel
事件。
在下面的示例中,我仅将Panel
添加到MouseWheel
而不添加任何其他控件,将大PictureBox
设置到Panel
上,从而使{{ 1}}的{{1}}是不可见的,因为面板上只有一个控件,所以不会引发Image
的{{1}}事件,但是会引发表单的PictureBox
事件被引发时,我们将处理此事件,同时也处理表单的Panel
和KeyUp事件。
此外,将ScrollBars
的SizeMode设置为 StretchImage 而不是MouseWheel
,因此,当我们更改Panel
的大小时,{{1 MouseWheel
中的}}将调整大小以适合KeyDown
。
在这种情况下,PictureBox
方法无济于事,请改用AutoSize
的大小。
PictureBox