Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将换行符从C#DataGridView中删除?_C#_Datagridview - Fatal编程技术网

如何将换行符从C#DataGridView中删除?

如何将换行符从C#DataGridView中删除?,c#,datagridview,C#,Datagridview,我在产品中有一个C#DataGridView,用户有时会将字符串粘贴到其中。在一定比例的时间内,这些字符串包含换行符(回车符),这会进一步影响后续处理。我希望在输入或粘贴字符串时自动从字符串中删除这些字符 我将CellParsing事件视为问题的解决方案,但不想干扰我的所有其他处理(这是一个相当复杂的网格)。这是解决问题的适当办法吗 谢谢。如果您的数据网格视图已绑定到数据源,则唯一的方法是删除数据集中不需要的新行,即数据映射器/转换层中的新行 如果手动添加行,可以替换中不需要的新行。使用逐个添加

我在产品中有一个C#DataGridView,用户有时会将字符串粘贴到其中。在一定比例的时间内,这些字符串包含换行符(回车符),这会进一步影响后续处理。我希望在输入或粘贴字符串时自动从字符串中删除这些字符

我将CellParsing事件视为问题的解决方案,但不想干扰我的所有其他处理(这是一个相当复杂的网格)。这是解决问题的适当办法吗


谢谢。

如果您的数据网格视图已绑定到数据源,则唯一的方法是删除数据集中不需要的新行,即数据映射器/转换层中的新行

如果手动添加行,可以替换
中不需要的新行。使用
逐个添加
循环。替换

const string NewlineReplacement = " ";

dataGridView1.Rows.Add(col1Value.Replace(Environment.NewLine, NewlineReplacement),
                       col2Value.Replace(Environment.NewLine, NewlineReplacement));

您可以使用
CurrentCellDirtyStateChange
事件

该事件将在用户更改任何单元格后引发

请参阅我编写的示例,该示例还显示了如何提取请求单元格的列和行

private void datagridview1_CurrentCellDirtyStateChanged(Object sender, EventArgs e)

    {
        int rowNum = ((DataGridView)sender).CurrentCell.RowIndex;
        int colNum = ((DataGridView)sender).CurrentCell.ColumnIndex;

        // do here what ever you wish: Replace, Trim, etc...
         dataGridView1.Rows[rowNum].Cells[colNum].Value = dataGridView1.Rows[rowNum].Cells[colNum].Value + "...";
    }
另外,不要忘记为DataGridView添加处理程序:

dataGridView1.CurrentCellDirtyStateChanged += datagridview1_CurrentCellDirtyStateChanged;

如何添加行?手动?或者通过数据源?在这种情况下,我不添加行,只是编辑现有行。