从WindowForm更新datagridview

问题描述:

我在窗体中有这个datagridview,我确实有一个按钮应该添加一个新的行到datagridview,所以当我点击它时它会打开一个新的窗体窗体,我如何保存我当前窗体的数据并更新datagrid视图?从WindowForm更新datagridview

数据网格从列表填充的,就像这样:

public void GetUserDetails() 
     { 
         List<xml.UserDescriptor> users = new List<xml.UserDescriptor>(); 
         foreach (xml.UserDescriptor dbList in xmlData.Users) 
         { 
          if (dbList.DatabaseDescriptorName == name) 
          { 
           users.Add(new xml.UserDescriptor() { DatabaseDescriptorName = dbList.DatabaseDescriptorName, Username = dbList.Username, Password = dbList.Password, IsAdmin = dbList.IsAdmin }); 

          } 
         } 

         dataGridView3.DataSource = users; 

      } 

我如何保存我插入新的表单中的数据,并关闭它后新行应该出现在DataGridView。

请任何帮助,将不胜感激。

使用BindingList<xml.UserDescriptor>,不List<xml.UserDescriptor>

将此users变量传递给新窗体,并在新窗体中更新它。

MainForm.cs

new NewForm(users).ShowDialog(); 

NewForm.cs

public class NewForm : Form 
{ 
    BindingList<xml.UserDescriptor> _users; 
    public NewForm(BindingList<xml.UserDescriptor> users) 
    { 
     _users = users; 
    } 

    private void btnAddUser_Click(object sender, EventArgs e) 
    { 
     _users.Add(new xml.UserDescriptor(){...}); 
    } 
} 
+0

非常感谢你,好了,我是一个初学者,从这里,如果我点击保存出现什么,我怎么弄更新的datagrid视图? – Perf 2014-10-22 06:12:17

+0

哦完美,它的工作:D – Perf 2014-10-22 06:17:24

你可以在你的FormClosing事件中做到这一点。

以下是将列,行和单元格添加到datagridview的示例。

Option Strict On 
Option Explicit On 
Option Infer Off 
Public Class Form1 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     DataGridView1.Columns.Add(New DataGridViewTextBoxColumn) 
     DataGridView1.Columns.Add(New DataGridViewTextBoxColumn) 
     DataGridView1.Columns.Add(New DataGridViewTextBoxColumn) 
     DataGridView1.Columns.Add(New DataGridViewTextBoxColumn) 
     For i As Integer = 0 To 100 Step 4 
      Dim row As New DataGridViewRow 
      Dim cell1 As New DataGridViewTextBoxCell 
      Dim cell2 As New DataGridViewTextBoxCell 
      Dim cell3 As New DataGridViewTextBoxCell 
      Dim cell4 As New DataGridViewTextBoxCell 
      cell1.Value = i.ToString 
      cell2.Value = (i + 1).ToString 
      cell3.Value = (i + 2).ToString 
      cell4.Value = (i + 3).ToString 
      row.Cells.AddRange({cell1, cell2, cell3, cell4}) 
      DataGridView1.Rows.Add(row) 
     Next 
    End Sub 
End Class