2016-05-24 2 views
0

я объявляю две строки в моей основной форме следующим образом:vb.net Public Shared Строка рыхлый значение при открытии второй формы

Public Shared SerNum As String = vbNullString 
Public Shared SKey As String = vbNullString 

Тогда я даю некоторые значения для них. После этого я открываю другую форму, и я пытаюсь получить значения из двух переменных, но только SerNum сохраняет свою ценность, а SKey оказывается Nothing.

Я неоднократно проверял свой код, но я не нашел причины для этого.
Вторая форма показана сразу после значений.
Что я могу проверить, чтобы найти ошибку?

На данный момент я решил использовать Public Shared Dictionary(of String, String) и вставить в него обе строки, но я хотел бы понять, где я ошибаюсь.

EDIT
Я нашел ошибку: SKey также был объявлен в мой sub поэтому значение не был назначен на Public Shared variable но к local variable.
я думал, что «прокомментировал» эту строку ...

+2

Можете ли вы поделиться тот же код? –

+0

@BeldiAnouar Весь код? – genespos

+0

Что-то должно быть установлено SKey to Null –

ответ

0

У меня есть предложение для присоединения к переменной из другой формы: В От имени главного ДАВАЙТЕ это «From1» должно быть как:

Public Class Form1 
    Public SerNum As String = vbNullString 
    Public SKey As String = vbNullString 


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

    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim fr As New Form2(Me) 
     SerNum = "ValueNum" 
     SKey = "ValueKey" 
     fr.Show() 
    End Sub 
End Class 

В вашем Seconde из "Form2":

Public Class Form2 
    Dim fr As New Form1 
    Public Sub New(fr As Form1) 
     InitializeComponent() 
     Me.fr = fr 
    End Sub 

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

     MsgBox(fr.SKey) 
     MsgBox(fr.SerNum) 
    End Sub 
+0

Я пытаюсь понять вашу логику (я не профессионал). Возможно, в будущем я решит использовать ваш подход. ;) – genespos

+0

Хорошо, вы можете пройти мимо того, что вы пробовали до сих пор –

Смежные вопросы