我尝试下面的代码运行正常,但请参考图片。
private void CopyTextBoxToDataGridView()
{
// Split the lines from the textBox1 text
string[] lines = textBox1.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
if (dataGridView1.Columns.Count == 0)
{
dataGridView1.Columns.Add("Column1", "Column 1");
dataGridView1.Columns.Add("Column2", "Column 2");
dataGridView1.Columns.Add("Column3", "Column 3");
}
dataGridView1.Rows.Clear();
for (int i = 0; i < lines.Length; i++)
{
string[] splitLine = lines[i].Split(new char[] { '-', ']' });
string col1 = splitLine.Length > 0 ? splitLine[0] : string.Empty;
string col2 = splitLine.Length > 1 ? splitLine[1] : string.Empty;
string col3 = splitLine.Length > 2 ? splitLine[2] : string.Empty;
// Check if the next line starts with '['
if (i + 1 < lines.Length && lines[i + 1].StartsWith("["))
{
col3 = "1"; // Set "1" in column 3
}
dataGridView1.Rows.Add(col1.Replace("[", "").Replace("]", ""), col2.Replace("[", "").Replace("]", ""), col3);
}
}
如果文本框输入未应用像 2 这样的计时,则默认情况下第 3 列应为 1。
这很容易。只需修剪并检查值即可。 您可以添加一个简短的 if 语句,例如
(splitLine[2].toString() != "2" ? "1" : "2")
或者检查 (string.IsNullOrEmpty(splitLine[2]) ? "1" : "2")
是否为空或为空。
但说实话...像这样添加值是非常非常糟糕的。您知道,每个人对于输入值都有自己的想法,这几乎总是会引起问题。我建议为每一列使用文本框,并在按下“应用”或“插入”按钮后,检查文本框中的每个输入是否包含您想要接受的值。
大多数错误发生在用户输入时!如果有人输入 4 而不是 4 怎么办?