2016-10-19 2 views
1

Я пытаюсь присвоить .SelectedItem к Property на вторичную форме, которая может быть использована моей основной формой, хотя несмотря на MessageBox.Show четко определяя переменный был установлен, мои Select Case переключателей Case Else и другая MessageBox.Show показывает ту же переменную, но как Nothing.SelectedItem не Переходя к собственности

(вторичная форма)

Public Class Setup 

    Public Property HomePage As String 
    Public Property WindowSize As String 

    Private Sub Setup_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Dim SizePoss() As String = {"Desktop", "Tablet", "Mobile"} 

     cmbSizeSetting.MaxDropDownItems = SizePoss.Length 
     For Each column As String In SizePoss 
      cmbSizeSetting.Items.Add(column) 
     Next 

     ' Initialize Appropriate Settings 

     lblUnsaved.Hide() 
     cmbSizeSetting.SelectedIndex = cmbSizeSetting.FindStringExact("Tablet") 
    End Sub 

    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click 
     HomePage = txtHomepageSetting.Text 
     WindowSize = cmbSizeSetting.SelectedItem 
     MessageBox.Show("Size chosen was " + WindowSize + ", which is a " + TypeName(WindowSize)) 

     Close() 
    End Sub 
End Class 

(первичная форма)

Public Class Croweb 

    Private Sub btnSetup_Click(sender As Object, e As EventArgs) Handles btnSetup.Click 
     Dim setupForm As New Setup 
     setupForm.ShowDialog() 

     If Not String.IsNullOrEmpty(setupForm.HomePage) Then 
      MessageBox.Show(setupForm.HomePage) 
      WebBrowser1.Url = New Uri(setupForm.HomePage) 
     End If 

     Select Case Setup.WindowSize 
      Case "Desktop" 
       Me.Size = New Size(1280, 730) 
      Case "Tablet" 
       Me.Size = New Size(891, 564) 
      Case "Phone" 
       Me.Size = New Size(400, 900) 
      Case Else 
       MessageBox.Show("Error: Chosen Size is " + Setup.WindowSize + ", which is a " + TypeName(Setup.WindowSize)) 
     End Select 

    End Sub 

End Class 

Могу ли я передать его неправильно?

ответ

1

Образцы формы по умолчанию снова ударяют. Не удивительно. Вы начинаете с явного создания экземпляра и отображения, что:

Dim setupForm As New Setup 
setupForm.ShowDialog() 

Позже, хотя, вы игнорируете этот экземпляр и использовать экземпляр по умолчанию:

Select Case Setup.WindowSize 

Вы никогда не отображается экземпляр по умолчанию, так что вы никогда не установить это свойство в экземпляре по умолчанию. Эта линия должна была ссылаться на экземпляр, который вы на самом деле отображали:

Select Case setupForm.WindowSize 
+0

Боже. Ошибка новичков, если я когда-либо видел его. – Crowes

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