2016-11-20 2 views
1

패널이 포함 된 사용자 정의 컨트롤을 만들고 패널에 레이블과 텍스트 상자를 만들었습니다. 자, 부모 폼에 flowlayout 패널이 있습니다. 내 사용자 정의 컨트롤을 flowlayout 패널에 추가하고 있습니다. 여기 부모 폼의 사용자 정의 컨트롤에서 컨트롤 값을 가져 오는 방법

flowlayout panel

user-defined control

내가 제어 값을 얻기 위해 사용하고 코드이지만, 항상 나를 목록 상자 컨트롤의 값을 확인주고 : 당신이 당신의 UserControl을 추가하는 경우

// 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] as UserControl) .Control.Property'? –

답변

0

을 귀하의 ParentForm에 디자이너가 그것을 작성하면 직접 액세스 할 수 있습니다. 예를 들어

:

myUserControl.Enable = false; 

귀하의 ParentForm은 UserControl을 내부 사용자의 컨트롤에 대해 뭔가를 알고 필요가 없습니다. 그냥 UserControl 일부 속성을 보내십시오. 고객의 이름을 나타내는 텍스트 상자가 있다고 가정 해 보겠습니다.

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"; 
} 

이 정보가 도움이되기를 바랍니다.