我现在正在使用VisualStudio制作应用程序,并且我正在使用XAML和C#。 我正在创建一个应用程序,您可以通过单击按钮输入密码(仅限数字)。
如果您点击"按钮1" ,它会在标签中写下" 1" ,如果您然后点击"按钮2" ,它会添加" 2" ,使其" 12& #34; 总计。
如果输入正确的代码,例如&#34; 331122&#34;,,则必须按一个按钮,系统会弹出一条消息,说明它是正确的代码。< / p>
如果您失败,那么您将收到错误消息。
我还添加了一个&#34; clear&#34; 按钮,可以消除您输入的内容。到现在为止还挺好。现在我想添加一个新按钮,它会将您带到passwindow
,您可以输入当前密码(这是默认密码:&#34; 331122&#34; )和一个新密码。
如果您在当前密码框中输入的密码与默认密码匹配,则如果您点击下面的按钮,您的默认密码将更改为您输入的新密码。
如果不正确,您会收到错误消息,说明其不正确。更改密码后,您应该可以在MainWindow
应用中输入密码(通过单击按钮)。旧密码必须完全删除,您应该可以继续更改密码。
我坚持这个。
以下代码:
string defaultCode = "331122";
public MainWindow()
{
InitializeComponent();
}
//string defaultCode = "331122";
private void knop_1_Click(object sender, RoutedEventArgs e)
{
label_Combinatie.Content += "1";
}
private void knop_2_Click(object sender, RoutedEventArgs e)
{
label_Combinatie.Content += "2";
}
private void knop_3_Click(object sender, RoutedEventArgs e)
{
label_Combinatie.Content += "3";
}
private void knop_klaar_Click(object sender, RoutedEventArgs e)
{
if ((string)label_Combinatie.Content == defaultCode)
{
MessageBox.Show("Unlocked.");
}
else
{
MessageBox.Show("You've entered the wrong code. Please try again.");
}
}
private void knop_reset_Click(object sender, RoutedEventArgs e)
{
label_Combinatie.Content = "";
}
private void knop_verander_code_Click(object sender, RoutedEventArgs e)
{
passwindow w = new passwindow();
w.ShowDialog();
}
public passwindow w { get; set; }
private void button_changePw_Click(object sender, RoutedEventArgs e)
{
string new_code;
new_code = w.textBox_new_code.Text;
defaultCode = w.textBox_current_code.Text;
if (w.textBox_current_code.Text == defaultCode && w.textBox_new_code.Text == new_code)
{
defaultCode = "";
new_code += defaultCode;
new_code = "";
MessageBox.Show("Password changed.");
}
else
{
MessageBox.Show("You've entered an incorrect code. Please try again.");
}
}
有些代码是荷兰语,所以请允许我翻译它们。
答案 0 :(得分:0)
我注意到您的代码中有两个问题可能会导致您的问题。
第一个:
private void knop_verander_code_Click(object sender, RoutedEventArgs e)
{
passwindow w = new passwindow();
w.ShowDialog();
}
public passwindow w { get; set; }
在方法knop_verander_code_Click
中,您声明了一个局部变量w
,而在您的类中,您声明了一个具有相同名称的属性 - 局部变量将隐藏该属性。
第二期:
defaultCode = "";
new_code += defaultCode;
new_code = "";
此处您基本上已清除defaultCode
,不会向new_code
添加任何内容,而且您也清除了new_code
。