2010-09-27 29 views
4

我有一個GridView,將有2行與一些數據如下如何找到一個行的DataGridView存在,並將其附加到DataGridView的最後一行

101 111111111 1111111111009270754A094101// My first row data 

    9000002  1000000020222222236000000000000000000000012000000000000000000000000000000000000000//My 2nd row data 

我會添加一些值,使得它應該插入這兩行之間,並且已存在的第二行應該移動到datagrid視圖的最後一行。就像如果我增加值的值應該在那些2之間插入n個和存在排它已經應該被移動到最後一行的任何想法,請

回答

1

我與測試代碼editted這樣的:

public Form1() 
     { 

      InitializeComponent(); 
      //This can be removed before utilizing 
       dgv.Rows.Add("1", "1", "1"); 
       dgv.Rows.Add("1", "1", "1"); 
       dgv.Rows.Add("bob", "bob", "bob"); 
       dgv.Rows.Add("1", "1", "1"); 
       dgv.Rows.Add("1", "1", "1"); 
       dgv.Rows.Add("1", "1", "1"); 
      //This can be removed before utilizing 


      int oldrow = 2; 

      dgv.Rows.Add(itemArray(dgv.Rows[oldrow])); 

      dgv.Rows.RemoveAt(oldrow); 
      /* 
      DataGridViewRow oldRow = dataGridView1.Rows.Add(itemarray(dataGridView1.Rows[1])); dataGridView1.Rows.Remove(oldRow) 
      */ 

     } 

     object[] itemArray(DataGridViewRow Row) 
     { 
      int a = Row.DataGridView.ColumnCount - 1; 
      object[] mOut = new object[a+1]; 

      for (int x = 0;x <= a ; x++) 
      { 
       mOut[x] = Row.Cells[x].Value; 
      } 
      return mOut; 

     } 

我爲所有附加測試道歉。

+0

它所通過的項目陣列 – Dotnet 2010-09-27 14:57:52

+0

意思,但我沒有得到這樣的 – Dotnet 2010-09-27 15:04:27

+0

我得到一個錯誤的錯誤任何財產不能類型「詮釋」隱式轉換爲「System.Windows.Forms.DataGridViewRow」 – Dotnet 2010-09-27 15:25:35

1

這是我寫的,但不適合我。我需要的是如果我的陣列5開始我想刪除這是已經存在於gridview的第二排,並想將其追加特定行添加

 if (line.StartsWith("5")) 
       { 
        int oldRow = 1; 
        dataGridView1.Rows.Add(itemarray(dataGridView1.Rows[1])); 

        dataGridView1.Rows.RemoveAt(oldRow); 

        dataGridView1.Rows.Add("BatchHeader", line); 

        m_flag = true; 
        StringBuilder sb = new StringBuilder(); 
        objfileentry.createFileEntry(Append.FileName, out sb); 
        if (m_flag) 
         dataGridView1.Rows.Add("FileControl", sb.ToString()); 
        line = string.Empty; 
       } 

給定的功能後您

private object[] itemarray(DataGridViewRow Row) 
    { 
     int a = Row.DataGridView.ColumnCount - 1; 
     object[] mOut = new object[a + 1]; 

     for (int x = 0; x <= a; x++) 
     { 
      mOut[x] = Row.Cells[x].Value; 
     } 
     return mOut; 

    } 
+0

什麼是你的datagridviewrow的數據源? – 2010-09-27 16:11:47

+0

我沒有使用任何數據源,如果我填寫表單上的一些值,我將它寫入網格通過將值作爲字符串數組 – Dotnet 2010-09-27 16:20:07

0

如果你以這種方式結合數據,

myGridView.DataSource = GetDataSource(); 

不能以編程方式添加行。如果沒有,你可以使用:

DataGridViewRow newRow = new DataGridViewRow(); 
//set row data here 
myGridView.Rows.Insert(newIndex, newRow); //use Insert instead of Add/AddCopy 
0

你可以使用ListView而不是datagrid嗎?

相關問題