ruwan_t Ответов: 1

выделенный в виде дерева узлов, используя текстовое поле Значение


Я нахожу и выделяю значение узла дерева, используя приведенный ниже код. Я должен был дать полное значение узла в качестве текста поиска.Поэтому мне нужно дать часть значения узла и выделить все совпадение узла с заданным текстом. Кто-нибудь может мне помочь?

мой код
private void button2_Click(object sender, EventArgs e)
{
FindByText();
}
private void FindByText()
       {
           TreeNodeCollection nodes = treeView1.Nodes;
           foreach (TreeNode n in nodes)
           {
               FindRecursive(n);
           }
       }

       private void FindRecursive(TreeNode treeNode)
       {
           foreach (TreeNode tn in treeNode.Nodes)
           {
               // if the text properties match, color the item
               if (tn.Text == this.textBox.Text)
               {
                   tn.BackColor = Color.Yellow;
                  
               }
               FindRecursive(tn);
           }
       }

С уважением
Я Atapattu

Sergey Alexandrovich Kryukov

Что вы подразумеваете под "выделением"? Отбор? Что-нибудь еще?
—СА

1 Ответов

Рейтинг:
0

BillWoodruff

Вы можете использовать:

if (tn.Text.Contains(textBox1.Text))
{
    tn.BackColor = Color.Yellow;

}
Я бы предложил вам создать переменную, чтобы удерживать строку поиска вне вашей рекурсивной процедуры для оптимизации поиска ... если вы выполняете поиск по большому количеству древовидных узлов.

Я замечаю, что ваш код делает это нет изучение корневых узлов дерева: это дизайнерское решение ?


Member 14913784

Привет Билл Вудрафф,

Когда я попытался использовать Contains,он просто позволил выбрать один символ, а затем перейти к этой поисковой букве в treeview, но я хочу сделать это следующим образом:

Если я выполняю поиск по "приложению", то он должен дать мне результат в соответствии с примером текста поиска: "Apple" , "приложение" и "приложение".

Так как же я могу это сделать? Не могли бы вы предложить мне решение для этого, я был бы признателен.

BillWoodruff

Если вы опубликуете новый вопрос на QA, точно описывая, что вы хотите, чтобы произошло, я отвечу. Обязательно опишите, какие узлы вы хотите найти и раскрасить: все узлы дерева ? только дочерние узлы текущего выбранного узла ? только узлы на определенном уровне ?

Опишите точно, что такое "совпадение": в любом месте текста узла ?

Member 14913784

Да,в любом месте узла текст и даже он может быть на любом уровне

BillWoodruff

Опубликуйте новый вопрос с подробностями, которые я описал выше.