요즘 Android를 공부하고 있으며 그 기능 중 하나를 C# compact 프레임 워크로 이식하려고했습니다.다음에 양식을 닫으려고하면 C#으로 표시됩니다. # cf
내가 한 것은 Activity라고하는 추상 클래스를 만드는 것입니다. 이 클래스는 내가 가진 문제는 Show()
명령
기본적으로 내 모든 클래스가 위의 클래스를 구현의 일부를 실행하는 것입니다이
internal abstract class Activity
{
protected Form myForm;
private static Activity myCurrentActivity = null;
private static Activity myNextActivity = null;
internal static void LoadNext(Activity nextActivity)
{
myNextActivity = nextActivity;
if (myNextActivity != null)
{
myNextActivity.Show();
if (myCurrentActivity != null)
{
myCurrentActivity.Close();
myCurrentActivity = null;
}
myCurrentActivity = myNextActivity;
myNextActivity = null;
}
}
internal void Show()
{
//PROBLEM IS HERE
Application.Run(myForm);
//myForm.Show();
//myForm.ShowDialog();
//
}
internal void Close()
{
myForm.Close();
}
internal void GenerateForm()
{
///Code that uses the Layout class to create a form, and then stores it in myForm
//then attaches click handlers on all the clickable controls in the form
//it is besides the point in this problem
}
protected abstract void Click(Control control);
//this receives all the click events from all the controls in the form
//it is besides the point in this problem
}
과 같은 XML 파일을로드하고 표시합니다. 나는 (ACMain에서 ACLogIn에가는 예를 들어) 나는 다음 양식을로드 보여, 현재 양식을 언로드하도록되어이 코드
Activity.LoadNext(new ACLogIn);
를 사용하는 새로운 클래스/형태로 전환 할 때
는 I합니다 (Show()
방법) 이들 솔루션을 시도하고 여기 myForm.ShowDialog()
,321를 사용하여 각
가진 한 문제 0이 작동하지만, 블록의 실행 이전 형태 근접하지 않는 것을 의미하고, 더욱 I이 작동
myForm.Show()
를 사용하여 더 처리 스택 증가형태 사이에서 움직 후의 구 형태를 닫고 이전이 표시되어 있지만, 프로그램을 종료하고 종료 직후
내가 다음 양식으로 이동할 때이로드 첫 번째 양식에서만 작동
Application.Run(myForm)
를 사용하여, 그것은 "그 다음 말에서 예외가 발생 보여줍니다 값이 예상 범위를 벗어납니다. "
누군가가 문제를 해결하거나 대안을 찾도록 도와 줄 수 있습니까?
주요 문제는 1 개의 기본 양식 만 가질 수 있다는 것입니다. Aplication에 쓰기 가능한 MainForm 속성이 있는지 확인한 다음 Show()에 해당 속성을 사용하십시오. –