【问题标题】:create a message box on application start requiring users name then display it in the program?在应用程序开始时创建一个消息框,要求用户名,然后在程序中显示?
【发布时间】:2014-02-08 19:02:53
【问题描述】:

我想在程序开始时弹出一个消息框,询问客户的姓名。然后我希望这个名称显示在我已经创建的标签中。

在互联网上找到一些有用的提示后,我去了应用程序活动并输入了以下代码。我收到一个消息框,允许我输入客户姓名,因此该位工作正常。当我尝试更改标签时,问题就来了。它说没有声明'label4'。我猜应用程序事件部分是与其他形式完全不同的部分。

如果有人能解释我将如何正确地做这件事,并解释两者之间的区别,那么我可以从中学习,那就太好了。

Dim message, title, defaultValue, myvalue As String 

' Set prompt.
message = "Please Enter The Customers Name" 

' Set title.
title = "New Customer"

' Set default value.
defaultValue = ""   

' Display message, title, and default value.
myValue = InputBox(message, title, defaultValue)

label4.text = myvalue

【问题讨论】:

  • 听起来你挖得太深了,试图在标签创建之前设置它。只需在 FormLoad 事件中做消息框

标签: vb.net visual-studio visual-studio-2012


【解决方案1】:

表单的控件在该表单本地定义,即它们是该表单的私有成员,不能从外部访问。现在这取决于您的代码是如何组织的。如果您在打开主窗体之前调用 InputBox,那么您需要一种将客户名称传递给主窗体的方法。您可以在主窗体的构造函数中执行此操作。

' In the main form
Public Sub New(ByVal customerName As String)
    InitializeComponent() ' This call is required by the Windows Form Designer.
    label4.Text = customerName
End Sub

然后你可以像这样创建主窗体(另见How to find the main() entry point in a VB.Net winforms app?

Public Sub Main()
    Application.EnableVisualStyles()
    Application.SetCompatibleTextRenderingDefault(False)

    ...

    myValue = InputBox(message, title, defaultValue)

    Dim frm As Form1 = New Form1(myValue)
    ' Starts the application.
    Application.Run(frm)
End Sub 

【讨论】:

  • 感谢您的解释,这更有意义。但是,我对 application.run(frm) 有一个小问题,它指出“form1 类型的值不能转换为字符串的一维数组”。任何线索如何解决这个问题或有什么问题?
猜你喜欢
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
相关资源
最近更新 更多