2014-01-22 24 views
3
private void open(object sender, EventArgs e) 
{   
    OpenFileDialog openDialog = new OpenFileDialog(); 

    if (openDialog.ShowDialog() == DialogResult.OK) 
    { 

     string[] lines = File.ReadAllLines(openDialog.FileName); 

     foreach (string line in lines) 
     { 
      var text = line.Split(',', '\n'); 
      dataGridView1.Rows.Add(text); 
     } 

    } 
} 

因此,在此代码中,我可以读取文本文件,但我只能像在1个网格上一样。下面是一个简单的文本文件将是什么样子:如何读取文本文件,然后使用分隔线放置数据?

test,1,2,3,4,5,6, 
testing,7,8,9,10,11,12, 
working,13,14,15,16,17,18, 
multiline,19,20,21,22,23,24, 
NEXTDATA 
see,25,26,36,46,56,66, 
program,7,8,9,10,11,12, 
macroer,13,14,15,16,17,18, 
readextra,19,20,21,22,23,24, 

所以,如果我到了所谓的“NEXTDATA”它,我想,要放在dataGridView2数据线。我如何检查它是否到达该行,然后它将执行与dataGridView1中的代码相同的操作?

我也使用ReadLine()ReadAllLines()

回答

6

尝试使用这样的事情:

var targetGridView = dataGridView1; 
foreach (string line in lines) 
{ 
    if (line == "NEXTDATA") 
    { 
     targetGridView = dataGridView2; 
     continue; 
    } 

    var text = line.Split(',', '\n'); 
    targetGridView.Rows.Add(text); 
} 

或者在情况下,你需要切换和dataGridView1dataGridView2之间来回,试试这个:

var targetGridView = dataGridView1; 
foreach (string line in lines) 
{ 
    if (line == "NEXTDATA") 
    { 
     targetGridView = (targetGridView == dataGridView1) 
      ? dataGridView2 : dataGridView1; 
     continue; 
    } 

    var text = line.Split(',', '\n'); 
    targetGridView.Rows.Add(text); 
} 
+1

我想发布这个! :D – Abbas

+0

Ohhh ..这么接近与我的相同。 –

+0

谢谢。测试它,它的工作原理。还要感谢其他谁也试图帮助! :) – puretppc

5

商店的GridView你想有一个参考添加到..然后只是按要求翻转它:

var currentGridView = dataGridView1; 

foreach (string line in lines) 
{ 
    if (line == "NEXTDATA") { 
     currentGridView = dataGridView2; 
     continue; 
    } 

    var text = line.Split(',', '\n'); 
    currentGridView.Rows.Add(text); 
} 
3

是这样的吗?

string[] lines = File.ReadAllLines(openDialog.FileName); 

    DataGridView dgv = dataGridView1; 

    foreach (string line in lines) 
    { 
     if(line == "NEXTDATA") 
     { 
      dgv = dataGridView2; 
      continue; 
     } 

     var text = line.Split(',', '\n'); 
     dgv.Rows.Add(text); 
    } 

还做我用ReadLine()ReadAllLines()

这是给你 - ReadLine读取一行,ReadAllLines整个文件读入一个字符串数组,让你无论是循环中,调用ReadLine每一次,或致电ReadAllLines和循环阵列上。

相关问题