마우스 이벤트는 속성창에

이벤트 영역에 있지 않다.


직접 손으로 타이핑 해서 구현해야한다고 한다.

일단 이벤트핸들러를 등록한다.

폼 클래스 내에 넣으면 된다.

전 Form1_Load 이벤트 안에 넣었습니다.


this.MouseWheel += new MouseEventHandler(BaseForm_MouseWheel);



그리고 중요한 휠 이벤트 내용

휠은 e.Delta 변수로

휠이 위로 올라갔는지 아래로 내려갔는지 알 수 있습니다.

e.Delta 가 양수면 아래로

음수면 위로 올라간것이며

얼마나 올라갔는지를 알려면

e.Delta값을 나눠서 사용하면 됩니다.

ex) e.Delta/120


private void BaseForm_MouseWheel(object sender, MouseEventArgs e)
{
    bool IsReduce = true;

    // 휠을 아래로 내리면
    // 축소(Reduce)가 아닌 확대(Expand) 이므로 false 대입
    if (e.Delta < 0)
    {
        IsReduce = false;
    }

    /* 셀의 크기가 셀의 한계 범위 안에 든다면
    * ->  MinCellSize < 셀 사이즈 < MaxCellSize
    * ResizeCellSize함수는 셀의 크기를 1씩 증가 혹은 감소 하고
    * true를 리턴한다.
    * 하지만, 셀 사이즈가 한계 크기와 같다면
    * 셀 크기에는 변동이 없고 false를 리턴
    * 리턴값이 true라면 화면을 다시 그린다.
    */
    if (MainBoard.ResizeCellSize(IsReduce) == true)
    {
        // 가로, 세로 셀의 개수를 다시 계산
        MainBoard.CalcCellNum();
        // 메인보드 다시 그림
        this.Invalidate();
    }
}

Posted by 투명테잎