Объединить некоторые строки в глобальную переменную в C # - PullRequest
0 голосов
/ 09 сентября 2018

У меня проблема.Я пытаюсь сделать приложение в C # (Windows Form Application), и я застрял во что-то.Я хочу сделать форму входа, как на фотографии.Для имени пользователя у меня есть поле со списком, где я могу выбрать пользователя, но для пароля я хочу разместить несколько кнопок (как на фотографии), и когда я нажимаю кнопку 1, например, я хочу иметь строку, котораяравен 1. После этого я помещу 2, и я хочу объединить 1 и 2 в эту строку.Знаете, как я могу это сделать

The UI

Ответы [ 4 ]

0 голосов
/ 09 сентября 2018

Я хочу поблагодарить вас, я сделал свое решение так:

`private void nb6_Click (отправитель объекта, EventArgs e) { password_box.Text + = "6"; } `

в каждом событии кнопки, которое у меня есть, password_box (который является моим текстовым полем) и я объединяю каждый раз строку, которую я хочу (в данном случае это номер 6)

Спасибо и хорошего дня. :)

0 голосов
/ 09 сентября 2018

В вашем случае, я полагаю, у вас есть одно событие для каждой кнопки. В каждом случае вы можете просто суммировать значения в глобальной переменной или напрямую изменять текстовое поле. Как это:

txtPassword.Text += "0"; //the 0 button

Это изменит значение текстового поля, и когда вы нажмете «Войти», вы можете получить txtPassword.Text в качестве окончательной строки.

Вы также можете объявить строку или StringBuilder глобально и добавлять значение при каждом нажатии кнопки, так как это не изменит текст текстового поля напрямую.

0 голосов
/ 09 сентября 2018

В качестве варианта ответа от @LeoFormaggi у вас может быть один обработчик событий для всех числовых кнопок (т. Е. Тот, на который указывает обработчик нажатия каждой кнопки). Затем в обработчике:

var buttonText = (sender as Button)?.Text;
txtPassword.Text += buttonText ?? String.Empty;

Не забудьте сделать это текстовое поле паролем (установив свойство PasswordChar).

Вы не хотите беспокоиться о StringBuilder здесь. Обычно это правильный инструмент для объединения строк, но в этом случае он ничего не покупает, так как вы хотите, чтобы результат сразу появлялся в текстовом поле. В этом случае это просто добавит накладные расходы без веской причины.

0 голосов
/ 09 сентября 2018

Используйте StringBuilder для объединения строк.

StringBuilder builder = new StringBuilder();
builder.Append(a);// where "a" is your input character 

И всякий раз, когда вы получаете новый ввод символов, строитель вызовов. Приложение (а);

В конце концов вы получите окончательную строку, вызвав builder.ToString ();

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