2016-04-10 45 views
0

ビジュアルベーシックでフォームを渡っていくつかのデータを渡して返すときのエラーを解決する方法。あなたがしようとしている場合はエラー:Form1はwindowsApplicationの型であり、式として使用することはできません。

Error: Form1 is a type of windowsApplication cannot be used as an expression showin error on "Form 1" (Public Class Form1)

FORM 1 CODE

Public Class Form1 
Dim eid As String = "" 
Public Sub New(ByVal empid As String) 
    InitializeComponent() 
    eid = empid 
End Sub 

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

    'Declare a variable of string type 
    Dim pass As String = TextBox1.Text 
    Dim frm As New Form2(pass) 
    frm.ShowDialog() 

End Sub 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Label2.Text = eid.ToString() 
End Sub 
End Class 

FORM 2 CODE

Public Class Form2 

Dim eid As String = "" 
Public Sub New(ByVal empid As String) 
    InitializeComponent() 
    eid = empid 
End Sub 

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    Label1.Text = eid.ToString() 

End Sub 

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

    Dim value As String = TextBox2.Text 
    Dim fr As New Form1(value) 
    fr.ShowDialog() 

End Sub 
End Class 
+0

on Form1(パブリッククラスForm1) – Nitin

+2

これは、Form1もスタートアップフォームであるためです。プログラムが起動してForm1が作成されたときに* empid *のどの値が渡されるかはわかりません。別の起動フォームを選択するか、デフォルトのコンストラクタPublic Sub New()を引数なしで追加する必要があります。 –

答えて

1

はあなたのエラーメッセージがあなたのForm1クラス

Public Sub New() 
    InitializeComponent() 
End Sub 

にこれを追加し解決するにはフォーム間で値を渡すと、フィン便利なこのリンク...エラーのある行

0
Public Class Form1 
Dim eid As String = "" 
Public Sub New(ByVal empid As String) 
    InitializeComponent() 
    eid = empid 
End Sub 
Public Sub New() 
    InitializeComponent() 
End Sub 
 
startup form isn't being called with any parameters 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    'Declare a variable of string type 
    Dim pass As String = TextBox1.Text 
    Dim frm As New Form2(pass) 
    frm.ShowDialog() 

End Sub 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Label2.Text = eid.ToString() 
End Sub 
End Class 
関連する問題