Windows Forms 간에 데이터 전달
Windows Forms 애플리케이션에서는 여러 양식 간에 데이터를 공유해야 하는 경우가 많습니다. 한 양식이 다른 양식을 열 때 사용할 새 양식에 대한 특정 정보를 전달해야 할 수도 있습니다. 이를 달성하기 위한 일반적인 접근 방식 중 하나는 대리인을 이용하는 것입니다.
문제 설명
특정 시나리오에서 기본 양식에는 하위 양식을 여는 "설정"이라는 버튼이 있습니다. "설정 양식"이라고 합니다. 요구 사항은 변수의 값이 새 양식에 표시될 수 있도록 열 때 설정 양식에 변수를 전달하는 것입니다.
대리자 접근
해결하려면 이 문제가 발생하면 사용자 정의 이벤트 핸들러를 허용하는 기본 양식에서 대리자를 정의할 수 있습니다. 그러면 이벤트 핸들러는 이벤트 인수 클래스를 통해 변수를 하위 양식에 전달합니다.
제공한 코드 조각에서 다음 대리자와 이벤트는 MainForm 클래스에 정의되어 있습니다.
public partial class MainForm : Form { public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); public event PageInfoHandler PageInfoRetrieved; ... }
변수 값을 보유하려면 PageInfoEventArgs 클래스를 정의해야 합니다.
public class PageInfoEventArgs : EventArgs { public string SomeString; public PageInfoEventArgs(string someString) { SomeString = someString; } }
"설정" 버튼이 기본 양식에서 클릭하면 PageInfoEventArgs 인스턴스가 변수 값으로 생성되고 PageInfoRetrieved 이벤트가 시작됩니다. 그러면 설정 양식의 이벤트 핸들러가 변수를 수신하고 이를 사용하여 값을 표시할 수 있습니다.
생성자 접근 방식
또 다른 접근 방식은 변수를 매개변수를 설정 양식 생성자에 추가합니다. 그런 다음 양식은 논리에서 생성자 매개변수를 사용할 수 있습니다.
예를 들어 다음과 같이 할 수 있습니다.
public class SettingsForm : Form { private string _variable; public SettingsForm(string variable) { _variable = variable; } ... // Use _variable as needed }
MainForm에서 설정 양식을 다음과 같이 생성합니다.
SettingsForm settingsForm = new SettingsForm("value"); settingsForm.ShowDialog();
위 내용은 Windows Forms 간에 데이터를 효율적으로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!