2016-11-20 1 views
1

Ich habe ein benutzerdefiniertes Steuerelement erstellt, das ein Panel enthält und in der Anzeige ein Label und ein Textfeld ist. In meiner Elternform gibt es jetzt ein Flowlayout-Panel. Ich füge mein benutzerdefiniertes Steuerelement zum Flowlayout-Panel hinzu.Wie kann ich Werte eines Steuerelements aus dem benutzerdefinierten Steuerelement im übergeordneten Formular abrufen

user-defined control

flowlayout panel

Hier ist der Code, den ich die Steuerwerte zu erhalten verwenden, aber es ist immer gibt ich listbox Kontrollwerte geprüft:

// Here 'panel_Attribute' is my parent form panel to which I have added the controls 
Control.ControlCollection listControls = panel_Attribute.Controls; 
foreach (Control attributeControl in listControls) 
{ 
    if (attributeControl is Control) 
    { 
    log.Debug("attributeControl Values are attributeControl attributeControl.Name" + 
     attributeControl.Name + ", Value: " + attributeControl.Text); 

    attributeList.Add(((PHShowAttributeControl)attributeControl). 
     ProbeRawProjectTaskAttributeEvent); 
    //attributeList.Add(GetControlValues()); 
    } 
} 
+0

'(Window.Controls [x] als UserControl) .Control.Property'? –

Antwort

0

Wenn Sie Ihr Benutzersteuerelement hinzufügen zu Ihrem ParentForm erstellt der Designer es und Sie haben direkten Zugriff darauf.

Zum Beispiel:

myUserControl.Enable = false; 

Ihre Parent nicht über etwas über Ihre Kontrollen innerhalb der Usercontrol kennen. Gib Dein UserControl einfach einige Eigenschaften aus. Nehmen wir an, Sie haben eine Textbox für den Namen von Kunden:

public class MyUserControl : UserControl 
{ 
    public string Name 
    { 
     //Inside your UserControl you can access your Controls directly 
     get{return textBoxName.Text;} 
     set {textBoxName.Text = value;} 
    } 
} 

public class MyForm : Form 
{ 
    //This set the Text in your UserControl Textbox. 
    myUserControl.Name = "Mr. Example"; 
} 

Ich hoffe, das wird Ihnen helfen.

Verwandte Themen