데브피아에 글을 올렸었는데 답변이 안와서 물어볼 곳이 없어서 여기다 질문 드립니다.
버튼 클릭시 자식폼간 이동하는 곳에서 계속해서 에러가 나는데요
부모폼은 버튼만을 가지고 있고 자식폼들은 그 버튼들을 공유합니다.
소스코드)
public Base()
{
InitializeComponent();
}
Form1 main;
CutLine cutLine;
DataTable dataTable;
Manual manual;
Setting setting;
LogData logData;
private void Base_Load(object sender, EventArgs e)
{
}
#region 버튼 이벤트
private void btnLogin_Click(object sender, EventArgs e)
{
if (defineValue.loginState == defineValue.LOGIN_OFF)
{
Login loginChildForm = new Login();
loginChildForm.ShowDialog();
this.btnLogin.Text = "로그아웃";
}
else
{
DialogResult dr = MessageBox.Show("정말 로그아웃 하시겠습니까?", "로그인", MessageBoxButtons.OKCancel);
if (dr == DialogResult.OK)
{
this.btnLogin.Text = "로그인";
defineValue.loginState = defineValue.LOGIN_OFF;
}
}
}
private void btnMain_Click(object sender, EventArgs e)
{
if (main == null)
{
main = new Form1();
main.MdiParent = this;
main.Dock = DockStyle.Fill;
main.Show();
}
else
{
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(Form1))
{
form.Activate();
form.BringToFront();
break;
}
}
}
}
private void btnResultTable_Click(object sender, EventArgs e)
{
if (dataTable == null)
{
dataTable = new DataTable();
dataTable.MdiParent = this;
dataTable.Dock = DockStyle.Fill;
dataTable.Show();
}
else
{
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(DataTable))
{
form.Activate();
form.BringToFront();
break;
}
}
}
}
private void btnLogTable_Click(object sender, EventArgs e)
{
if (logData == null)
{
logData = new LogData();
logData.MdiParent = this;
logData.Dock = DockStyle.Fill;
logData.Show();
}
else
{
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(LogData))
{
form.Activate();
form.BringToFront();
break;
}
}
}
}
private void btnRecipe_Click(object sender, EventArgs e)
{
if (cutLine == null)
{
cutLine = new CutLine();
cutLine.MdiParent = this;
cutLine.Dock = DockStyle.Fill;
cutLine.Show();
}
else
{
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(CutLine))
{
form.Activate();
form.BringToFront();
break;
}
}
}
}
private void btnManual_Click(object sender, EventArgs e)
{
if (manual == null)
{
manual = new Manual();
manual.MdiParent = this;
manual.Dock = DockStyle.Fill;
manual.Show();
}
else
{
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(Manual))
{
form.Activate();
form.BringToFront();
break;
}
}
}
}
private void btnSetting_Click(object sender, EventArgs e)
{
if (setting == null)
{
setting = new Setting();
setting.MdiParent = this;
setting.Dock = DockStyle.Fill;
setting.Show();
}
else
{
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(Setting))
{
form.Activate();
form.BringToFront();
break;
}
}
}
}
소스코드는 이렇습니다. 그런데 저는 처음화면 실행시 메인 화면이 나오게 하고 싶어서
base_Load 함수에다 btnMain_Click(sender,e); 이렇게 썼습니다.
그런데 다른 메뉴 버튼을 클릭하면
"이 폼의 MdiParent로 지정한 폼이 MdiContainer가 아닙니다." 이러한 오류가 뜨더라고요
속성에서 부모폼을 제외한 자식폼들은 isMDIcontainer = false 로 했습니다.
Base_load에 아무것도 안쓰고 실행시키니 베이스의 회색화면이 나오고 버튼을 눌러야 제대로 작동되더라구요.
어떻게 해결하면 좋을지 고수님들의 답변 부탁드립니다.