大家好,可能是一个简单的。 使用C#.Net 4.0和Visual Studio 2012 Ultimate。
获得以下代码:
string part = "";
part = txtIOpart.Text;
txtBatchCV.Text = txtBatchIO.Text;
txtPartCV.Text = part;
txtExternalCV.Text = Sqlrunclass.SplitSpec_External(part, pg);
txtInternalCV.Text = Sqlrunclass.SplitSpec_Internal();
txtABSCV.Text = Sqlrunclass.SplitSpec_cvABS();
txtOilCV.Text = Sqlrunclass.SplitSpec_OilSeal();
txtBarCV.Text = "*" + Sqlrunclass.SplitInfo_ASno(part, pg) + "*";
txtBarNumCV.Text = txtBarCV.Text;
txtLocnCV.Text = Sqlrunclass.SplitInfo_Location();
txtFitsCV.Text = Sqlrunclass.SplitInfo_Desc();
txtHeightCV.Text = Sqlrunclass.SplitSpec_Height();
txtDiameterCV.Text = Sqlrunclass.SplitSpec_Diameter();
txtCirclitCV.Text = Sqlrunclass.SplitSpec_Circlit();
picTypeCV.Image = ftpclass.Download("CVspecType" + Sqlrunclass.SplitSpec_TypeCV() + ".jpg", "ftp.shaftec.com/Images/TypeJpg", "0095845|shafteccom0", "4ccc7365d4");
if (txtBatchCV.Text == null || txtBatchCV.Text == "")
{
txtBatchCV.Text = "ALL";
}
正如你在底部看到我正在检查批处理,但我需要检查由一堆方法设置的所有数据。如果它看到null或空白txt,则每个都将具有不同的txt输出。反正有没有缩短这段代码?
答案 0 :(得分:3)
尝试,txtBatchCV.Text
例如
//Just for null
txtBatchCV.Text = (txtBatchCV.Text ?? "ALL").ToString();
//for both null and empty string
txtBatchCV.Text = string.IsNullOrEmpty(txtBatchCV.Text) ? "ALL": txtBatchCV.Text;
答案 1 :(得分:3)
您可以遍历所有文本框
foreach (var txt in form.Controls.OfType<TextBox>())
{
switch(txt.Id){
case "txtBatchCV":
// Do whatever you want for txtBatchCV e.g. check string.IsNullOrEmpy(txt.Text)
break;
}
}
我从这里借用了上述内容:
How do I loop through all textboxes and make them run corresponding actions from action dictionary?
为了回应我从蒂姆那里得到的评论,我添加了一些代码来解释你能做些什么。我的代码示例从来就不是一个完整的解决方案。
答案 2 :(得分:1)
对于初学者,您可以使用string.IsNullOrEmpty(txtBatchCV.Text)
,这是一种便利的方法,基本上可以完成您在if检查中的操作。
答案 3 :(得分:1)
我会尝试这样的事情:
void SetDefaultIfNull(TextBox txt, string defaultVal)
{
if (string.IsNullOrWhitespace(txt.Text))
txt.Text = defaultVal;
}
然后将每个文本框和默认值传递给方法。
答案 4 :(得分:1)
您至少可以使用以下方法之一:
string.IsNullOrEmpty(txtBatchCV.Text)
或
string.IsNullOrWhitespace(txtBatchCV.Text)
答案 5 :(得分:1)
TextBox.Text
永远不会null
,它会返回""
。如果您的方法返回null
,则可以使用null-coalescing operator
:
string nullRepl = "ALL";
txtExternalCV.Text = Sqlrunclass.SplitSpec_External(part, pg) ?? nullRepl;
txtInternalCV.Text = Sqlrunclass.SplitSpec_Internal() ?? nullRepl;
txtABSCV.Text = Sqlrunclass.SplitSpec_cvABS() ?? nullRepl;
txtOilCV.Text = Sqlrunclass.SplitSpec_OilSeal() ?? nullRepl;
txtLocnCV.Text = Sqlrunclass.SplitInfo_Location() ?? nullRepl;
txtFitsCV.Text = Sqlrunclass.SplitInfo_Desc() ?? nullRepl;
txtHeightCV.Text = Sqlrunclass.SplitSpec_Height() ?? nullRepl;
txtDiameterCV.Text = Sqlrunclass.SplitSpec_Diameter() ?? nullRepl;
txtCirclitCV.Text = Sqlrunclass.SplitSpec_Circlit() ?? nullRepl;