하나의 폼 내에서 실행되는 메서드가 있지만이 메서드로 전달할 다른 폼의 데이터를 검색해야합니다.C# WinForms - 다른 폼을 통해 한 폼의 텍스트 상자에서 데이터를 검색하는 방법?
가장 좋은 방법은 무엇입니까?
하나의 폼 내에서 실행되는 메서드가 있지만이 메서드로 전달할 다른 폼의 데이터를 검색해야합니다.C# WinForms - 다른 폼을 통해 한 폼의 텍스트 상자에서 데이터를 검색하는 방법?
가장 좋은 방법은 무엇입니까?
formB가 formA에서 초기화된다고 가정하면 formB의 생성자에 문자열을 추가하여 Texbox1을 보내는 것이 좋습니다.
class formB: Form{
private string data;
public formB(string data)
{
InitializeComponent();
this.data = data;
}
//rest of your code for the class
}
한 양식에 속성을 표시하고 다른 양식에서 속성을 호출 할 수 있습니다. 물론 form1의 인스턴스를 가져올 수있는 방법이 필요합니다. 프로그램 클래스 나 다른 부모 클래스의 정적 속성으로 유지할 수 있습니다. 일반적으로이 경우 인스턴스를 보유하는 정적 응용 프로그램 클래스가 있습니다.
public static class Application
{
public static MyForm MyFormInstance { get; set; }
}
그런 다음 첫 번째 양식을 시작할 때 응용 프로그램 MyFormInstance 속성을 첫 번째 양식의 인스턴스로 설정하십시오.
MyForm instance = new MyForm();
Application.MyFormInstance = instance;
두 번째 양식에 속성을 추가하십시오.
public String MyText
{ get { return textbox1.Text; }
set { textbox1.Text = value; }
}
그리고 당신은 당신의 두 번째 양식에서 액세스 할 수 있습니다 : 당신이 건물 또는 텍스트를 반환하는 방법 중 하나를 노출 데이터를 필요로하는 텍스트 상자가있는 폼에
Application.MyFormInstance.MyText
. IE :
internal string TextBoxTest
{
get{ return this.textBox1.Text;}
}
그래서 어떻게 내 원래 메서드를 실행하려면 원하는 양식에서 해당 메서드를 호출 할? – Goober
이렇게하지 마십시오.
긴 버전 :보기가 다른보기와 직접 상호 작용하는 이유는 무엇입니까?
더 이상 버전 :
오히려 필드를 노출 공용 속성을보다 관심 분야와 양식이었다 데이터 객체의 형태와 상호 작용하는 경우, 그것은 변화에서 더 나은 캡슐화 및 절연을 제공 할 것 그런 다음 관심있는 방법으로 전달됩니다.
관심있는 방법의 위치를 신중하게 고려해야합니다. -보기의 측면 (예 : WinForm)을 제어하는 경우 적절하게 해당 클래스의 구성원 일 수 있습니다. 그렇지 않은 경우 실제 집이 데이터 객체?
은 비디오 아래의 두 형태 사이에 데이터를 전달 대해 많은 개념을 정리하는 유사한 포스트 here
에게 있습니다. http://windowsclient.net/learn/video.aspx?v=108089
FormToForm 사용하여 매개 변수 - - http://windowsclient.net/learn/video.aspx?v=105861
는 예를 들어 비디오가이 링크 속성을 사용하여이
FormToForm을 확인 두 형태 사이에 데이터를 전달하는 여러 가지 방법이 있습니다
HTH
자와 같이 텍스트
는 쉬운 방법은 당신이 직접 액세스 할 수 있습니다, 공공 등의 텍스트 상자의 수정 속성을 표시하는 것입니다하지만 당신은 여전히 인스턴스에 얻을 수있는 방법이 필요합니다 . –