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,我正在制作的游戏是connect 4,我从中调用的表单如下: Public Class Form1 Public players(1) As IPlayer Public playerturn As IPlayer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load buttons()

我正在制作的游戏是connect 4,我从中调用的表单如下:

Public Class Form1
    Public players(1) As IPlayer
    Public playerturn As IPlayer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        buttons()
        init()
    End Sub
    Public Sub init()
        playerturn = players(0)
        Board1.Init()
        currentaturn.Text = String.Format("{0}'s turn", playerturn.name)
    End Sub
    Sub buttons()
        For i As Integer = 0 To 7
            Dim btn As New Button()
            btn.Text = "drop"
            btn.BackColor = Color.Pink
            btn.Size = New Size(40, 40)
            btn.Location = New Point(i * 48, 0)
            btn.Tag = i

            AddHandler btn.Click, AddressOf clickbutton
            Panel1.Controls.Add(btn)
        Next
    End Sub
    Sub clickbutton(ByVal sender As Object, ByVal e As EventArgs)
        Dim clickedbutton As Button = CType(sender, Button)
        Dim clickedcolumn As Integer = clickedbutton.Tag
        If (Board1.addpiecetocolumn(clickedcolumn, Color.Red) = False) Then

        Else
        End If

    End Sub


    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LDBTN.Click

    End Sub

    Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles currentaturn.Click

    End Sub

    Private Sub RESETBTN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RESETBTN.Click
        loginsys.Show()
        Me.close

    End Sub
End Class
我打电话的目的是:

Public Class board
    Public board(8, 8) As panelbox
    Public columns As Integer = 7
    Public rows As Integer = 7
    Public Sub New()
        InitializeComponent()
        Init()

    End Sub

    Public Sub Init()
        Me.Controls.Clear()
        For i As Integer = 0 To columns - 1
            For j As Integer = 0 To rows - 1
                board(i, j) = New panelbox()
                board(i, j).Size = New Size(50, 50)
                board(i, j).Location = New Point((i * 45), (j * 45))
                board(i, j).BackColor = Color.DodgerBlue
                Me.Controls.Add(board(i, j))
            Next
        Next
    End Sub
    Public Function addpiecetocolumn(ByVal x As Integer, ByVal colo As Color) As Boolean
        For y As Integer = rows - 1 To 0 Step -1
            If (board(x, y).Used = False) Then
                board(x, y).Used = True
                board(x, y).BackColor = colo
                Return True
            End If
        Next
        Return False
    End Function
End Class
应该注意的是,我正在命名第二个表单板,调用错误的部分来自第一个表单:


任何帮助都很好

使用公共共享函数Function\u name,在这种情况下,您必须像board一样调用它。Function\u name

Board1是如何声明的以及在哪里声明的?
Public Sub init()  
    playerturn = players(0)  
    Board1.Init()
    currentaturn.Text = String.Format("{0}'s turn", playerturn.name)
End Sub