我遇到了问题。我正在尝试用C#(Windows Form Application)创建一个应用程序,我陷入困境。我想像照片一样做一个登录表单。对于用户名我有一个组合框,我可以选择用户,但对于密码我想放置一些按钮(如在照片中),当我按下按钮1,例如,我想有一个字符串是1.之后我会放置2,我想将1和2连接成该字符串。你知道我怎么能这样做
在您的情况下,我相信每个按钮都有一个事件。在每个事件中,您可以将值与全局变量相加或直接更改文本框。像这样:
txtPassword.Text += "0"; //the 0 button
它将更改文本框值,当您单击“登录”时,您可以将txtPassword.Text作为最终字符串。
您还可以全局声明字符串或StringBuilder,并在每次单击按钮时附加值,这样就不会直接更改文本框文本。
使用StringBuilder来连接字符串。
StringBuilder builder = new StringBuilder();
builder.Append(a);// where "a" is your input character
每当你得到一个新的字符输入调用builder.Append(a);
最后,通过调用builder.ToString();得到最后一个字符串;
作为@LeoFormaggi答案的变体,你可以为所有数字按钮设置一个事件处理程序(即每个按钮的点击处理程序指向的按钮)。然后,在处理程序中:
var buttonText = (sender as Button)?.Text;
txtPassword.Text += buttonText ?? String.Empty;
不要忘记将该文本框设为密码字段(通过设置PasswordChar属性)。
你不想在这里烦扰StringBuilder。它通常是连接字符串的正确工具,但在这种情况下它不会购买任何东西,因为您希望结果立即出现在文本框中。在这种情况下,它会毫无理由地增加开销。
我想感谢你,我做了我的解决方案:
`private void nb6_Click(object sender,EventArgs e){password_box.Text + =“6”; }`
在我拥有的每个按钮事件中,password_box(这是我的文本框)并且每次我想要的字符串连接(在这种情况下是数字6)
谢谢你,祝你有美好的一天 。 :)