问题标签 [treeview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 协助将 commctrl 命令移植到 C#
在 C++ 应用程序中,我有一个 hWnd 指向在第三方进程中运行的窗口。此窗口包含扩展 COM TreeView 控件的控件。我有兴趣获取此控件的 CheckState。
我使用 hWnd 从 commctrl.h 中使用 TreeView_GetRoot(hwnd) 获取 HTREEITEM
hwnd 指向窗口,hItem 是 TreeView_GetRoot(hwnd) 的返回值。它们的用法如下:
我希望将此代码移植到执行相同操作的 C# 应用程序中(关闭 TreeView 控件的 CheckState)。我从来没有使用过 COM 并且很陌生。
我曾尝试使用 .NET mscomctl,但找不到与 TreeView_GetRoot 或 TreeView_GetCheckState 等效的方法。我完全被卡住了,不知道如何在 C# 中重新创建这段代码:(
建议?
visual-c++ - CTreeCtrl 对象上的 TVN_SELCHANGED 问题
我有使用 CTreeCtrl MFC 类创建的树控件对象。树控件需要支持重命名。当我左键单击 Tree 中的任何项目时,将调用 TVN_SELCHANGED 事件,我可以从中获取树的选定项目,如下所示: HTREEITEM h = m_moveListTree.GetSelectedItem(); CString s = m_moveListTree.GetItemText(h);
但是,当我右键单击树中的任何项目时,我没有收到任何 TVN_SELCHANGED 事件,因此我选择的项目仍然与左键单击事件相同。这导致了以下问题:1)用户左键单击项目 A 2)用户右键单击项目 B 并说重命名 3)由于所选项目仍然是 A,因此重命名正在申请项目 A。
请帮助解决问题。
-普拉文
c# - 在 C# 中验证 TreeView 的拖放操作的最佳方法
我想验证是否允许拖放操作。有效项目可以来自我们的另一个“控件”,也可以来自内部自定义树视图。目前我有这个:
我已将所有检查代码移至此方法以尝试改进,但对我来说这仍然很可怕!
这么多的逻辑,以及这么多的事情,我希望树视图会自己做(例如。“TargetExistsInNode”检查被拖动的节点是否被拖动到它的一个子节点)。
验证控件输入的最佳方法是什么?
asp.net - ASP.NET TreeView 和选择选定的节点
如何捕获单击 TreeView 的选定节点的事件?它不会触发SelectedNodeChanged,因为选择显然没有改变,但是我可以捕捉到什么事件,所以我知道选择的节点被点击了?
更新:当我有时间时,我将不得不深入研究 TreeView 控件的内部,并找出它处理单击事件的内容和位置,并将 TreeView 子类化以公开一个新事件 OnSelectedNodeClicked。
我可能会在圣诞节假期这样做,然后我会报告结果。
更新:我在下面提出了一个解决方案,它对 TreeView 控件进行了子类化。
winapi - Win32 TreeView 中使用 NM_CUSTOMDRAW 的可变高度项目
使用 NM_CUSTOMDRAW 时 WIn32 TreeView 控件中的项目是否可以具有可变高度?
现在,我可以在 NM_CUSTOMDRAW 的 dc 中成功选择可变大小的字体,但项目文本被剪裁了。
asp.net - ASPNET TreeView 扩展节点样式
有谁知道如何在 ASP.Net 的 TreeView 控件中将自定义样式应用于扩展节点?我有许多根节点,并希望扩展节点具有不同的背景。
c# - 隐藏 WinForms TreeView 加号
我有一个带有一个主节点和几个子节点的 WinForms TreeView。
如何隐藏主节点中的 +(加号)?
c# - 验证和调整树视图标签
我有一个树视图控件,并且已经捕获了它的标签后编辑事件。我希望能够验证用户的输入并进行调整——例如它太长了——但我似乎只能取消新值,而不是改变它。有任何想法吗?
我不想打开一个新表单,用户可能正在重命名其中的一个范围,它不应该太麻烦。
干杯。
vb.net - 如何更改 WinForms Treeview LabelEdit 中的 259 个字符限制?
我的 VB.Net Winforms 应用程序是一个工具,允许在树中编辑分层数据,然后将其存储在数据库中。我正在使用树视图控件。
内容从其他文档拖放到树节点上,或者可以直接编辑节点。
如果我直接编辑数据库字段,并输入一些内容(一千个字符或更多!),树视图会很高兴地显示它。但是,当我拖放时,数据被截断为 259 个字符。如果我直接编辑,最大编辑“窗口”也是 259 个字符。
259 似乎是一个非常奇怪的数字,所以我想知道 - 这个大小来自哪里,我可以通过编程方式更改它吗?