当前位置: 首页 > 知识库问答 >
问题:

Windows窗体-传递数据和重用特定窗体

林德华
2023-03-14

我有一个简单的申请与2个表格。一个表单(form1)允许用户在列表框中选择记录。一旦进行了选择,第二个表单(form2)就应该用第一个表单中的数据更新。

用户应该能够选择一个不同的记录,第二个表单应该用新的数据更新。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Dim newForm As New form2
    newForm.Location = Screen.AllScreens(LBound(Screen.AllScreens)).Bounds.Location
    newForm.Hide()

End Sub

Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles BoatsGrid.CellMouseClick
    If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
        Dim selectedRow = gridview1.Rows(e.RowIndex)
        TextBox1.Text = gridview1.CurrentRow.Cells(1).Value.ToString()
        Textbox2.Text = gridview1.CurrentRow.Cells(2).Value.ToString()
        Textbox3.Text = gridview1.CurrentRow.Cells(0).Value.ToString()

        Dim newForm As New form2

        newForm.Location = Screen.AllScreens(LBound(Screen.AllScreens)).Bounds.Location

        newForm.UpdateText(TextBox1.Text, Textbox2.Text)
        newForm.Show()

    End If
End Sub
Public Class WeightDisplay
    Private Sub WeightDisplay_Load() Handles MyBase.Load

    End Sub

    Public Sub UpdateText(TextString1 As String, TextString2 As String)

        Label1.Text = TextString1 
        Label2.Text = TextString2

    End Sub
End Class

我上面展示的只是创建更多的form2版本,它没有更新form2的当前迭代。

共有1个答案

章昱
2023-03-14

您需要保持对form2的引用活动,以便更新它,否则将无法更新表单

Dim newForm As New form2
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


    newForm.Location = Screen.AllScreens(LBound(Screen.AllScreens)).Bounds.Location
    newForm.Hide()

End Sub
Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles BoatsGrid.CellMouseClick
    If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
        Dim selectedRow = gridview1.Rows(e.RowIndex)
        TextBox1.Text = gridview1.CurrentRow.Cells(1).Value.ToString()
        Textbox2.Text = gridview1.CurrentRow.Cells(2).Value.ToString()
        Textbox3.Text = gridview1.CurrentRow.Cells(0).Value.ToString()

        newForm.Location = Screen.AllScreens(LBound(Screen.AllScreens)).Bounds.Location

        newForm.UpdateText(TextBox1.Text, Textbox2.Text)
        newForm.BringToFront()

    End If
End Sub
 类似资料:
  • 本文向大家介绍C#实现窗体间传递数据实例,包括了C#实现窗体间传递数据实例的使用技巧和注意事项,需要的朋友参考一下 本文以实例详述了C#两个窗体之间传递数据的实现方法,具体的操作步骤如下: 1.建立两个窗体,并采用公用变量值传递: 2.使用地址方式传递

  • 我需要帮助我的代码。我已经通读了几次代码,我没有看到它有什么问题。期望用户提交作业申请并将用户重定向到仪表板,但它没有提交作业申请,也没有将用户定向到仪表板。这是我的代码:mode.py Views.py 从django.contrib.auth.decorators进口login_required 从。窗体导入addJobForm,应用程序窗体从。模型导入作业 defjob_detail(请求,

  • 我需要获取表单上所有类型为X的控件。我很确定我在过去见过一次这样的代码: 我知道我可以使用递归函数迭代所有控件获得子控件,但是有没有更简单或更直接的方法,可能像下面这样?

  • 我的EmployeeDB类 使用系统;使用System.Collections.Generic;使用System.LINQ;使用System.Text;使用System.Data.SQLClient;使用System.Data; 命名空间测试{公共类employeeedb{私有字符串连接字符串; 然后构建类库,并将引用添加到windows窗体项目中。

  • 问题内容: 我收到应用程序异常 每次当我尝试单击DataGridView时。 我收到错误消息 {“索引-1没有值。”}(SystemIndexOutOfaRange异常)。 在行上 而且我无法调试它。请帮助我找出导致此问题的原因以及如何对其进行调试? 问题答案: 我猜想您已经将一个最初为空的List(或其他不生成列表已更改事件的集合)绑定到了您的,然后将项目添加到了此List中。 您添加的项目将正

  • 问题内容: 我正在尝试使用Angular.js 创建一个子表单 有一种数据具有许多字段 标题 可用日期 价钱 所有人都对它们进行了验证。 提交数据后,我将按照需要进行处理,但是我想重置子表单,以使所有字段都不会变脏,并且该表单在清除字段有效的同时仍然有效,但所有字段均无效。现在脏了,但是将它们标记为无效是空的。 一个示例字段 这是提交时调用的函数 问题答案: 使用标签并设置属性,然后您可以在哪里命