放大ComboBox无法正常工作

时间:2018-10-08 05:13:36

标签: c# winforms

我有一个扫描图像以显示在应用程序上的应用程序。扫描图像后,我可以选择缩放图像。应用程序上有一个组合框,可同时显示缩放百分比。

我可以使用鼠标滚轮进行精细缩放,并且组合框%会相应更改,这很好。如果我手动选择组合框并选择缩放百分比(例如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));
}

我做错什么了吗?感谢任何帮助。

1 个答案:

答案 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