C# UserControl에서 Form의 Control을 접근하자

2019. 12. 25. 18:34C#

728x90
반응형

UserControl에서 Form1 의 ID/PW를 입력하고 싶다!

이런 경우 사용할 수 있습니다.

뭐 반대의 경우도 가능하구요.

방법은 엄청 간단합니다.

public static Form1 f; public Form1() { InitializeComponent(); f = this; }

Form1에서 static으로 Form1 자신을 선언해주고

Form InitalizeComponent(); 이후 시점에 this 키워드로

자신을 넣어주면 됩니다.

f = this;

그리고 Form1에서 사용하려는 Control Property 중 Modifier 속성을

Public 으로 변경해주면 됩니다.

UserControl1 에서는 그냥 아래 처럼

Form1.f.textBox1 이 뜨는데 여기서 활용하면 됩니다.

테스트를 해보면

private UserControl1 uc;

public Form1()
{
    InitializeComponent();
    f = this;

    uc = new UserControl1();
    Controls.Add(uc);
    uc.Location = new Point(50, 50);
}

간단히 userControlForm1에다가 붙여서 UserControl이 실행 될 수 있도록 하고 아래 코드가 실행이 되면

private void test()
{
    Form1.f.textBox1.Text = "HAHAHAHAH";
}

 

HAHAHAH가 입력이 된 걸 볼 수 있습니다.

#유저컨트롤

#UserControl

#UserControlToForm

#FormToUserControl

#anotherControl

#다른컨트롤

#다른폼

#다른유저컨트롤

#제어하기

#접근하기

 

 

728x90
반응형