2016-11-08 7 views
-1

ユーザーに情報を表示するための複数のテキストボックスを動的に作成します。今、文が真であれば、いくつかのテキストボックスのバックカラーとフォアカラーを設定したいと思います。テキストボックスは、それを無効にするとフォアカラーが失われます

これは、私が希望するものを表示するのではなく、スタンドアール色に "リセット"する前に、テキストボックスを無効にするまでうまくいきます。

DataTable dt = [some data] 
//Col 0: ID 
//Col 1: some text 
//Col 2: date 

for (int i = 0; i < dt.Rows.Count; i++) 
{ 

    DateTime d = (DateTime) dt.Rows[i].ItemArray[2]; 
    TextBox txt = new TextBox(); 
    txt.Multiline = true; 
    txt.Font = tb_Aufloesung.Font; 
    txt.Text = dt.Rows[i].ItemArray[1].ToString() + "\n" + d.ToString(@"dd.MM.yyyy"); 
    txt.Size = new Size((TextRenderer.MeasureText(dt.Rows[i].ItemArray[1].ToString(), txt.Font).Width) + 10, 34); 
    txt.Location = new Point(43, 3 + split.Panel2.Controls.Count/2 * 40); 

    if(d <= DateTime.Now) { 
     txt.BackColor = Color.Red; 
     txt.ForeColor = Color.White; 
    }  

    //txt.Enabled = false; 

    split.Panel2.Controls.Add(txt); 
} 

私は上記のコードを使用するときにこれがどのようにテキストボックスの外観です:

  1. コメント行 - >//txt.Enabled = false;
  2. 行のコメントを解除 - >txt.Enabled = false;

enter image description here

なぜ私は考えていませんeの場合、赤いテキストボックスの前景色は白ではありません。 誰でも構いませんか?

+0

代わりに、 'ReadOnly'プロパティをtrueに設定することができます。 –

+0

さて、 'ReadOnly'は私が探し求めた解決策ではありませんでした。 @シナトラは正しい、重複しています。 – FatTony

+0

[同様の例についてはこちらを参照](http://stackoverflow.com/questions/40416262/change-label-text-on-its-own-click-event-during-runtime/40418144#40418144) EnabledChangedイベント。 – TaW

答えて

0

これはテキストボックスがどのように機能するかを示しています。これは入力用であり、表示用ではありません。なぜラベルを使用しないのですか?

+0

ユーザー入力が必要な場合がありますが、テキストボックスを無効にする必要があります。 – FatTony

関連する問題