我有一個從TreeView繼承的WinForms控件,我希望它根據窗體(也是自定義的)背景自動調整背景顏色。如何做到這一點?.NET UserControl繼承父窗體背景
2
A
回答
2
使控件知道其父項通常是一個壞主意。然而,有一個專門的方法來檢測父母的BackColor改變,所以它沒關係。 BackColor是一個環境屬性,如果它沒有明確分配,則具有與父級的BackColor相同的值。所以利用這一點:
using System;
using System.Windows.Forms;
class MyTreeView : TreeView {
protected override void OnParentChanged(EventArgs e) {
if (this.Parent != null) this.BackColor = this.Parent.BackColor;
base.OnParentChanged(e);
}
protected override void OnParentBackColorChanged(EventArgs e) {
this.BackColor = this.Parent.BackColor;
base.OnParentBackColorChanged(e);
}
}
1
如果你使用一些其他的控制除了TreeView
,下面的建議將適用:
我還沒有在TreeView
控制試過這種特別,但WinForms的約定是setting control.BackColor = Color.Transparent
causes the parent background to show through。
相關問題
- 1. 使子窗口繼承父級背景顏色?
- 2. ui.router嵌套視圖繼承父窗體
- 3. div背景顏色沒有在引導窗體中繼承
- 4. Extjs窗體繼承
- 5. 背景顏色不繼承
- 6. 防止繼承UserControl
- 7. 窗體在背景
- 8. Django窗體繼承問題
- 9. 窗體繼承問題
- 10. Windows窗體通用繼承
- 11. 在C#中繼承窗體#
- 12. 窗體組件繼承CommonDialog
- 13. Django 1.9窗體繼承UpdateView
- 14. NSTextView繼承父母更新的視圖背景
- 15. MFC託管Windows窗體的透明背景UserControl
- 16. 更改usercontrol背景顏色不顯示在窗體上
- 17. 如何從其他UserControl繼承UserControl?
- 18. WPF UserControl如何繼承WPF UserControl?
- 19. 窗體的透明背景(Windows窗體)
- 20. c#UserControl基類繼承
- 21. div透明度和背景繼承
- 22. 在背景下繼承顏色
- 23. 背景圖像:繼承和HTTP請求
- 24. CSS - 繼承分層背景圖像
- 25. 在css中的背景顏色繼承
- 26. Opera與Chrome背景圖像繼承?
- 27. 在Windows窗體中的字體繼承
- 28. 子/父繼承
- 29. MongoMapper父繼承
- 30. 透明窗體背景HTML
不適用於TreeView(不支持透明backcolor) – SharpAffair 2010-08-01 11:07:09