2009-05-01 7 views
1

私はC#を.NETで学んでいるので(私はXNAフレームワークの経験が豊富です)、私はそれを正しい方法で使用しないかもしれません。C# - Comboboxの性能

私の問題は私の見解から非常に奇妙です。私はデザイナを使用して、その内部にTabControlでフォームを作成しました。これらのタブページの1つには、ListBoxとComboBoxがあります。 ComboBoxには、静的な数の項目があり、すべてComboBoxの初期化時に宣言されます。

ComboBoxをクリックするとコンテンツリスト(約30)が表示され、下にスクロールアップすると、アプリケーションのパフォーマンスが約1秒間多く低下します。これにより、ComboBoxがシロップとして遅くなり、これの上にリストボックスが表示されるように見えます。これは、再描画を待っているかのように1秒間白くなるためです。

私はComboBoxでループや他の重い処理を書いていません。すべてVisualStudio 2008によって自動的に書かれ、標準テンプレートコード+ボックス内の項目です。

EDIT:私が言ったように、唯一のコードはVS 2008によって生成され、ComboBoxには(Exeptが空の場合)メソッドはありません。ただし、コードはここにあります:

// 
// 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); 

ここで起こっていることについて誰でも洞察できますか?

+0

コンボボックスにイベントが添付されていますか?いくつかのコードを投稿できますか? –

+0

あなたが投稿したコードはうまくいくはずです - 通常、コンボボックスはあなたが記述したものに悩まされません。このコンボボックスだけで構成される新しいC#プロジェクトを作成しても、パフォーマンスはまだ悪いですか? –

+0

いいえ、そうではありませんでした。下にその答えを作った:) – Vectovox

答えて

0

わかりましたので、私はそれが実際に恥ずかしがり屋のようなものであることを発見しました。私のアプリはフックを使用していますが、必要がなくてもフックは常に起動しています。そこにいくつかのリストラと問題を修正する必要があります。最初から私のソースではないので、フックも見ていなければならないかもしれません。

:)