private void treeView1_MouseClick(object sender, MouseEventArgs e)
{
// Get the node that was clicked
TreeNode selectedNode = treeView1.HitTest(e.Location).Node;
if (selectedNode != null)
{
}
}
Если у меня есть, например, корневой узел:
World
Когда я нажимаю на него, я вижу эти узлы:
World
|____ Blue
|____ Green
|____ Red
|____ Black
|____ yellow
Если я нажму Синий, я увижу больше узлов, например, под Синим.
World
|____ Blue
| |____ Day
| |____ Night
|____ Green
|____ Red
|____ Black
|____ yellow
Теперь, если я нажму на Blue, я получу имя выбранного узла Blue. selectedNode.Name
будет синим
И если я нажму День, я получу selectedNode.Name
День Но я хочу сделать так, чтобы если я нажму День, selectedNode
будет Синий\День или СинийДень
И если в Day есть другое имя узла 1, и я нажимаю 1, поэтому в selectedNode.Name я хочу чтобы увидеть BlueDay1 или я предпочитаю Blue\Day\1
Мне нужно это \\
, чтобы я мог использовать его как имя каталога. Проблема в том, что я использую selectedNode.Name
в качестве каталога для получения файлов:
List<string> ff = new List<string>();
private void treeView1_MouseClick(object sender, MouseEventArgs e)
{
TreeNode selectedNode = treeView1.HitTest(e.Location).Node;
if (selectedNode != null)
{
string tt = mainPath + "\\" + selectedNode.Text;
ff = DirSearch(tt);
timer1.Enabled = true;
}
}
Если я нажму на синий, то все в порядке, он получит все файлы в синем, включая подкаталоги. Но если я нажму на 1 и в 1 есть файлы, он не получит никаких файлов, так как мне нужно полное имя пути Blue\Day\1, чтобы получить файлы из 1.
Вот как я получаю файлы
static List<string> DirSearch(string sDir)
{
List<string> files = new List<string>();
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d))
{
files.Add(f);
}
DirSearch(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
return files;
}
Идея состоит в том, что если я хочу получить все файлы в синем, я нажимаю на синий, но если я хочу получить только файлы в 1, когда я нажимаю на 1, это не работает, поскольку 1 не является полным путем.
AfterSelect
вместоMouseClick
. - person Reza Aghaei   schedule 03.02.2017