1
我有两个文本框是在加载时动态创建的。用户可以点击添加按钮,每次添加两个新的文本框到界面。当这些文本框被添加时,它们也被添加到列表中。我正在尝试向我的项目添加错误处理,以确保在用户点击保存之前填写每个文本框。如果文本框为空,则应显示一个消息框:请填写所有消息框。 如果在文本框中填写了一个消息框,应显示:您确定要进行此更改吗? 如果用户单击是,则应保存更改,并且消息框“更改已保存”应显示为 如果用户单击否,则消息框应消失且未保存更改。 该消息框是不演戏我期待 这里的方式是我到目前为止有:C#Winforms动态创建文本框的错误处理
创建文本框:
private void ADDUserInfo(int rowCount, string password = "", string username = "")
var Password = new TextBox();
Password.Text = password;
Password.Name = "Password" + rowCount;
var Username = new TextBox();
Username.Text = username;
Username.Name = "Username" + rowCount;
CaeUsersPanel.Controls.Add(Username);
CaeUsersPanel.Controls.Add(Password);
UsernameTextBoxes.Add(Username);
PasswordTextboxes.Add(Password);
}
文本框的列表中的全局声明:
List<TextBox> UsernameTextBoxes = new List<TextBox>();
List<TextBox> AliasTextBoxes = new List<TextBox>();
List<TextBox> PasswordTextboxes = new List<TextBox>();
保存按钮:
for (int i = 0; i < UsernameTextBoxes.Count; i++)
{
var userName = UsernameTextBoxes[i];
var password = PasswordTextboxes[i];
_config.Environment.Users.User.Add(new EnvironmentUsersUser() { alias = aliasName.Text, userName = userName.Text, password = password.text, toDisplay = true });
}
configmgr.Serilize<Config>(_configurationTabData._objectSources.getEnviromentFileName, _config);
for (int i = 0; i < UsernameTextBoxes.Count; i++)
{
var userName = UsernameTextBoxes[i];
var password = PasswordTextboxes[i];
if (aliasName.Text == "" || userName.Text == "" || password.Text == "")
{
MessageBox.Show("All fields are required!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
DialogResult result = MessageBox.Show("Are you sure you want to make these changes", "Warning", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
configmgr.Serilize<Config>(_configurationTabData._objectSources.getEnviromentFileName, _config);
MessageBox.Show("Changes Saved")
}
}
}
这工作谢谢你! – GFDSRFV
'Enumerable.All'是一个更通用的,并且与此谓词相同 –
@Aleks Andreev相同的代码,但在这种情况下开销较小,但您是对的。 –