Datagridview.SelectedCells命令

我正在研究一个包含很多DataGridViews的C#应用​​程序,这些DataGridViews是空的。 用户必须从excel中复制/粘贴数据。 我做的是以下几点:

int i = 0;
string s = Clipboard.GetText();

// Separate lines
string[] lines = Regex.Split(s, "rn");
foreach (string line in lines)
{
    // Separate each cell
    string[] cells = line.Split('t');
    foreach (string cell in cells)
    {
        // If we selected as many cells as copied
        if (dataGridView.SelectedCells.Count == (lines.Length-1)*(cells.Length))
        {
            dataGridView.SelectedCells[i].Value = cell;
            i++;
        }
    }
}

问题是,如果我复制这样的东西(在Excel中):

1   2   3
4   5   6

我的datagridview看起来像:

6   4   2
5   3   1

我真的不知道该怎么做才能解决这个问题......提前致谢


更换

dataGridView.SelectedCells[i].Value = cell;

dataGridView.SelectedCells[(dataGridView.SelectedCells.Count-1) - i].Value = cell;


  • 将剪贴板数据转换为二维数组。 记住每个维度的长度。
  • 遍历选定的单元格并找到左上角和右下角的单元格。 从中你可以确定它的大小合适。
  • 使用双循环,将剪贴板数据从阵列位置直接映射到单元格坐标(不使用选定单元格),并使用单元格坐标作为偏移量。
  • 或者,您可以创建一个包含属性Row,Col和Value的小类/结构的List,而不是一个2维数组。 然后只是遍历它而不是双循环。

    链接地址: http://www.djcxy.com/p/10673.html

    上一篇: Datagridview.SelectedCells order

    下一篇: Execution Time Slower with each Iteration of the same SPROC