由于我刚学习使用.NET的C#(我对XNA框架有更多经验),我可能不会以正确的方式使用它。

我的问题从我看来很奇怪。我使用设计器制作了一个带有TabControl的表单。在其中一个标签页中,我有一个ListBox和一个ComboBox。 ComboBox具有静态数量的项目,这些项目都是在ComboBox的初始化时声明的。

每当我点击ComboBox查看其内容列表(大约30个),然后向下或向上滚动我的整个应用程序的性能下降了大约一秒钟。这使得我的ComboBox变得像糖浆一样缓慢,而且最重要的是它似乎击中了我的ListBox,因为它在一秒钟内变为白色,好像它正在等待重绘。

现在我已经为ComboBox编写任何循环或其他重处理,所有内容都由VisualStudio 2008自动编写,并且是标准模板代码+框中的项目。

编辑:正如我所说,唯一的代码是由VS 2008生成的,我没有附加到ComboBox的方法,(Exept for one empty)。但是代码在这里:

// 
// comboBox1
// 
this.comboBox1.DropDownHeight = 200;
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.IntegralHeight = false;
this.comboBox1.Items.AddRange(new object[] {
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z"});
this.comboBox1.Location = new System.Drawing.Point(26, 362);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(101, 21);
this.comboBox1.TabIndex = 8;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);

任何人都能分享对这里发生的事情的见解吗?

有帮助吗?

解决方案 2

好的,所以我发现它是什么,实际上有点尴尬。我的应用程序正在使用一个钩子,但钩子总是启动并运行,即使不需要。一些重组和问题应该修复。可能也要看看钩子,因为从一开始它就不是我的来源。

虽然赞赏答案:)

其他提示

看看这篇文章,它解决了类似的问题。

在ComboBox中慢速滚动

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top