如何在datagridview中传递子字符串或单个字符

时间:2015-07-22 10:21:59

标签: c# string winforms datagridview pass-by-value

如何在datagridview中传递子字符串或单个字符。 例如:我有一个像'animal?species'这样的字符串我需要将'animal'传递给datagridview的另一个单元格,我该怎么做? 任何帮助都会很棒,谢谢。

修改

private void keypress1(object sender, KeyPressEventArgs e)
    {
        if (dataGridView1.CurrentCell.ColumnIndex == 0 || dataGridView1.CurrentCell.ColumnIndex == 1)
        {
            if (e.KeyChar >= 48 && e.KeyChar <= 57 && e.KeyChar==8 ) {}
            else
            {                   
                e.Handled = true;                    
            }
        }
        if(dataGridView1.CurrentCell.ColumnIndex==4)
        {
            string test = "";
            if (e.KeyChar == 92)
            {
                dataGridView1.CurrentRow.Cells[7].Value = null;
                //dataGridView1.Columns["dom"].ReadOnly = true;  bad code
                test = dataGridView1.CurrentCell.Value.ToString();
                string[] splittedtest = test.Split('?');
                for (int i = 0; i < splittedtest.Length; i++)
                {
                    dataGridView1.Rows[dataGridView1.SelectedRows[0].Index].Cells[7].Value = splittedtest[i];
                }
            }

        }
    } 

当涉及test = dataGridView1.CurrentCell.Value.ToString(); nullexception时。我想原因是价值尚未提交。

1 个答案:

答案 0 :(得分:1)

你可以使用'拆分'功能。这可能会给你提示继续。

string test = "animal?species";
string [] splittedtest = string.Split(new Char[] { '?', '\' },
                             StringSplitOptions.RemoveEmptyEntries);
//string[] splittedtest = test.Split('?');
for(int i = 0;i<splittedtest.length;i++)
{
   // do your stuffs like below,  
   // DataGridView1.Rows[DataGridView.SelectedRows[0].Index].Cells[X].Text = splittedtest[i];
   // where X is the column you want to read. 
}