以编程方式检查文本框的完整性

时间:2015-11-26 00:42:12

标签: c# textbox

我正在寻找一种方法来确定文本框是否以特定方式填充。

我有以下文本框:

X1 Y1 Z1
X2 Y2 Z2
X3 Y3 Z3

用户需要不断输入。例如,如果只有X1,Y1有文本,那么它是有效的。如果X1,Z1有文字而Y1没有,那么它就无效了。

原因是:

string G1
if(!string.IsNullOrWhiteSpace(X1.Text) && string.IsNullOrWhiteSpace(Y1.Text))
{
  G1 = "<" + X1.Text + ">";
}
else if(!string.IsNullOrWhiteSpace(X1.Text) && !string.IsNullOrWhiteSpace(Y1.Text))
{
  G1 = "<" + X1.Text + ">, ";
}

如果他们跳过,那么最后打印的内容将不会是预期的。

如果您能想到更简单的方法来完成所有这些,请分享。我确信我解决这个问题的方式非常简单和低效。

1 个答案:

答案 0 :(得分:0)

我找到的答案是使用文本框的数组,然后迭代它以确定填写框的文本。然后将这些框中的文本添加到列表中。

最后,我使用了该列表中的所有项目,使得最终输出正确。

我最后使用的代码:

string[] cells = new string[] { X1.Text, Y1.Text, Z1.Text, X2.Text, Y2.Text, Z2.Text, X3.Text, Y3.Text, Z3.Text };
List<string> final_cells = new List<string>();
//Process array to determine which cells are full, adds full cells to list
for (int i = 0; i < cells.Length; i++)
{
  if(cells[i].Length == 0)
  {
   //If cell is empty, continue to the next one
   continue;
  }
  else
  {
   // If cell is full add its contents to the final_cells list
   final_cells.Add(cells[i]);
  }
}
//Join the list to one string
string content = string.Join(">, <", final_cells);

另外,我很抱歉,我没有更好地解释原始情况。

最终应用程序的目的是以特定格式输出文本以供Minecraft插件读取。 3x3的文本框用于模仿游戏中的制作网格。

应用程序的这部分应该添加的配方类型不需要使用9个项目/块,并且没有形状(因此在用户输入每个项目名称的技术上并不重要)。因此,必须完全忽略空盒子,并且程序需要知道接下来是否有什么东西,所以我不能简单地说食谱在第一个空盒子处结束。

<item1> <item2>的输出无效,格式正确为<item1>, <item2>。但是输入也可以是单个项目...因此<only_item>是有效格式。

我希望很清楚这个功能是什么,以及为什么这对我的应用很重要。