You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TextBox转DataGridView代码优化:未指定计时值时Column3默认设为1

优化后的CopyTextBoxToDataGridView实现

以下是满足需求的优化代码,当TextBox输入未指定计时值时,DataGridView的Column3会默认填充为1:

private void CopyTextBoxToDataGridView()
{
    // 分割TextBox中的每行内容,排除空行
    string[] lines = textBox1.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

    // 初始化DataGridView列(仅首次执行)
    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[] { '-', ']' }, StringSplitOptions.RemoveEmptyEntries);
        
        // 提取并清理各列内容
        string col1 = splitLine.Length > 0 ? splitLine[0].Trim('[', ']') : string.Empty;
        string col2 = splitLine.Length > 1 ? splitLine[1].Trim('[', ']') : string.Empty;
        string col3 = splitLine.Length > 2 ? splitLine[2].Trim() : string.Empty;

        // 核心优化:未指定有效计时值时,默认设为1
        if (string.IsNullOrWhiteSpace(col3) || !int.TryParse(col3, out _))
        {
            col3 = "1";
        }

        // 保留原有业务逻辑:若下一行以[开头,Column3设为1
        if (i + 1 < lines.Length && lines[i + 1].StartsWith("["))
        {
            col3 = "1";
        }

        dataGridView1.Rows.Add(col1, col2, col3);
    }
}

关键优化点

  • 分割文本时加入StringSplitOptions.RemoveEmptyEntries,避免空行、空分割项干扰
  • 用Trim('[', ']')替代多次Replace操作,更简洁高效
  • 新增默认值判断逻辑:只要Column3的取值为空、空白字符,或者无法转换为有效整数,就自动设为"1"
  • 保留原有的下一行判断逻辑,确保原有业务逻辑正常运行

内容的提问来源于stack exchange,提问作者Varta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:05:18