我寫這樣的:如何使用屬性Control.Enabled = false爲了使所有控件都被陰影化?
this.myTreeView.FullRowSelect = true;
this.myTreeView.Size = new System.Drawing.Size(170, 300);
,當我使用這個屬性myTreeView.Enabled = false
,就變成這樣:
盯梢只樹區域,但不是所有的控制,如何解決這一問題? (使所有控制都被遮蔽)
我寫這樣的:如何使用屬性Control.Enabled = false爲了使所有控件都被陰影化?
this.myTreeView.FullRowSelect = true;
this.myTreeView.Size = new System.Drawing.Size(170, 300);
,當我使用這個屬性myTreeView.Enabled = false
,就變成這樣:
盯梢只樹區域,但不是所有的控制,如何解決這一問題? (使所有控制都被遮蔽)
什麼:
.... Form()
{
this.InitializeComponent();
treeView1.EnabledChanged += (s, o) =>
{
treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
};
....
}
我加了這樣的'this.myTreeView.EnabledChanged + =(s,o)=> ...',並且我得到了警告:'方法'InitializeComponent'中的代碼是由設計者生成的,不應該是手動修改。請刪除所有更改並再次嘗試打開設計器。「我做錯了什麼? –
不要在.designer.cs文件中進行更改 - 在其頂部有一個警告,告訴您不要更改它。直接在.cs文件中進行更改。 – tomfanning
這是正確的.designer.cs文件是自動生成的,所以你的代碼可以被重載,在構造函數中添加代碼,例如更新後的代碼@William – S3ddi9
這只是一個效果,但重要的是它會禁用整個控件。事實上,如果你嘗試,例如,滾動條也被禁用。但是你可以嘗試使用卑鄙的手段來達到這種效果:
public class CostumizedTreeView : TreeView {
Color defaultBackColor;
public CostumizedTreeView() {
defaultBackColor = BackColor;
}
public void Enable(bool Enabled) {
this.Enabled = Enabled;
if (!Enabled)
BackColor = Color.LightGray;
else
BackColor = defaultBackColor;
}
}
而被禁用時,做到這一點:
否則,您可以創建使用的DevExpress你自己定製的控制或Telerik控件。欲瞭解更多信息look here。
這不是一個標準的TreeView控件的樣子。當然,你正在使用DrawMode屬性?使它看起來像一個不使用自定義繪圖的禁用樹視圖,並且您的用戶將停止抱怨。 –