2017-02-24 8 views
1

私はWinFormsでプログラミングしています。
私は最初の灰色のForeColorを持つComboBoxを設定しました。私の目標は、ユーザーが何か入力を開始したときに、このComboBoxのテキストの色を変更することです。

入力時にComboBoxがテキストの色を変更するためのイベント

私は_TextChangedTextUpdateイベントを使用しようとしましたが、動作しません。

private void ComboBox1_TextChanged(Object sender, EventArgs e) 
{ 
    ComboBox1.ForeColor = SystemColors.ControlText; 
} 

私はすでに、ユーザーがドロップダウンリストから項目を選択すると、テキストの色を変更するには、イベント_SelectedIndexChangedを使用し、それがうまく動作しますが、何か(そこにユーザーがタイプの場合、テキストはグレーのままComboBoxに関連付けられたAutoCompleteCustomSourceコレクションであるため、ユーザーはドロップダウンリストを使用する代わりに書き込むことができます)。

ご提案がありますか?

私はこの方法で解決したEDIT


Form1.Designer.csに登録:

このコードを使用して
this.ComboBox1.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ComboBox1_KeyUp);` 

private void ComboBox1_KeyUp(Object sender, KeyEventArgs e) 
{ 
    ComboBox1.ForeColor = SystemColors.ControlText; 
} 

答えて

3

テキストボックスによって起動されたKeyUp,KeyDownまたはKeyPressイベントを使用します。おそらくこの目的のためにKeyPressを望まないでしょう。 TextChangedは、テキストが既に変更されているときに起動します。そのため、入力時に新しい文字が異なる色にならないのはこのためです。

+0

ありがとうございます@ user1895086! 'KeyUp'、' KeyDown'と 'KeyPress'の違いはまだ分かりませんが、私はこのように解決しました。

1)' Form1.Designer。cs'
this.ComboBox1.KeyUp + =新しいSystem.Windows.Forms.KeyEventHandler(this.ComboBox1_KeyUp);このコードを使用

2)
プライベートボイドComboBox1_KeyUp(オブジェクト送信者、KeyEventArgs E) {ComboBox1.ForeColor = SystemColors.ControlText。 } – Wiccio

2

KeyUpイベントを見ましたか? MSDN Keyup

あなたはこのイベントを購読し、その中で何でもしてください。

+0

ありがとうございます@tjcertified! それはまだKeyUp'、 'KeyDown'と' 'KeyPress'の違い私には明確ではないが、私はこのように解決している:' Form1.Designer.cs'
this.ComboBox1に登録)

1 .KeyUp + =新しいSystem.Windows.Forms.KeyEventHandler(this.ComboBox1_KeyUp);このコードを使用

2)
プライベートボイドComboBox1_KeyUp(オブジェクト送信者、KeyEventArgs E) {ComboBox1.ForeColor = SystemColors.ControlText。 } – Wiccio

+0

これらのイベントはすべて関連しています。キーを押したときにKeyDownが発生すると、キーを離した後にKeyUpが発生し、前の両方のイベントの後にKeyPressが発生します。 – tjcertified

+0

とても小さな違いです。あなたの説明とあなたの時間をもう一度おねがいします。 ;) – Wiccio

関連する問題