부모 Form : pForm 자식 Form : cForm 부모 Form
cForm = new 자식FORM()
cForm.btnEnable += new cFrom.btnEnable(fProcess_btnEnable);

viod fProcess_btnEnable(bool flag)
{
    this.btnStart.Enabled = flag;
}
자식 Form
public delegate void btnEnableDel(bool flag);
public event btnEnableDel btnEnable;
public static void SetEnable(bool flag)
{
        btnEnable(flag);
}
난 실제로 사용을 일단 AssembleDelegate.cs 파일 생성 후
class AssembleDelegate
    {
        public delegate void btnEnableDel(bool flag);
        public static event btnEnableDel btnEnable;
 
        public static void SetEnable(bool flag)
        {
            btnEnable(flag);
        }
    }
부모 Form에서
private void Method()
{
    Form form = new Form();
    AssembleDelegate.btnEnable += new AssembleDelegate.btnEnableDel(fProcess_btnEnable);
    form.Show();
}
 
void fProcess_btnEnable(bool flag)
{
    this.btnStart.Enabled = flag;
}
자식Form 에서
private void Method()
{
     AssembleDelegate.SetEnable(true);
}
이렇게 사용했다. 일단 여러가지 종류의 자식폼이 있다 그 자식폼이 열리게 되면 부모 폼에 버튼을 비활성화 시키기 위해 코드를 작성했고.Delegate를 따로 Static에 빼 둔건 자식 폼이 여러개일 경우 사용하기 위해 저렇게 빼두었다.
Posted by 천사주니
,