나는이 사람과 다소 달라 붙어있어 누군가 나를 도울 수 있기를 바란다.DialogResult가 아닌 Object를 반환하는 Windows Forms 모달 대화 상자
Winforms 응용 프로그램을 수행하고 있으며 값을 반환하는 모달 대화 상자 (form.ShowDialog)를 표시해야합니다 (사용자에게 일부 값을 묻고 개체로 래핑).
개체에 대한 참조를 제공하거나 나중에 public 속성의 일부 형식에 따라 데이터를 읽는 대신이 작업을 수행하는 방법을 알 수 없습니다.
저는 ShowDialog가 다른 것을 돌려 주길 원합니다.하지만 작동하지 않습니다. 이렇게하려면 "좋은"방법이 있습니까?
나는 문제가 새로운 것은 아니지만 거의 아무도 Winforms를 더 이상 보이지 않기 때문에 웹에서 어떤 지침도 찾을 수 없다고 확신합니다.
public class MyDialog : Form
{
// todo: think of a better method name :)
public static MyObject ShowAndReturnObject()
{
var dlg = new MyDialog();
if (new dlg.ShowDialog() == DialogResult.OK)
{
var obj = // construct an instance of MyObject from dlg
return obj;
}
else
{
return null;
}
}
}
지금 당신이 thusly 히 프로그램에서이 호출 할 수 있습니다 :
Dammit :) 거의 정확히 내가 가진 것입니다. (내 메서드 ShowDialog를 호출하는 것 - 그리고 왜 그렇지 않은 것입니까?). –
아, 그리고 코드 블록을 들여 쓰면 문법이 달라집니다. –
흠 - 내 전화를하지 않았습니다. ShowDialog '사촌과 같은 이름의 정적 메서드를 사용하려고 애쓰는 것에 대해 걱정했습니다. 인스턴스 메서드이며 반환 유형에 의해서만 오버로드됩니다. 나는 그것이 가능하다고 생각하지 않는다. –