Posted
Filed under .NET/C#

MDI 폼에서....
자식창이 한번에 띄워져 있는 경우...
이를 일일이 닫기 귀찮거나...
필요에 따라서 한번에 닫아야 하는 경우가 있을 껍니다... (아마도...요...)

foreach (System.Windows.Forms.Form TheForm in this.MdiChildren)
{
    TheForm.Dispose();
}

위 소스는... MDI 폼에서 자식창을 한번에.. 닫아주는 방법입니다...
(특정 메뉴에서.... 뭐 창 전부 닫기 버튼이라도 클릭시..... 등등..)
해당 메소드 안에서 해당 구문을 넣어 주십 됩니다...

※ 보나스 TIP(?)
MDI 로 작성하다가 자식 창을 새로 띄우게 되면.. 자식장의 이름이 제목 표시줄에 나타나게 되는데...
frmP frm = new frmP();
frm.MdiParent = this;
frm.Show();

자식장을 띄울 때.. 위 코드와 같이 부모창에서 MdiParent= this; 를 한번 넣어 봅니다..
2011/08/29 14:49 2011/08/29 14:49
Posted
Filed under .NET/C#
C# 에서 Thread.Sleep 등을 이용해서 Delay를 줄 순 있지만...
프로그램이...간혹 멈춰 버리는 문제가 발생해서...

 /// 
 /// Delay 함수 MS
 /// 
 /// (단위 : MS)
 /// 
 private static DateTime Delay(int MS)
 {
    DateTime ThisMoment = DateTime.Now;
    TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS);
    DateTime AfterWards = ThisMoment.Add(duration);

    while (AfterWards >= ThisMoment)
    {
        System.Windows.Forms.Application.DoEvents();
        ThisMoment = DateTime.Now;
    }

    return DateTime.Now;
 }
메소드 작성하시고 나서 .. Delay를 걸어줄 곳 찾아서 Delay(100); 식으로 입력하시면 됩니다.
단위는 밀리초로.. 1000 = 1초 입니다.
2011/08/03 12:54 2011/08/03 12:54