题
由于我刚学习使用.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
好的,所以我发现它是什么,实际上有点尴尬。我的应用程序正在使用一个钩子,但钩子总是启动并运行,即使不需要。一些重组和问题应该修复。可能也要看看钩子,因为从一开始它就不是我的来源。
虽然赞赏答案:)
其他提示
看看这篇文章,它解决了类似的问题。
不隶属于 StackOverflow