我正在寻找一种方法来设置一个树视图的宽度要么是它的最大值,要么是其中最长的树节点的大小,每当一个节点被折叠或打开。我试过使用clientsize,但似乎不起作用。是否有其他方法可以检查哪个节点最长,并将TreeView.Width设置为该大小?
pkln4tw61#
经过一些更多的搜索在网上我发现这样:
private const int GWL_STYLE = -16; private const int WS_VSCROLL = 0x00200000; private const int WS_HSCROLL = 0x00100000; [DllImport("user32.dll", ExactSpelling = false, CharSet = CharSet.Auto)] private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
以及:
//tree = instance of a treeview tree.AfterExpand += (s, ea) => { int style = GetWindowLong(tree.Handle, GWL_STYLE); while ((style & WS_HSCROLL) != 0) { tree.Width++; style = GetWindowLong(tree.Handle, GWL_STYLE); } };
当然你也可以在按钮上使用这个!
1条答案
按热度按时间pkln4tw61#
经过一些更多的搜索在网上我发现这样:
以及:
当然你也可以在按钮上使用这个!