【问题标题】:VB.NET: Passing variable between forms, errorVB.NET:在表单之间传递变量,错误
【发布时间】:2015-12-11 13:18:05
【问题描述】:

我想将一个精确变量的值传递给另一种形式... 更准确地说,我正在构建一个玩家回答几个问题的游戏,所以我想将包含正确答案的变量传递给另一个表单,该表单用作结束游戏窗口并显示分数......我是在游戏结束窗口中使用这种代码:

Public Class Form2

Public Property CCount As Integer

Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Label1.Text = CCcount
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    CCount = 0
    Form1.Show()
    Me.Close()
End Sub

End class

这是主要形式:

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

'Lines of code
Form2.CCount +=1
'Lines of code
'Me.Hide()
'Form2.Show()

EndSub

我第一次“玩游戏”时一切正常,但如果尝试重玩它,显示的分数永远不会改变......它与第一次运行保持相同...... 有什么想法可以解决这个问题吗?

【问题讨论】:

  • 这不是在 VB.NET 中递增整数的方式。
  • @cybermonkey,出于好奇,增量整数的vb.net 样式是什么?
  • @Fabio Form2.CCount = Form2.CCount+1。见this
  • @cybermonkey,OP 的代码没问题。检查这个+= Operator (Visual Basic)

标签: vb.net forms


【解决方案1】:

当加载表单时,您将CCount 的值分配给标签。
Load 事件仅引发一次。 将标签更新代码放入CCount属性Setter

Private _CCount As Integer
Public Property CCount As Integer
    Get
        Return _CCount
    End Get
    Set (value As Integer)
        If _CCount = value Then Exit Property
        _CCount = value
        Me.Label1.Text = _CCount.ToString()
    End Set
End Property

【讨论】:

  • 非常感谢队友,为解决方案和解释!效果很好!
猜你喜欢
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 2013-05-09
  • 1970-01-01
  • 2012-07-02
  • 2016-12-03
  • 1970-01-01
相关资源
最近更新 更多