-1
我會動態地創建多個文本框以向用戶顯示信息。現在我想設置一些文本框的背景和前景,如果語句爲真。Textbox在禁用前景時會丟失前景色
所有這一切都很好,直到我禁用文本框,現在forecolor「重置」到標準顏色,而不是顯示我想要的。
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);
}
這是怎樣的文本框的樣子,當我使用上面的代碼:
- 註釋的行 - >
//txt.Enabled = false;
- 取消對該行 - >
txt.Enabled = false;
我不知道爲什麼在th在第二種情況下,紅色文本框的前景不是白色,因爲它應該是。 任何人有任何想法?
相反,您可以將其「ReadOnly」屬性設置爲true。 –
那麼'ReadOnly'並不是我搜索的解決方案。 @Sinatr是對的,重複。 – FatTony
[請參閱此處以獲取類似示例](http://stackoverflow.com/questions/40416262/change-label-text-on-its-own-click-event-during-runtime/40418144#40418144) - 您將使用EnabledChanged事件。 – TaW