将comobox值传递给另一种不起作用的形式

时间:2017-11-02 14:47:03

标签: vb.net

嗨,从下面的网格显示类名称来自数据库并将单元格值传递给另一个表单。但它显示但是在更新类名时,它将空值作为一个类

想要更新类名,将相同的值传递给数据库,否则需要旧的类名。但是,它只是更新数据库中的空值。

Form1.vb的

./nutch readseg -dump crawl/merged/* dumpedContent

Form2.vb:

Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles DataGridView1.Click
        Dim form As New update
        form.ComboBox1.Text = DataGridView1.CurrentRow.Cells(3).Value.ToString         
        form.ShowDialog()
    End Sub

1 个答案:

答案 0 :(得分:0)

如果我理解正确,请使用此方法:

DataGridView1_Click

您想要传递此值:

form.ComboBox1.Text

以这种形式:

Dim form As New update

如果是这种情况,有几种方法可以做到。一种方法是将该值添加到表单的构造函数中。如果这是唯一的构造函数,则表单需要该值。如果它是可选的,请创建多个构造函数(一个具有值,一个不具有)。

然后,新构造函数将在该表单上设置类级别值。像这样:

Private myValue As String

Public Sub New(ByVal Value As String)
    myValue = Value
End Sub

然后,当您创建该表单的实例时,请将值提供给构造函数,而不是尝试在该表单上直接设置控件

Dim form As New update(DataGridView1.CurrentRow.Cells(3).Value.ToString)
form.ShowDialog()

这应该将值传递给update表单。 (另一种选择可能是暴露公共属性而不是构造函数参数。真的是个人偏好。)然而,那么做什么具有该值?如果您需要将其设置为ComboBox选定值,请在Load()表单的update事件中执行此操作。 之后ComboBox填充了可能的值。但是,说实话,您为"表示2"对我来说并没有多大意义。特别是您向ComboBox添加值的部分。但是如果您只需要在该表单上使用此字符串值,那么它现在可以在myValue类级别变量中使用。