我仍然在vb.net上学习,但我的主表单(form1)有2列。一个叫红色,另一个叫黄色。我有一个按钮打开一个表单(form2),它有一个文本框,允许用户输入某人的名字和一个组合框来选择颜色。当我们单击form2上的提交按钮时,我试图完成它,该名称将显示在form1的正确列中。 form1上的两种颜色都有自己的文本框。 Red有textbox1,Yellow有textbox2。任何人都可以协助我这样做吗?我正在使用Visual Studio 2010 VB.Net。谢谢!
丹尼
答案 0 :(得分:0)
从简单的工作流角度来看,您可以让Form 2在Form 1上调用一个方法,并提供新的名称和颜色。然后,表单1将名称添加到正确的列。有许多方法可以解决这个问题 - 一种方法是让Form 1实例化表单2然后传入一个委托引用,该方法将采用名称和颜色的方法。
所以在表格1 -
Public Sub HandleAdd(name as String, color as String)
' Do Stuff Here.
End Sub
Public Sub AddPlayerButton_Click(sender as Object, e as EventArgs) Handles AddPlayerButton.Click
Dim frm As New Form2
frm.AfterAdd = AddressOf HandleAdd
frm.Show
End Sub
表格2 -
Public Property AfterAdd As Action(of String, String)
Public Sub OKButton_Click(sender as Object, e as EventArgs) Handles OK.Click
If AfterAdd IsNot Nothing Then AfterAdd(playerName.value, playerColor.value)
End Sub
或类似的东西。
答案 1 :(得分:0)
这么多方法......这是另一个方法。
表格1中的代码:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim f2 As New Form2
If f2.ShowDialog = Windows.Forms.DialogResult.OK Then
Select Case f2.ComboBox1.SelectedItem.ToString.ToLower
Case "red"
TextBox1.AppendText(f2.TextBox1.Text & Environment.NewLine)
Case "yellow"
TextBox2.AppendText(f2.TextBox1.Text & Environment.NewLine)
Case Else
MessageBox.Show("Unkown Color!")
End Select
End If
End Sub
End Class
并在表格2中:
Public Class Form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If TextBox1.TextLength > 0 AndAlso ComboBox1.SelectedIndex <> -1 Then
Me.DialogResult = Windows.Forms.DialogResult.OK
End If
End Sub
End Class