如何在TreeView中搜索特定字符

时间:2019-06-04 13:22:01

标签: c# winforms

我在C#中有TreeView,我想抓住“:”符号后的所有内容,但我不知道在哪里或该怎么做actullay ...

    if (TV.Focused)
    {
        string str = "";
        string NameStr = "";
        if (TV.SelectedNode.Text == "دليل الحسابات")
            return;
        for (int i = 0; i <= TV.SelectedNode.Text.Length - 1; i++)
        {
            if (TV.SelectedNode.Text.ToCharArray(i, 1).ToString() == " ")
            {
                if (TV.SelectedNode.Text.ToCharArray(i + 1, 1).ToString() == ":")
                    break;
            }
            str += TV.SelectedNode.Text.ToCharArray(i, 1).ToString();
            NameStr = TV.SelectedNode.Text.ToString().Substring(str.Length + 2, TV.SelectedNode.Text.ToString().Length - str.Length - 2);
        }
        txtAccID.Text = str;
        txtAccName.Text = NameStr;
    }
}

1 个答案:

答案 0 :(得分:0)

这可以通过几种方式处理

使用Split

var input = "hello:world";
var split = input.Split(':');
Console.WriteLine(split[0]); //outputs "hello"
Console.WriteLine(split[1]); //outputs "world"

或使用IndexOf

var input = "hello:world";
var positionOfColon = input.IndexOf(':');
var afterColon = input.Substring(colonPosition + 1, input.Length - colonPosition - 1);
Console.WriteLine(afterColon); //outputs "world"

如评论中所述,您可能需要考虑输入中包含多个冒号的情况。

例如,如果您有字符串hello:world:three,则Split将创建一个包含三个项hello worldthree的数组,但可能不会成为你想成为的人。如果您想在 first 冒号之后输入所有内容,则最好使用IndexOf,它会返回world:three。如果只想最后一个冒号后面是什么,则可以使用LastIndexOf而不是IndexOf,那将只返回three