我有一个问题,即在 toolStripComboBox 和常规 ComboBox 中滚动都非常慢。
使用箭头键和鼠标滚轮都会发生这种情况。但是,如果我使用滚动条,它会按预期运行。
这是工具条组合框:
//
// toolStripComboBoxDeild
//
this.toolStripComboBoxDeild.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.toolStripComboBoxDeild.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.toolStripComboBoxDeild.DropDownWidth = 121;
this.toolStripComboBoxDeild.Items.AddRange(new object[] {
"Allir"});
this.toolStripComboBoxDeild.Margin = new System.Windows.Forms.Padding(1, 0, 8, 0);
this.toolStripComboBoxDeild.MaxDropDownItems = 24;
this.toolStripComboBoxDeild.Name = "toolStripComboBoxDeild";
this.toolStripComboBoxDeild.Size = new System.Drawing.Size(200, 52);
this.toolStripComboBoxDeild.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxDeild_SelectedIndexChanged);
我正在使用 SqlDataReader 将其余数据添加到组合框中(不使用数据集,因为我习惯使用 sqlreader)。
和常规组合框:
//
// comboBox1
//
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(77, 17);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(221, 21);
this.comboBox1.TabIndex = 1;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
有没有人遇到过这个问题?如果是这样,你做了什么来解决它?
编辑
将事件处理程序更改为 SelectionChangeCommitted 解决了有关箭头键的问题,但没有解决鼠标部分的问题。
鼠标滚动行为仅在鼠标悬停在下拉列表上时才会出现异常。当我在不移动鼠标的情况下单击组合框向下箭头并应用滚轮时,列表会按预期滚动。
编辑 2
找出鼠标滚动的问题,原来是“联想鼠标套件”软件和/或驱动程序。卸载它,现在一切都很好。
感谢 Jeff Yates 向我展示了 SelectionChangeCommitted 事件。