Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何生成所选按钮的窗口窗体返回值_Vb.net - Fatal编程技术网

Vb.net 如何生成所选按钮的窗口窗体返回值

Vb.net 如何生成所选按钮的窗口窗体返回值,vb.net,Vb.net,我正在一个窗口窗体上制作一个电影放映室的图形表示。每个座位都表示为一个按钮 我在另一张表格上还有一个按钮,用来预订座位。此按钮启动电影院房间窗体,如果用户单击任何按钮,则应返回并显示该按钮上的文本 电影院房间类的图形表示 Imports System.Data.SqlClient Public Class Cinema1Seats Dim seat As String = vbNull Private Sub Cinema1Seats_Load(sender As Object

我正在一个窗口窗体上制作一个电影放映室的图形表示。每个座位都表示为一个按钮

我在另一张表格上还有一个按钮,用来预订座位。此按钮启动电影院房间窗体,如果用户单击任何按钮,则应返回并显示该按钮上的文本

电影院房间类的图形表示

Imports System.Data.SqlClient

Public Class Cinema1Seats
    Dim seat As String = vbNull
    Private Sub Cinema1Seats_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Try

        con = getconnect()
        con.Open()
        Dim comm As New SqlClient.SqlCommand
        comm = New System.Data.SqlClient.SqlCommand("select * from seats ", con)
        ' comm.Parameters.Add("@id", SqlDbType.VarChar).Value = ticketNumber
        Dim sqlReader As System.Data.SqlClient.SqlDataReader
        sqlReader = comm.ExecuteReader
        Do While sqlReader.Read
            Dim seat As String = sqlReader.GetString(0)
            Dim seatbtn As New Button
            seatbtn.Width = 50
            seatbtn.Height = 20
            seatbtn.Text = seat


            AddHandler seatbtn.Click, AddressOf Me.Button_Click   ' Again from answer by Reed.
            Me.FlowLayoutPanel1.Controls.Add(seatbtn)
        Loop
    Catch ex As Exception
        MsgBox(ex.ToString)

    End Try





End Sub
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim asas As String = (CType(sender, System.Windows.Forms.Button).Text)
    MsgBox(asas)
End Sub
Public Function getseat() As String
    If (seat = vbNull) Then

    Else
        Return seat
        Me.Close()
    End If
End Function


End Class
有按钮的第二个窗体

Public Class SampleSeat_vb

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Try
        Dim flag As Integer = 0
        Dim i As Integer = 0
        While i < Application.OpenForms.Count And flag = 0
            If Application.OpenForms(i).Name = "Cinema1Seats" Then
                flag = 1
            End If
            i += 1
        End While
        If flag Then
            Application.OpenForms("Cinema1Seats").BringToFront()
        Else
            Dim str As New Cinema1Seats
            str.Show()
            Dim we As String = str.getseat
            MsgBox("You selected : " + we)
        End If

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try





End Sub

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

End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

End Sub
End Class

我并不十分清楚您试图实现的目标,但为了找到所单击按钮的文本,您可以执行以下操作:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim btn As Button = CType(sender, Button)
    MessageBox.Show("You clicked on " + btn.Text")
End Sub

将名为get_seat的方法添加到表示座位集合的类中没有意义。如果设计不正确,就无法编写正确的代码。如果您想知道最后单击了哪个座位,则需要一个变量。在Click事件处理程序中分配它。命名奇怪的变量asas只需要一个不同的作用域。让它成为Cinema1Seats的财产。对于varaible Puropoix,我很抱歉,@Hans,谢谢你的帮助。我想过“尽快”,但现在我知道我把每个人都搞砸了。如何在Java中使带有seats as buttons的表单作为jOptionPane运行,这样当我单击bookingform上的button以选择seat时,会弹出SeatForm,用户单击按钮,按钮文本或标记保存在变量X中,SeatForm关闭,我会按照我在bookingform中希望的那样继续使用变量X执行。谢谢Hanks Matt,对不起,我的问题不清楚,我不熟悉VB.NET,如果单击表单上的按钮,您的答案会显示一条消息,这很好。但是我想让你帮我做的是,想象一下有两个表单form1和form2,你在form1上有一个按钮,执行一些代码,执行时必须得到座位号x,然后form2启动,它有许多按钮,当用户点击form2上的任何按钮时,form2关闭,x值是CTypesender的值,button。在JAVA中,我使用表单作为jOptionPane。谢谢