从一个窗口获取信息并将其放入另一个窗口

时间:2009-03-31 19:58:57

标签: vb.net forms

我正在开发一款游戏,我希望使用一个选项窗口,以便用户将数据输入到此窗口并将其传送到主窗口而不是丢失...

我用我最近的程序尝试过,猜测颜色,但它没有像我想象的那样工作。我以为我可以将它分配给文本框中的字符串中的变量,它将进入主窗口......

我希望这种情况发生:

  1. 用户通过单击快捷方式
  2. 开始程序
  3. 用户点击工具栏中的选项
  4. 屏幕上出现一个新窗口
  5. 在此窗口中,用户将选择地图大小,然后单击确定,此示例中使用的验证,radiobuttons ......
  6. 点击确定后返回主屏幕
  7. 用户点击工具栏上的新功能开始游戏
  8. 游戏正在播放......
  9. 编辑:

    Form1          <<<   Form 2 
    game screen          3x3 button
    end turn 
    
    • 表格1
    • 新游戏开始
    • 表单2出现
    • 按下3x3按钮*
    • 变量用于更改地图(目前只有一个地图)*
    • form2关闭,form1显示
    • 点击结束转弯

2 个答案:

答案 0 :(得分:2)

通常,您需要做的是在创建新表单/窗口时,保留该表单窗口的引用直到它关闭。

然后,当它关闭时,您可以将信息从刚关闭的窗体/窗口复制回主窗口(或者您想要的任何其他内容)。

这里的关键是在子窗口上公开表示输入的属性。因此,如果打开的子窗口具有所选的颜色,则创建一个公开该颜色的属性,以便父窗口可以访问该子窗口。

答案 1 :(得分:0)

编辑:为什么我认为这是一个VB6问题?这被重新标记了吗?如果OP可以澄清哪个版本的VB,我将更新我的例子。

OOP甚至适用于VB6。创建一个类来保存共享数据。在应用程序启动时,将对象创建为全局对象(变量)。我讨厌全局变量和下一个人一样多,但是在整个应用程序需要看到这些数据的情况下(例如,登录的用户对象或日志对象),这是合适的。您可以在第一个表单中将值分配给类对象,然后以第二个或任何其他形式从类对象中读取它们。

示例类:

Option Explicit

Private m_firstName As String
Private m_lastName As String

Public Property Get FirstName() As String
    FirstName = m_firstName
End Property
Public Property Let FirstName(ByVal value As String)
    m_firstName = value
End Property

Public Property Get LastName() As String
    LastName = m_lastName
End Property
Public Property Let LastName(ByVal value As String)
    m_lastName = value
End Property

Public Function FullName() As String
    FullName = m_firstName & " " & m_lastName
End Function

我在这台机器上没有VB6,或者我可以给你一个更好的例子。我认为这些天在.NET中;)

这可以解释一些事情 - http://www.vbforums.com/showthread.php?t=374132