首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# TreeView 節點嵌入 TextBox 與 Button:自訂 UserControl 實現

     編輯:程式設計綜合問答

TreeView 原生節點不支援直接嵌入可編輯控件,需自訂繪製或使用 UserControl 承載。

方案:自訂 NodeControl

public class NodeControl : UserControl {
    public TextBox Txt { get; private set; }
    public Button Btn { get; private set; }
    public NodeControl() {
        Txt = new TextBox { Dock = DockStyle.Fill };
        Btn = new Button { Text = "儲存", Dock = DockStyle.Right, Width = 60 };
        Controls.Add(Txt); Controls.Add(Btn);
        Btn.Click += (s,e) => { /* 儲存 Txt.Text */ };
    }
}

掛載到 TreeView

TreeView 不直接支援 Control 宿主,常見變通:

  1. 偽裝法: 節點選中時,在 TreeView 旁浮動顯示 NodeControl,失焦時隱藏並更新節點文字。
  2. 第三方控件: 使用 AdvancedTreeView、TreeViewAdv 等支援節點編輯模板的庫。
  3. WPF TreeView: 原生支援 HierarchicalDataTemplate 嵌入任意控件,建議遷移 WPF。

WinForms 原生 TreeView 節點編輯僅支援簡單文字編輯 (LabelEdit=true),複雜交互請用 WPF 或第三方庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved