有誰知道哪些屬性設置禁用控件的文本顏色? 我必須在禁用的TextBox
中顯示一些文本,我想將其顏色設置爲黑色。如何更改禁用的TextBox的字體顏色?
回答
注意:請參閱下面的Cheetah的答案,因爲它標識了獲得此解決方案的先決條件。設置TextBox
的BackColor
。
我覺得你真的想要做的是使TextBox
和ReadOnly
屬性設置爲true
。
更改禁用TextBox
中文本的顏色有點棘手。我想你可能需要繼承和重寫OnPaint
事件。
ReadOnly
雖然應該給你與!Enabled
相同的結果,並允許你保持對TextBox
的顏色和格式的控制。我認爲它也將支持從TextBox
中選擇和複製文本,這對於禁用TextBox
是不可能的。
另一個簡單的選擇是使用Label
而不是TextBox
。
它也適用於這種方式。謝謝! – 2008-11-09 18:02:07
如果這是你的答案繼續前進,並單擊我的支票:) – 2008-11-10 02:58:52
這不是一個確切的答案,但它是一個公平的選擇;) – 2008-11-10 12:53:34
此外,爲了在標記爲ReadOnly的TextBox上遵守ForeColor,您必須明確地設置BackColor。如果你想讓它仍然使用默認的BackColor,你必須明確設置,因爲設計師太聰明瞭,不適合自己的需要。將BackColor設置爲其當前值就足夠了。我這樣做的Load事件的形式,像這樣:
private void FormFoo_Load(...) {
txtFoo.BackColor = txtFoo.BackColor;
}
喜 從代碼側設置只讀屬性爲true或從設計時的運行時間不
txtFingerPrints.BackColor = System.Drawing.SystemColors.Info;
txtFingerPrints.ReadOnly = true;
你可以嘗試這個。 重寫TextBox的OnPaint事件。
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush drawBrush = new SolidBrush(ForeColor); //Use the ForeColor property
// Draw string to screen.
e.Graphics.DrawString(Text, Font, drawBrush, 0f,0f); //Use the Font property
}
設置的ControlStyles爲 「UserPaint」
public MyTextBox()//constructor
{
// This call is required by the Windows.Forms Form Designer.
this.SetStyle(ControlStyles.UserPaint,true);
InitializeComponent();
// TODO: Add any initialization after the InitForm call
}
或者你可以嘗試這種破解
在Enter事件將焦點設置
int index=this.Controls.IndexOf(this.textBox1);
this.Controls[index-1].Focus();
因此,您的控件不會集中並且表現得像禁用。
如果你想顯示不能被編輯或選擇,你可以簡單地通過@ spoon16和@Cheetah使用標籤
除了答案的文本,我總是tabstop
屬性設置爲False的文本框防止默認選擇文本。
或者,你也可以做這樣的事情:
private void FormFoo_Load(...) {
txtFoo.Select(0, 0);
}
或
private void FormFoo_Load(...) {
txtFoo.SelectionLength = 0;
}
我只是發現這樣做的一個很好的方式。在我的例子我使用一個RichTextBox但它應該與任何控制工作:
public class DisabledRichTextBox : System.Windows.Forms.RichTextBox
{
// See: http://wiki.winehq.org/List_Of_Windows_Messages
private const int WM_SETFOCUS = 0x07;
private const int WM_ENABLE = 0x0A;
private const int WM_SETCURSOR = 0x20;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (!(m.Msg == WM_SETFOCUS || m.Msg == WM_ENABLE || m.Msg == WM_SETCURSOR))
base.WndProc(ref m);
}
}
您可以安全地設置啓用=真,只讀=假,它會像一個標籤,防止焦點,用戶輸入,光標改變,而不被實際禁用。
看看它是否適合你。 問候
只是處理啓用更改並將其設置爲顏色,你需要從獵豹
private void TextBoxName_EnabledChanged(System.Object sender, System.EventArgs e)
{
((TextBox)sender).ForeColor = Color.Black;
}
- 1. 如何更改TextBox的背景顏色?
- 2. 如何更改禁用TComboBox(Delphi)的字體顏色?
- 3. 如何在Firefox中更改禁用輸入的字體顏色
- 4. 如何禁用並啓用時更改datetimepicker字體顏色?
- 5. 如何更改GridView的字體顏色?
- 6. 如何更改ListView的字體顏色
- 7. 如何更改textView的字體顏色
- 8. 如何更改字體顏色。 - Python的
- 9. 如何在創建字體顏色後更改字體顏色
- 10. 如何更改GWT TEXTBOX邊框顏色
- 11. 更改JButton的被禁用的前景(字體)顏色爲Windows
- 12. 在WPF中更改禁用的複選框的字體顏色
- 13. Windows窗體:如何更改已禁用標籤的字體顏色
- 14. 如何更改ListPreference字體顏色?
- 15. 如何更改Spinner字體顏色?
- 16. 如何更改粗體文字顏色
- 17. 如何更改ListView字體顏色?
- 18. 如何更改字體顏色mid-sentence
- 19. 如何動態更改字體顏色?
- 20. 如何更改titleLabel字體顏色,Xcode
- 21. 更改禁用輸入文本框的字體顏色?
- 22. 更改字體顏色RTF
- 23. Javascript更改字體顏色
- 24. 更改Emacs字體顏色
- 25. 更改字體顏色
- 26. localStorage更改字體顏色
- 27. 更改字體顏色
- 28. 更改字體顏色javascript
- 29. 帶有多種字體顏色的TextBox
- 30. 如何更改多色彩字形的顏色(圖標字體)
答案是正確的。考慮改名? – 2009-12-17 21:22:08