C# MDI WinForms 응용 프로그램에서 이상한 동작이 나타납니다. 특정 양식을 다른 양식과 함께 열면이 양식이 잠 깁니다. 어떻게 든이처럼 보이는, 하나에 두 폼의 ControlBox 그룹화 : 양식으로mdi winform을로드 할 때 이상한 동작 C# .net
이 닫혀 있지, 응답을 중지하고 그림 중지 :
이상한를 부분은 다른 형식의 조합이 잘 작동한다는 것입니다. 양식이 서로의 위에로드되고 응용 프로그램이 고정되지 않습니다. 하지만 다른 사람들과 비교해이 양식에 대해 다른 점을 알아낼 수는 없습니다. 모든 설정이 동일합니다. 이 새로운 자식 폼을 시작, 주요 MDIform의 코드입니다 자사의 ToolStrip에 Button.Click 이벤트에서 호출 :
private void OpenForm(object sender)
{
if (sender == null) return;
ToolStripMenuItem itemSender = (ToolStripMenuItem)sender;
try
{
WinForm mapping = (WinForm)itemSender.Tag;
if (!FormList.ContainsKey(mapping.FormName))
{
Type frmType = Type.GetType(string.Format("OrderAssist.Forms.{0}", mapping.FormName));
if (frmType != null)
{
Form newForm = (Form)Activator.CreateInstance(frmType);
if (!newForm.IsDisposed)
{
newForm.Name = mapping.FormName;
newForm.Tag = itemSender;
newForm.MdiParent = this;
newForm.Show();
newForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
newForm.FormClosing += new FormClosingEventHandler(newForm_FormClosing);
FormList.Add(newForm.Name, newForm);
itemSender.Checked = true;
newForm.Activate();
}
}
else
itemSender.Enabled = false;
}
else
FormList[mapping.FormName].Activate();
}
catch (Exception e)
{
Exceptions.ProgramException(e, Settings.User.ID, "Exception occured while opening a form.");
if (itemSender != null)
itemSender.Enabled = false;
}
}
이 문제의 낯선 사람을, 내가 데이터를 잠금이 양식을 채우는 경우에 클릭합니다 다른 양식을 열기 전에 내부의 일부 컨트롤에서 오류가 발생하지 않습니다.
다음에 시도 할 내용이 없습니다.
문제에 대한 해결책은 아니지만 사진에서 방금이 것을 상기 시켰습니다. http : //d24w6bsrhbeh9d.cloudfront.net/photo/274060_700b.jpg* : D – Otiel
아무 것도 볼 수 없지만, d MDI 코드의 모든 재귀를 찾으십시오. 같은 양식을 여러 번 열어 보니 응용 프로그램을 "잠그는"것입니다. 당신이 말한 것에서 그것은 여러 번 호출되는 이벤트 처리 일 수 있습니다. –
이것은 Winforms 어댑터 코드의 MDI 버그입니다. 이 MDI 기본 폼 생성자에서 자식 창을 만들 때 발생합니다. Load 이벤트 (OnLoad)를 대신 사용하십시오. 죽은 그림은 아마도 다른 것일 겁니다. –