>백엔드 개발 >C++ >Windows Forms 간에 데이터를 효율적으로 전달하는 방법은 무엇입니까?

Windows Forms 간에 데이터를 효율적으로 전달하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-03 20:46:40929검색

How to Efficiently Pass Data Between Windows Forms?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.