[英]Update datagridview from a WindowForm
我在窗口窗體中有這個datagridview,我確實有一個按鈕應該向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中出現新的一行。
請任何幫助將不勝感激。
您可以在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
使用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(){...});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.