2014-01-22 52 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和循環陣列上。

相關問題