윈도우 이동시키기

 

        private bool onClick;
        private Point startPoint = new Point(0, 0);
        private void moveWindow_MouseMove(object sender, MouseEventArgs e)
        {
            if(onClick)
            {
                Point p = PointToScreen(e.Location);
                Location = new Point(p.X - this.startPoint.X, p.Y - this.startPoint.Y);
            }
        }
        private void moveWindow_MouseDown(object sender, MouseEventArgs e)
        {
            onClick = true;
            startPoint = new Point(e.X, e.Y);
        }
        private void moveWindow_MouseUp(object sender, MouseEventArgs e)
        {
            onClick = false;
        }

 

판넬이나 기타 컨트롤을 마우스로 드래그해서 윈도우를 이동시키려면

아래처럼 해당 컨트롤에 이벤트 추가

 

 

윈도우 최소화시키기

        private void btnMinimize_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }

해당 함수를 최소화 버튼의 클릭 이벤트에 등록

다른 쓰레드에서 폼 종료하려 할때 크로스 스레드 뭐라 뜨면서 안될때

델리게이트를 사용하면 됩니당

 

MainFormClose(); 호출하면 OK

        private delegate void MainFormCloseDelegate();
        private void MainFormClose()
        {
            if (InvokeRequired)
            {
                MainFormCloseDelegate del = new MainFormCloseDelegate(MainFormClose_threadSafe);
                this.Invoke(del);
            }
            else MainFormClose_threadSafe();
        }
        private void MainFormClose_threadSafe()
        {
            MessageBox.Show("프로그램 종료");
            this.Close();
        }

[리스트뷰 이름].Items.Add([아이템]);

[리스트뷰 이름].EnsureVisible([리스트뷰 이름].Items.Count - 1);

 

아래쪽에 추가되면 스크롤 자동으로 아래로 이동

+ Recent posts