C# 删除特定节点';s复选框
最近我一直在玩treenodes,我希望能够在创建特定节点后删除该节点上的复选框,具体取决于我的控件是1还是0。我已经完成了大部分代码,只是这一部分我不太确定如何实现C# 删除特定节点';s复选框,c#,treeview,nodes,C#,Treeview,Nodes,最近我一直在玩treenodes,我希望能够在创建特定节点后删除该节点上的复选框,具体取决于我的控件是1还是0。我已经完成了大部分代码,只是这一部分我不太确定如何实现 private void ListDirectory(TreeView treeView, string path) { treeView.Nodes.Clear(); var rootDirectoryInfo = new DirectoryInf
private void ListDirectory(TreeView treeView, string path)
{
treeView.Nodes.Clear();
var rootDirectoryInfo = new DirectoryInfo(path);
treeView.Nodes.Add(CreateDirectoryNode(rootDirectoryInfo));
}
private static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo)
{
var directoryNode = new TreeNode(directoryInfo.Name);
foreach (var directory in directoryInfo.GetDirectories())
directoryNode.Nodes.Add(CreateDirectoryNode(directory));
foreach (var file in directoryInfo.GetFiles())
{
int check =0;
try
{
string s = "";
s = directoryInfo.FullName + "\\" + file.Name;
List<string> row, row2 = new List<string>();
using (StreamReader readFile = new StreamReader(s))
{
row = (readFile.ReadLine().Split(',').ToList());
try
{
row2 = (readFile.ReadLine().Split(',').ToList());
check = 1;
}
catch { }
}
TreeNode[] headerNodes = new TreeNode[row.Count];
for (int i = 0; i < row.Count; i++)
{
if (check == 0)
{
//IN HERE SOMEWHERE//
headerNodes[i].BackColor = Color.Red;
headerNodes[i].ForeColor = Color.White;
}
headerNodes[i] = new TreeNode(row[i]);
}
directoryNode.Nodes.Add(new TreeNode(file.Name, headerNodes));
}
catch
{
directoryNode.Nodes.Add(new TreeNode(file.Name));
}
}
return directoryNode;
}
private void列表目录(TreeView TreeView,字符串路径)
{
treeView.Nodes.Clear();
var rootDirectoryInfo=新目录信息(路径);
添加(CreateDirectoryNode(rootDirectoryInfo));
}
专用静态树节点CreateDirectoryNode(DirectoryInfo DirectoryInfo)
{
var directoryNode=newtreenode(directoryInfo.Name);
foreach(directoryInfo.GetDirectories()中的var目录)
添加(CreateDirectoryNode(目录));
foreach(directoryInfo.GetFiles()中的var文件)
{
整数检查=0;
尝试
{
字符串s=“”;
s=directoryInfo.FullName+“\\”+file.Name;
列表行,第2行=新列表();
使用(StreamReader readFile=新的StreamReader))
{
行=(readFile.ReadLine().Split(',).ToList());
尝试
{
row2=(readFile.ReadLine().Split(',').ToList());
检查=1;
}
捕获{}
}
TreeNode[]headerNodes=新的TreeNode[row.Count];
for(int i=0;i
我相信一定有一些简单的方法可以从单个节点中删除复选框,而不是一次删除所有复选框,我只是在任何地方都找不到它 已经有一段时间没有这样做了,但以前不可能删除单个复选框。解决方法是关闭复选框并使用图形,而不是使用单击事件在选中和未选中之间切换。甚至可以扩展到更复杂的状态。已经有一段时间没有这样做了,但以前不可能删除单个复选框。解决方法是关闭复选框并使用图形,而不是使用单击事件在选中和未选中之间切换。甚至可以扩展到更复杂的状态。是否可以灰显节点或仅显示复选框以使其不可选择?我不知道。图形选项是一个不错的选择。它给你完全的控制。是否有可能灰色的节点或只是复选框,使其成为不可选择的?我不知道。图形选项是一个不错的选择。它给你完全的控制。