! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

마우스 휠로 좌우이동 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 마우스 휠로 좌우이동

페이지 정보

작성자 강한 작성일 2024-03-14 18:06 조회 35회 댓글 0건
제품 버전 : 9.35
컨트롤 이름 : FarPoint.Win.Spread.FpSpread

본문

    Private Sub FpSpread1_MouseWheel(sender As Object, e As MouseEventArgs) Handles spdPatList.MouseWheel

        If Control.ModifierKeys = Keys.Shift Then

            OnMouseWheel(e)

        End If

    End Sub


    Protected Overrides Sub OnMouseWheel(e As MouseEventArgs)

        If Control.ModifierKeys = Keys.Shift Then

            Dim deltaY As Integer = e.Delta


            ' Y축으로 이동한 양을 X축으로 적용하여 수평 스크롤 동작으로 변환

            Dim deltaX As Integer = 0 ' X축으로의 이동량

            If deltaY <> 0 Then

                Dim visibleColumns As Integer = spdPatList.GetViewportRightColumn(0) - spdPatList.GetViewportLeftColumn(0) + 1

                deltaX = CInt(deltaY / 120 * visibleColumns)

            End If


            ' 반대 방향으로 이동

            spdPatList.SetViewportTopRow(0, spdPatList.GetViewportTopRow(0) + (deltaY / 120))

            spdPatList.SetViewportLeftColumn(0, spdPatList.GetViewportLeftColumn(0) - deltaX)

        End If

    End Sub


이런식으로 마우스 휠+Shift 키로 좌우이동을 구현했습니다.

하지만 좌우뿐 아니라 상하로도 같이 움직이네요ㅜㅜ 혹시 Shift+마우스휠로 좌우로만 움직이도록 구현 가능할까요?

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: 마우스 휠로 좌우이동

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS써니 작성일 2024-03-15 17:06 댓글 0건

본문

강한 님, 안녕하세요.

메시어스입니다.


상세한 내용을 공유해주심에 감사드립니다.


마우스 휠 + Shift 키로 좌우 이동을 구현하기 위해, 다음과 같은 코드를 적용하실 수 있습니다.
Private Sub FpSpread1_MouseWheel(ByVal sender As Object, ByVal e As MouseEventArgs) Handles FpSpread1.MouseWheel
    If Control.ModifierKeys = Keys.Shift Then
        Dim spread As FarPoint.Win.Spread.FpSpread = CType(sender, FarPoint.Win.Spread.FpSpread)
        spread.SetViewportLeftColumn(0, spread.GetViewportLeftColumn(0) - (e.Delta / 120))
        CType(e, HandledMouseEventArgs).Handled = True
    End If
End Sub


다만 현재 사용하시는 9버전에서는 마우스 휠 + Shift 키 사용과 관련된 제한사항이 있어 해당 기능 구현이 어려운 상황입니다.

해당 사항은 15버전 서비스팩 2에서 개선되었으며, 15버전 서비스팩 2부 포함 그 이후 버전부터 좌우 스크롤 기능을 구현하여 적용하실 수 있습니다.

아래 링크를 통해 최신버전인 Spread.NET V17을 설치하여, 원하시는 기능을 테스트해보실 수 있습니다.

- Spread.NET 최신버전 체험판 신청하기


버전이 올라가면서 다양한 기능들이 추가되고 있습니다. 기회가 되신다면 최신버전으로 업그레이드 하셔서, 좌우 스크롤 기능 구현과 함께 다양한 신규 기능 활용을 고려해보시기 바랍니다.

만약 버전 업그레이드가 어려우신 경우에는, 다음과 같이 FpSpread를 상속하는 사용자정의 클래스를 구현하여 사용하실 수도 있습니다. 샘플 코드를 참고하여주시기 바랍니다.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim fpSpread1 As HorzWheelFpSpread = New HorzWheelFpSpread()
    fpSpread1.Dock = Dock.Fill
    fpSpread1.Name = "fpSpread1"
    fpSpread1.Sheets.Count = 2
    Me.Controls.Add(fpSpread1)
    fpSpread1.ActiveSheet.Cells(0, 0).Text = "FpSpread"
End Sub

Public Class HorzWheelFpSpread
    Inherits FarPoint.Win.Spread.FpSpread

    Public Sub New()
        MyBase.New()
    End Sub

    Protected Overrides Sub OnMouseWheel(ByVal e As MouseEventArgs)
        If Control.ModifierKeys = Keys.Shift Then
            SetViewportLeftColumn(0, GetViewportLeftColumn(0) - (e.Delta / 120))
        Else
            MyBase.OnMouseWheel(e)
        End If
    End Sub
End Class


감사합니다.

메시어스 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.