Добавить список <string>в строки DataGridView - PullRequest
0 голосов
/ 02 октября 2019

Я новичок в использовании компонента DataGridView, я уже использовал его один раз и сумел выполнить эту задачу, но забыл, как мне это удалось.

В основном я хотел бы прочитать значения изтекстовый файл, который отформатирован следующим образом: line 1, line 2, line 3

Вот код, который у меня есть в настоящее время:

List<string> tokens = new List<string>();
private void dataGridView1_DragDrop(object sender, DragEventArgs e)
{
    string[] lines = (string[])e.Data.GetData(DataFormats.FileDrop, false);
    foreach (var line in lines)
    {
        using (StreamReader sr = new StreamReader(Path.GetFullPath(line)))
        {
            var l = sr.ReadLine();
            string[] data;
            while (l != null)
            {
                data = l.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                l = sr.ReadLine();
                tokens.Add(l);
            }
        }
    }

    for (int i = 0; i < tokens.Count - 1; i++)
    {
        dataGridView1.Rows[i].Cells[0].Selected = true;
        dataGridView1.CurrentCell.Value = tokens[i];
    }
}

Текущий код приводит к добавлению line 2 только в сетку данных. ни с чем другим. Я хотел бы добавить каждую строку в первый столбец каждой строки, в зависимости от того, сколько строк в текстовом файле.

Надеюсь, это имеет смысл, большое спасибо!

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете попробовать это:

private void dataGridView1_DragDrop(object sender, DragEventArgs e)
{
  dataGridView1.Columns.Add("Value", "Value");
  var files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
  foreach ( var file in files )
  {
    var lines = File.ReadAllLines(Path.GetFullPath(file));
    foreach ( string line in lines )
      dataGridView1.Rows.Add(line.TrimEnd(','));
  }
}

private void dataGridView1_DragEnter(object sender, DragEventArgs e)
{
  if ( e.Data.GetDataPresent(DataFormats.FileDrop) )
    e.Effect = DragDropEffects.Move;
  else
    e.Effect = DragDropEffects.None;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...