2010-10-30 56 views

回答

1

我會創建一個從RichTextBox繼承的新控件。你可以重寫BackColor屬性來總是返回類似白色的東西。類似的東西可以用字體顏色來完成。關閉我的頭頂,我認爲你可以做一些事情,如:

class CustomRichTextBox : System.Windows.Forms.RichTextBox { 
    public override System.Drawing.Color BackColor { 
      get { return System.Drawing.Color.White; } 
      set { base.BackColor = System.Drawing.Color.White; } 
    } 
} 

雖然這可能無法工作,因爲你可能不得不重寫OnPaint方法來繞過默認灰色行爲。

另一種選擇是簡單地使用readonly屬性。 ReadOnly與enabled = false幾乎相同,除了實際上仍然可以單擊文本框(您無法編輯它)。只讀時,您仍然可以控制正常的顏色屬性,而不必重寫任何內容。

如果您想更有創意,可以將一個委託添加到RichTextBox的Enter事件中,該事件將焦點設置爲其他控件,以防止用戶甚至在框中單擊(啓用時不允許你呢)

3

Windows用戶界面準則要求禁用的控件顯示爲禁用。顯而易見的好處是,用戶可以告訴將鼠標放在控件上並不合理,試圖將焦點放在控件上。像工具箱中的所有控件一樣,RichTextBox也實現了這個指南。重寫它的繪畫行爲是不實際的。考慮ReadOnly屬性。

1

模擬被禁用的屬性。實現一個屬性,當設置爲false時,控件不會獲得焦點或者忽略所有擊鍵。 在我看來很奇怪,但程序員想要程序員想要的東西! ; - ]

相關問題