簡體   English   中英

TreeView關閉復選框

[英]TreeView turn off checkboxes

我在TreeView中隱藏CheckBox有一個非常奇怪的問題。 當TreeView在窗口的第一個TabPage上時,一切正常進行,但是當TreeView在第二個TabPage上時,第一個TreeNode始終具有復選框。

沒有復選框的根節點在此處輸入圖片說明

我用來隱藏一些復選框的代碼如下所示:

private const int TVIF_STATE = 0x8;
private const int TVIS_STATEIMAGEMASK = 0xF000;
private const int TV_FIRST = 0x1100;
private const int TVM_SETITEM = TV_FIRST + 63;

public struct TVITEM {
    public int mask;
    public IntPtr hItem;
    public int state;
    public int stateMask;

    [MarshalAs(UnmanagedType.LPTStr)]
    public string lpszText;
    public int cchTextMax;
    public int iImage;
    public int iSelectedImage;
    public int cChildren;
    public IntPtr lParam;
}

[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);


private void TurnOff(TreeNode node) {

    TVITEM tvi = new TVITEM();
    tvi.hItem = node.Handle;
    tvi.mask = TVIF_STATE;
    tvi.stateMask = TVIS_STATEIMAGEMASK;
    tvi.state = 0;
    IntPtr lparam = Marshal.AllocHGlobal(Marshal.SizeOf(tvi));
    Marshal.StructureToPtr(tvi, lparam, false);
    SendMessage(this.Handle, TVM_SETITEM, IntPtr.Zero, lparam);
    Marshal.FreeHGlobal(lparam);
}

如果有人知道解決此問題的方法,請分享。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM