티스토리 뷰

반응형

showdialog 를 사용해서 데이터를 넘겨주는 방식에서 다른 방법을 찾던 중

delegate 를 알게 되어 해당 기능에 대해서 확실히 알아둘 겸 포스팅을 시작.

 

1. 자식폼에서 메인폼으로 데이터를 전달할 때

 

자식폼

namespace test2
{
    public partial class page_sub : **
    {
        //형에 따라 반환자 str_value 값 설정
        //선언된 delegate 의 event 선언
     	public delegate void page_sub_EventHandler(string str_value); 
        public event page_sub_EventHandler TextSend;
        
        public void grid_DoubleClick(object sender, EventArgs e)
        {
            strData = strData.ToString(); // 데이터를 담고 예시문임
            TextSend(strData); // 스트링값을 메인폼에게 보내줌
            //DialogResult = DialogResult.OK;
        }
    } 
}

 

public delegate void page_sub_EventHandler(string str_value); 
public event page_sub_EventHandler TextSend;

 

TextSend(strData);

 

나중에 다시 확인할 수 있도록

각 함수와 변수에 대한 글씨를 맞추어 표시하였다.


부모폼

namespace test1
{
    public partial class page_main : **
    {
        public void btn_Click(object sender, EventArgs e)
        {
            try
            {
            	//자식 폼
                test2 sub = new test2();
				
                //폼에 선언된 event
                sub.TextSend += new test2.page_sub_EventHandler(sub_getText);
                sub.Show();
            }
        }
        
        public void sub_getText(string text)
        {
            // 값을 받아서 처리하는 함수
            string data = text; // sub 페이지에서 넘겨받는 값
            
            search_function(data); // 값을 받아 실행할 함수
        }
    } 
}

 

sub.TextSend += new test2.page_sub_EventHandler(sub_getText);

 

public void sub_getText(string text)

{
// 값을 받아서 처리하는 함수
string data = text; // sub 페이지에서 넘겨받는 값        
search_function(data); // 값을 받아 실행할 함수
}

 

test2 는 자식 폼 선언

자식폼에 선언된 event 를 가져와 부모폼에 실행할 함수 (sub_getText)를 넣어주면 됨


여기저기 찾아다니면서 delegate 가 정리가 잘 되어 있는 곳이 없고

c#을 시작한지 얼마 되지 않아 많이 어려운 부분이 있었는데,

필요한 부분만 서술하여 나중에 확인할 수 있도록 포스팅 합니다.

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31