2015-11-26 81 views
-1

我正在寻找一种方法来确定是否以特定方式填充文本框。以编程方式检查文本框的完整性

我有以下文本框:

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 + ">, "; 
} 

如果他们跳过周围那么什么是印刷到底会不会期望是什么。

如果你能想到的更简单的方法来做到这一切,请分享。我确信我的攻击方式非常简单和低效。

+2

问题不是很清楚,例如,你只有9个文本框?为什么不把它们放入数组中?上面的代码没有提及除X1,X2以外的其他文本框如何处理。 –

+0

我真的不明白你对问题的描述。你能否提供一个复选框的截图以及一些进一步的例子是什么意思? – Enigmativity

+1

我同意,这个问题根本不清楚。你关心用户在文本框中输入文字的顺序是什么?只要在计划实际执行价值观念之前填补了它们,为什么会这样呢?如果您希望以特定顺序输入文本,为什么首先要为用户提供多个可编辑项目?为什么不只是禁用或以其他方式防止项目中的数据输入?请通过提供一个[mcve]来改善您的问题,这个[mcve]清楚地表明您正在做什么,并精确地解释代码的作用以及与您想要的不同之处。 –

回答

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>是一个有效的格式。

我希望这是既清楚什么这个功能,而且这是为什么我的应用程序非常重要。