Как сделать текстовое поле равным всем буквам слева от определенной буквы или символа из другого текстового поля в C #

Я пытаюсь найти простой способ сделать текстовое поле равным всем буквам слева от «-» в другом текстовом поле. По сути, если конечный пользователь вводит blah-test в textbox1, я бы хотел, чтобы textbox2 равнялся blah. Я пробовал операторы if и подстроки на основе количества буквенных позиций (то есть подстроки (0, 5); однако это получилось очень длинным и непрактичным, поскольку слова, введенные в текстовое поле1, могут быть любой длины.

Спасибо,

DFM


person Community    schedule 25.05.2009    source источник


Ответы (2)


это очень просто

выберите и дважды щелкните событие OnTextChange в текстовом поле1

Напишите этот код внутри textbox1_OnTextChange:

string text = textbox1.Text;
textbox2.text = text.Substring(0, text.indexOf("-"));

и вы сделали!

person Makach    schedule 25.05.2009
comment
Этот код вызовет исключение, если в текстовом поле 1 нет символа «-». - person Fredrik Mörk; 25.05.2009
comment
Спасибо - это направит меня в правильное русло. Теперь мне нужно улучшить этот код, чтобы textbox3 получал все буквы между - и другой -, textbox4 получал все буквы между вторым и третьим -. По сути, textbox1 может иметь строку Test-Test1-Test2-Test3 и т. Д. Каждый Textbox2 и выше будет содержать часть строки textbox1 (между ними -). Кроме того, я вставлю, если для обработки нет -. Будем признательны за любые дополнительные предложения. Спасибо, DFM - person ; 25.05.2009
comment
После прочтения ваших комментариев кажется, что String.Split вам действительно нужен. массив, возвращаемый функцией split, будет содержать проанализированные строки для каждого текстового поля, которое необходимо заполнить. - person Gishu; 25.05.2009
comment
Спасибо, Гишу - я только что использовал Google C # String.Split, и это похоже на то, что мне нужно для нескольких -. Не могу поверить, что сегодня я не смог найти этот метод. Спасибо, - person ; 25.05.2009

Попробуй это:

if(textbox2.text.Contains("-"))
{
  textbox1.text = textbox2.text.Split("-")[0];
}

Здесь мы сначала проверяем, содержит ли текстовое поле2 символ -, и если это так, мы разделяем текст на две части и устанавливаем текст текстового поля1 в ту часть, которая находится слева от первого символа -.

person Rune Grimstad    schedule 25.05.2009
comment
Спасибо за ответ - я должен был включить это в исходный вопрос, конечные пользователи смогут вводить строку с несколькими -; следовательно, строка может быть test-test1-test2-test3 и т. д. Она фактически соответствует каталогу файлов (то есть C: / Test / Test1 / Test2 и т. д.). Теперь, когда я понял, как это сделать, я смогу улучшить код, чтобы прочитать больше -; тем не менее, ваши дополнительные предложения приветствуются. Спасибо, DFM - person ; 25.05.2009