2013-08-23 5 views
0

데이터를 전송하는 단추와 양식을보고있는 menustrip 단추에서 양식을 액세스하려고하는데 데이터가 전송되지 않습니다.두 가지 다른 방법으로 양식 호출

public xSecForm(string dataRecieved) 
    { 
     InitializeComponent(); 

     xSavedList.Text = dataRecieved; 
    } 

이 날 첫 번째 버튼에 데이터를 보내 수 있습니다 : 나는 클래스 이름의 존재를 통해

데이터를 전송합니다.

필자는 데이터 전달하지 않고 창을 표시하려면 메뉴 버튼에

xSecForm f2 = new xSecForm() 
    f2.Show(); 

을 넣어 말을 다른 도움을 볼 수 있지만, 때문에 양식의 끝에 (문자열 dataRecieved)의 그것은 나를주는 유지 오류.

데이터를 전송하는 방법을 변경하지 않고도 처리 할 수 ​​있기를 바랍니다.

+0

확인 [링크] (http://www.codeproject.com/Questions/267820/How-to-transfer-data-from-one-form-to-another-form) – Nilesh

+1

_ 오류는 무엇입니까? – SLaks

+1

하나 이상의 데이터를 전달하는 생성자와 그렇지 않은 생성자가 둘 이상있을 수 있습니다. –

답변

3

시도 할 수있는 몇 가지 방법은 각각 장점과 단점이 있습니다.

1) 두 번째 서식에는 2 개의 생성자를 사용할 수 있습니다. 하나는 기본값 (데이터를 전달하지 않음)이고 다른 하나는 문자열을 전달할 수 있습니다. 당신이 또는 문자열을 전송하지 않고 두 번째 양식의 새로운 인스턴스를 만들 수 있습니다.

public xSecForm(string dataReceived) 
{ 
    InitializeComponent(); 
    xSavedList.Text = dataReceived; 
} 

public xSecForm() 
{ 
    InitializeComponent(); 
} 

이 방법의 단점은 먼저 객체를 생성 할 때 데이터 만 전달할 수 있다는 것입니다.

2) 첫 번째 양식에서 데이터를 삽입 할 수 있도록 두 번째 양식에서 공용 속성을 만듭니다. 두 번째 형태 : 귀하의 기본 폼에 다음

public string SavedListData 
{ 
    set { xSavedList.Text = value; } 
    get { return xSavedList.Text; } 
} 

이 방법의 장점은 사용자가 데이터 때마다 후에도 설정/얻을 수 있다는 것입니다

xSecForm f2 = new xSecForm(); 
f2.SavedListData = "asdf"; 
f2.Show(); 

(당신은 기본 생성자가 가정) 당신은 두 번째 양식을 적재하고 사용했습니다.

+0

첫 번째 해결책은 마음에 들지만 어떤 이유로 두 번째 양식을 열지 않습니다. – Zaedin

+0

Nevermind, 클릭 명령을 내리는 것을 잊었습니다. 다른 버튼이 클릭 할 때마다 내 저장된 정보를 삭제하지 못하게하는 방법을 찾아야합니다. – Zaedin

관련 문제