0
나는 방법을 사용하고 있습니다. 나는 자식 폼을 많이 가질 것입니다. 이제는 버튼을 클릭하여 양식을 호출 할 때 표시되지만 로그인 하위가 닫힌 후에는 표시되지 않습니다.C# MDI 자식이 표시되지 않습니다.
방법 :
MDIcontainer 이미 요청 양식을 포함하는 경우이 그냥 단순히 확인private void mForms(Form f)
{
if (this.MdiChildren.Contains(f))
{
f.WindowState = FormWindowState.Normal;
}
else
{
f.MdiParent = this; f.Show();
}
}
. 예인 경우 다시 올려 놓으십시오 (최소화 된 경우를 대비하여). 그렇지 않은 경우 표시하십시오.
지금은이를 사용하여 양식을 호출 할 수 있습니다
private void ts_bestand_studenten_add_Click(object sender, EventArgs e)
{
if (add_student.IsDisposed)
{
add_student = new add_student();
}
mForms(add_student);
}
이 검사가 이미 여부에 배치됩니다. 그렇다면 다시 정의하십시오. 그런 다음 올바른 양식을 여는 메소드를 호출합니다. 이것은 정상적으로 작동합니다.
이제 문제가있는 부분 : 로그인 화면이 닫히고 사용자가 로그인하면 사용자 수준이 정의됩니다. 다른 양식을 열 수 있어야합니다.
// Predefines start_screen_admin
Form start_screen_admin = new start_screen_admin();
public void mCommitRights()
{
if (userlevel.gCheckLevel == 0)
{
// Admin, no changes
MessageBox.Show("Admin");
mForms(start_screen_admin);
}
... more of the same to check for userlevels
}
지금 당신이이 일을해야한다고 생각 : (이 메시지 박스에 도달 않기 때문에 userlevels가 잘 작동 참고) 이것은 내가 그것을 위해 사용하는 방법입니다. 처음으로 열리고 이미 미리 정의되어 있기 때문에 다시 정의 할 필요가 없습니다. MessageBox가 표시되지만 양식은 표시되지 않습니다. 나는이 문제를 실제로 볼 수 없다. 내가 생각할 수있는 ..
차이를. 내 게시물에 명시된 것처럼 : 양식을 호출하는 방법은 다른 양식과 완벽하게 작동합니다. 로그인이 닫히면 전화를 걸 때 표시되지 않으며 최소화되지도 않습니다. –
@Rune 재현 할 수 없습니다. 'start_screen_admin' 파일을 만들 때 코드가 표시되지 않습니다. 아마도 문제가있을 수 있습니다. 또한 MessageBoxes로 디버깅을 피하십시오. GUI를 방해 할 수 있습니다. – LarsTech
@Lars_Tech 나는 그것을 포스트에 올렸다. 나는 이것을 사용한다 : Form start_screen_admin = new start_screen_admin(); –