Как я могу эффективно обрабатывать отредактированные строки? - PullRequest
1 голос
/ 17 января 2020

Я заметил что-то в VS / C#, что для меня немного серое? надеялся, что кто-нибудь сможет объяснить. Я следовал инструкциям в Интернете, чтобы настроить Treeview Control, скопировал и вставил код, в котором говорится, что он обрабатывает метку, и прошел через определенные проверки, как вы увидите ниже, однако желаемого результата здесь не совсем.

Что происходит: кажется, что код проверяет только редактирование, а не метку? потому что, если метка не изменилась, я начинаю видеть, что появляются сообщения, даже если значение не равно нулю, длина> 0 и НЕ содержит специальных символов ... что заставляет меня поверить, что он проверяет только новый значение?

        private void TreeSlabs_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            if (e.Label != null)
            {
                if (e.Label.Length > 0)
                {
                    if (e.Label.IndexOfAny(new char[] { '@', '.', ',', '!' }) == -1)
                    {

                        // Stop editing without canceling the label change.
                        e.Node.EndEdit(false);   


                    }
                    else
                    {
                        /* Cancel the label edit action, inform the user, and 
                            place the node in edit mode again. */
                        e.CancelEdit = true;
                        MessageBox.Show("Invalid tree node label.\n" +
                           "The invalid characters are: '@','.', ',', '!'",
                           "Node Label Edit");
                        e.Node.BeginEdit();
                    }
                }
            }
            else
            {
                /* Cancel the label edit action, inform the user, and 
                    place the node in edit mode again. */
                e.CancelEdit = true;
                MessageBox.Show("Invalid tree node label.\nThe label cannot be blank",
                   "Node Label Edit");
                e.Node.BeginEdit();
            }
        }

Может ли кто-нибудь проверить мою теорию?

Что может быть лучше в этом коде для проверки значения? я знаю, что значения, входящие в дерево, "проверяются" в соответствии с вышеуказанными условиями ... так что на самом деле, если метка не изменилась, она все равно должна разрешить редактирование, но это не будет ...?

Любой совет , как всегда высоко ценится.

Большое спасибо заранее SO сообщества.

Джек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...