2012-03-28 12 views
1

Windows Forms, VB. Ich habe im Internet nach der richtigen Antwort auf dieses und keine Würfel gesucht. Entweder fehlen sie bei dem, was ich zu erreichen versuche, oder bei CSHARP, was es für mich schwieriger macht, zu sehen, was sie tun. Ich muss eine Datensatz-ID aus dem Hauptfensterformular in ein modales Dialogfeld Load Event übergeben. Ich habe versucht, ein mit param zu werfen, aber dann muss ich die Load-Ereignisparameter ändern und vb kennzeichnet es .. Ich versuche es Übergeben Sie den Wert von _CurrentProp, der eine Ganzzahl ist, in den Dialog. Dies ist der Dialog Konstruktor und das Load-Ereignis innerhalb dieses Dialog ..Übergeben der Variablen vom Windows-Formular an Modal

Private Sub PropertySettingsMenuClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PropertyDetailsToolStripMenuItem.Click 
Dim _propertSettings As New PropertySettingsWindow() 
_propertSettings.ShowDialog() 
End Sub 


Private Sub PropertySettings_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
Dim _properties As New List(Of property_info) 
_properties = db.property_info.ToList 
    For Each a In _properties 
     If Not p_settingsCityList.Items.Contains(a.city) Then 
      p_settingsCityList.Items.Add(a.city) 
     End If 
    Next 

    For Each b In _properties 
     If Not p_settingsPropertyList.Items.Contains(b.property_Name) Then 
      p_settingsPropertyList.Items.Add(Convert.ToString(b.idProperties) + " -- " + b.property_Name) 
     End If 
    Next 
    p_settingsZipCode.ReadOnly = True 
    p_settings_Address.ReadOnly = True 
    p_settings_PropertyName.ReadOnly = True 

End Sub 

Ich werde einfach den Wert einer globalen Variablen innerhalb der PropertySettings Klasse zuweisen, aber alles, was ich versuche, scheint in der einen oder anderen zum Scheitern verurteilt. Irgendwelche Ideen .. ...

Antwort

4

hinzufügen öffentliches Eigentum RecordID zu Ihrem Dialogfenster, dann öffnen Sie den Dialog wie dieser

Dim _propertSettings As New PropertySettingsWindow() 
_propertSettings.RecordID = 15 
_propertSettings.ShowDialog() 

im Dialogform Sie einfach den Datensatz-ID zugreifen können mit

_properties = db.property_info_by_id(RecordID).ToList 

Beginnend mit .NET Framework 4.0 können Sie automatisch implementierte Eigenschaften

Public Property RecordID As Integer 

Bei früheren Versionen verwenden Sie würden

Private _recordID As Integer 
Property RecordID As Integer 
    Get 
     Return _recordID 
    End Get 
    Set(ByVal value As Integer) 
     _recordID = value 
    End Set 
End Property 
+2

+1 schreiben oder es machen Parameter im Konstruktor des Formulars, um eine primäre Eigenschaft festzulegen - beide gleichermaßen gültig. – Bridge

+0

Vielen Dank vergaß ich, dass ich eine Menge davon in meinem letzten vb.net mvc3-Projekt verwendet habe. – Skindeep2366

+0

Ja, eine 'Form' ist einfach eine Klasse und man kann damit machen, was man mit Klassen machen kann ... –

Verwandte Themen