我有一个嵌套的控件布局:
表格(用户表格)> TabControl> UserControl(autoscroll,docked-fill)> GroupBox(停靠顶部)>组合框
一个用户体验问题是,其中一个输入框的焦点大部分时间都是。当输入框是组合框时,组合框改变选择,这是不希望的。滚动UserControl时,我想滚动到保持组合框对焦。
我试过
combobox.MouseWheel += (s, e) => combobox.Parent.Focus();
但这似乎在选择更改后发生。另一方面,TextBox工作得很好。有没有办法让组合框在鼠标滚轮上表现得像TextBox一样?
答案 0 :(得分:1)
然后我创建了自己的类,继承自该Ribbon控件。
public class MyRibbon : Ribbon {
public bool DisableMouseWheel { get; set; }
protected override void OnMouseWheel(MouseEventArgs e) {
if (!this.DisableMouseWheel) {
base.OnMouseWheel(e);
}
}
}
然后我重建我的解决方案。单击解决方案资源管理器中的“显示所有文件”按钮,然后打开表单的设计器文件。文件中有两行引用了Ribbon类型,我用新的MyRibbon类替换了该类型。
然后我订阅了ComboBox的Enter和Left事件,我更改了DisableMouseWheel属性。