一周前我刚开始学习编程语言C#,用的是带win Forms的Visual Studio程序,几天来一直遇到问题。
我想将一个进度条连接到不同的文本框。这样,随着每个文本框的填充,进度条会增加。当文本被删除时,进度条会再次下降。到目前为止,我只设法让进度条增加一般或进度条随着文本框中的每个字母增加。
- 文本框是Vorname,Nachname,PLZ,沃诺尔特,豪斯努默,街 *
- 进度条是最棒的 *
private void button1_Click(object sender, EventArgs e)
{
Fortschrittsanzeige.Dock = DockStyle.Bottom;
Fortschrittsanzeige.Maximum = 60;
Fortschrittsanzeige.Minimum = 0;
Fortschrittsanzeige.Style = ProgressBarStyle.Continuous;
if (
Vorname.Text.Length <= 0 ||
Nachname.Text.Length <= 0 ||
PLZ.Text.Length < 4 ||
Wohnort.Text.Length <= 0 ||
Hausnummer.Text.Length <= 0 ||
Straße.Text.Length <= 0
)
{
textBox7.Text = ("Bitte überprüfe deine Eingabe");
}
else
{
Sendebutton.Text = "Gesendet";
textBox7.Text = "Vielen Dank" + Vorname.Text + " " + Nachname.Text + ", wir
haben deine Daten erhalten.";
}
if (Vorname.Text.Length <= 0)
{
Vorname.BackColor = Color.IndianRed;
}
else
{
Vorname.BackColor = Color.White;
Fortschrittsanzeige.Value += 10;
}
if (Nachname.Text.Length <= 0)
{
Nachname.BackColor = Color.IndianRed;
}
else
{
Nachname.BackColor = Color.White;
Fortschrittsanzeige.Step += 10;
}
if (PLZ.Text.Length < 4)
{
PLZ.BackColor = Color.IndianRed;
}
else
{
PLZ.BackColor = Color.White;
Fortschrittsanzeige.Step += 10;
}
if (Wohnort.Text.Length <= 0)
{
Wohnort.BackColor = Color.IndianRed;
}
else
{
Wohnort.BackColor = Color.White;
Fortschrittsanzeige.Step += 10;
}
if (Hausnummer.Text.Length <= 0)
{
Hausnummer.BackColor = Color.IndianRed;
}
else
{
Hausnummer.BackColor = Color.White;
Fortschrittsanzeige.Step += 10;
}
if (Straße.Text.Length <= 0)
{
Straße.BackColor = Color.IndianRed;
}
else
{
Straße.BackColor = Color.White;
Fortschrittsanzeige.Step += 10;
}
}
2条答案
按热度按时间kq0g1dla1#
可以按如下方式处理每个TextBox上的TextChanged事件
并在类中添加私有属性
您可以创建一个函数来优化它,并且不需要重复代码
bxjv4tth2#
以下是一些提示,帮助您开始使用WinForms,并使使用ProgressBar连接多个TextBox变得更加容易。
Form
上的文本框(和其他控件)可以在窗体的Controls
集合中找到。例如,在构造函数表单中,您可以遍历所有文本框,并为每个文本框附加一个
TextChanged
处理程序。System.Linq
减少了匹配和排序等操作所需的代码量。我们所能做的是,每当 * 任何 * 文本框更改时,基于 * 所有 * 文本框执行验证。
该处理程序允许“特殊情况”,如果更改的值不再有效,将使
Fortschrittsanzeige
返回。当所有文本框均有效时,隐藏
Fortschrittsanzeige
并启用Sendebutton
。