【发布时间】:2015-01-08 20:08:30
【问题描述】:
我在 vb2013 中的以下数据库和数据网格更新试用时遇到了一些问题。 我在 Form1(uebersicht) 上有一个数据网格和一个“创建新配置文件”按钮(btnnewprofile),该按钮将 Form2(neuesprofil) 作为 ShowDialog() 打开。
如何从 Form1 的数据网格中获取来自 Form2 的输入?
这里是 Form1 的代码
Public Class uebersicht
Private Sub TableBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TableBindingNavigatorSaveItem.Click
' Me.Validate()
' Me.TableBindingSource.EndEdit()
' Me.TableAdapterManager.UpdateAll(Me.Database1DataSet)
End Sub
Private Sub uebersicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "Database1DataSet.Table". Sie können sie bei Bedarf verschieben oder entfernen.
' Me.TableTableAdapter.Fill(Me.Database1DataSet.Table)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnnewprofile.Click
neuesprofil.ShowDialog()
End Sub
Public Sub TableDataGridView_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles TableDataGridViewuebersicht.CellContentClick
End Sub
结束类
表格 2 的代码
Public Class neuesprofil
Public Sub TableBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TableBindingNavigatorSaveItem.Click
End Sub
' Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "Database1DataSet.Table". Sie können sie bei Bedarf verschieben oder entfernen.
' Me.TableTableAdapter.Fill(Me.Database1DataSet.Table)
' End Sub
Public Sub btnsvprfl_Click(sender As Object, e As EventArgs) Handles btnsvprfl.Click
uebersicht.TableBindingSource.AddNew()
Try
Me.Validate()
Me.TableBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Database1DataSet)
MsgBox("Profil wurde gespeichert!")
Me.Hide()
Catch ex As Exception
End Try
End Sub
结束类
如您所见,我弄乱了一些注释行和私有/公共声明, 希望能解决这个问题。当接受 form2 上的输入时,数据网格会创建一个新行,但其中没有存储信息。我怎样才能让它工作?
【问题讨论】:
-
英文 cmets 会更有助于理解。 ;)
-
从一种形式访问数据到另一种形式的一种方法是创建一个公共对象(例如名称为 m_object)并通过代码访问它。就像“Dim x as string = Form1Name.m_object.tostring()”。此外,您将它打开为“ShowDialog”,这将阻止所有 GUI 线程。您可能只想做“.Show()”。
-
在 form2 上引发一个事件,该事件将刷新 form1 或您想做的任何事情
-
@Gàbor,这些 cmets 是自动生成的,没什么可看的
-
正如你在上面看到的 - 有 10 种不同的方法 - 公共对象、事件、直接表单访问、对象传递、保存到 db - 从 db 获取等。所以,你要么推送它到父表单或 ping 父表单以在某处获取数据。
标签: wpf vb.net winforms datagrid