【问题标题】:how to save input from form2 into datagrid in form1?如何将来自form2的输入保存到form1中的datagrid中?
【发布时间】: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


【解决方案1】:

尝试使用此代码:

If Form1.DataGridView1.RowCount <> 0 Then
        Form1.DataGridView1.Rows(0).Selected = True
        Dim valueOfFirstRowFirstColumn As String = Form1.DataGridView1.SelectedCells.Item(0).Value
        MsgBox(valueOfFirstRowFirstColumn)
End If    

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多