한 폼 내에서 다른 폼을 표시하거나 숨기거나 닫을 수 있기를 원합니다. 아이디어는 내 프로그램이 하나의 양식으로 시작하고 다른 양식을 보여줄 일부 단추가 있다는 것입니다. 즉, 사용자가 다른 양식을 가져 오기 위해 버튼을 클릭하면이 기본 양식이 최소화되어야하고 사용자가 다른 양식을 닫을 때마다이 양식이 정상 또는 최대화 상태로 돌아갑니다.여러 폼을 제어 C에서 하나의 폼으로 표시, 숨기기 또는 닫기 #
namespace MultipleForms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/*
* I want to make a public reference to this Form1
* So that when user closes Form2 That is F2 this form will be
* set back to normal or maximized state
*/
private void buttonStartForm2_Click(object sender, EventArgs e)
{
//Declare Form2
Form2 F2 = new Form2();
//Show Form2
F2.Show();
//Minimize Form1
this.WindowState = FormWindowState.Minimized;
}
}
}
그리고이 Form2.cs
namespace MultipleForms
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
//FormClosed event handler
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
//Closing Form2
this.Close();
//Now I need a code to make Form1 to recover from minimized
// state to normal or maximized state. how do I should refer to it?
}
}
}
이다 나는 어떤을 할 수 있다고 생각 :
코드는 다른 형태 (Form1.cs를가) 제어 내 주요 양식과 같습니다 물건을 닫는 이벤트에 물건을,하지만 어떻게 공개로 Form1.cs initilize 수 있습니까? 또는 Form2.cs에서 Form1.cs도 초기화해야합니까?
namespace MultipleForms
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
추신 :이 Form2를 한스 솔루션을 사용
UPDATE
을 가리는하지 폐쇄해야한다는 crtitical입니다, 그것은 또는 어쩌면 Program.cs 파일을 통해 수행해야 내가 제대로 이해한다면, 당신은 폼 닫기 이벤트에 연결할 수
private bool isEnabledCmpFrm = false;
public void buttonStartComparisonForm_Click(object sender, EventArgs e)
{
if (!isEnabledCmpFrm)
{
ComparisonForm CmpFrm = new ComparisonForm();
CmpFrm.Show();
CmpFrm.WindowState = FormWindowState.Normal;
this.WindowState = FormWindowState.Minimized;
isEnabledCmpFrm = true;
CmpFrm.FormClosed += delegate
{
this.WindowState = FormWindowState.Normal;
isEnabledCmpFrm = false;
};
}
}
고마워,이 작품은 좋지만, 표시 할 폼을 선택하기 위해 버튼을 클릭 할 때마다 그 폼 (폼의 같은 인스턴스이지만 다른 윈도우)이 실행됩니다. 어떻게 그것을 1 형식으로 제한 할 수 있습니까? 열린 양식이 닫히지 않는 한 양식의 새 인스턴스를 다시 작성해야합니다. –
새로운 질문을 시작하십시오. –