项目概述:
A一直在撰写SaveDetails() function
,其中包含来自多个input
的所有用户Textboxes
并将其存储在我的私有字段中。该函数需要首先检查所有验证是否成功,如果为true,则需要将值存储在新创建的实例中。如果失败,则消息需要向用户显示存在错误。
private void btn_SaveDetails_Click_1(object sender, EventArgs e)
{
try
{
foreach (Control c in panel1.Controls) // Loop through all controls
{
if (errorProvider1.GetError(c).Length > 0) // Look for errorProviders
{
isValid = false; // if Found, change Var to False
MessageBox.Show("invalid entry, please revisit the form before proceding"); //Display Error Mesage
}
}
if (isValid)
{
FormValidation formValidation = new FormValidation(ID);
// takes Id on contrructs
buttonPresed = "Ok was Pressed!!";
formValidation.RName = txt_RegisteredName.Text;
formValidation.SName = txt_ShortName.Text;
formValidation.BName = txt_BuildingName.Text;
formValidation.BNumber = (int)nud_BuildingNumber.Value;
formValidation.StreetName = txt_StreetName.Text;
formValidation.Locality = txt_Locality.Text;
formValidation.Town = txt_Town.Text;
formValidation.County = txt_County.Text;
formValidation.Country = txt_Country.Text;
formValidation.Postcocde = txt_Postcode.Text;
formValidation.AltSwitch = int.Parse(txt_SwitchBoard.Text);
formValidation.Fax = int.Parse(txt_Fax.Text);
formValidation.Email = txt_Email.Text;
formValidation.ButtonType = buttonPresed;
MessageBox.Show("Indi Form Saved");
Hide();
}
}
catch (Exception b)
{
MessageBox.Show(b.ToString());
}
}
}
我目前遇到两个问题,
1)。查询:
如果用户没有输入任何值并单击保存在“空表单”上,则不会有任何ErrorProviders被标记,因此该函数不知道不完整的表单。我需要检查是否在面板上的TextBox中没有输入任何内容。有没有办法做到这一点,并检查我的表格是否为空?是否有方法检查面板上的所有控件是否为空?
第2次)。查询
我也得到System.FormatException
的例外:输入字符串格式不正确。我知道这是因为我在此转换中输入了一个字符串。
我正在从TextBox
获取我的输入,因此转换。输入任何内容时都会发生此异常,除了Int例如+,h~whitespace都会失败并给我这个例外。如有任何可能解决方案的想法?我试过tryParse
但是这似乎没有转换输入字符串。
答案 0 :(得分:1)
如果任何文本框为空,这是一种简单的测试方法
TextBox[] boxes = {
txt_RegisteredName,
txt_ShortName,
txt_BuildingName,
txt_StreetName,
txt_Locality,
txt_Town,
txt_County,
txt_Country,
txt_Postcode,
txt_SwitchBoard,
txt_Fax,
txt_Email
};
Boolean isEmpty = boxes.Where(x => x.Text.Trim().Length == 0).Any();
答案 1 :(得分:0)
对于查询1: validate textbox if empty and if number entered
对于查询2:哪个文本框失败?什么是数据类型,你想要准确传递什么?