Results 1 to 3 of 3

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Defender Kaspirtov's Avatar
    Join Date: Jun:2006
    Location: Sf
    Posts: 7,414

    Question RQ: Windows.Form íà VisualBasic

    Çäðàâåéòå

    Ðàçó÷àâàì VB çà Windows.Form è èìàì íóæäà îò ìàëêî (èëè ìîæå áè ìíîîãîî ) ïîìîù:

    Èìàì ôîðìà íà VB - panel, ñúñ ñòàíäàðòåí âåðòèêàëåí ñêðîë. Ñ ëÿâ áóòîí â/ó ñêðîëà è drag ñè ðàáîòè íîðìàëíî
    Èñêàì îáà÷å ïðè event - MouseWheel - äà ñå çàäåéñòâà ñêðîëà (íå ñòàâà àâòîìàòè÷íî)

    Äî òóê ñàìî óñïÿâàì äà ñåëåêòèðàì èìåííî ñêðîëà îò ïàíåëà:
    Code:
        Private Sub panel_MouseWheel(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles panel.MouseWheel
               Me.ActiveControl = panel.VScrollBar
        End Sub
    Íå çíàì, îáà÷å êàê äà ñêðîëèðàì â ïàíåëà ñ èíòåðâàë e.Delta... Äà àêòèâèðàì ñêðîëà íà ïàíåëà íå å äîñòàòú÷íî,ò.å. êàêâî èëè êîå òðÿáâà äà ïðîìåíÿ/äîáàâÿ, çà öåëòà?
    "Íèêîãà íå ìîæåì äà ñìå ñèãóðíè, ÷å ìíåíèåòî, êîåòî ñå ñòðåìèì äà çàäóøèì å ïîãðåøíî, à è äà áÿõìå ñèãóðíè, ïàê áè áèëî ïîãðåøíî äà ãî çàäóøèì."
    Äæîí Ñòþàðä Ìèë

  2. #2
    Registered User entium's Avatar
    Join Date: May:2003
    Location: Ðóñå
    Posts: 1,426

    Smile

    Äàëè òîâà íÿìà äà ñâúðøè ðàáîòà?

    Public Function MouseWheelChange(CurrentValue As Variant, DeltaValue As Variant, MinValue As Variant, MaxValue As Variant) As Variant
    Dim newvalue As Variant
    newvalue = CurrentValue + DeltaValue
    If newvalue < MinValue Then
    newvalue = MinValue
    ElseIf newvalue > MaxValue Then
    newvalue = MaxValue
    End If
    MouseWheelChange = newvalue
    End Function

    Public Sub MouseWheel(ByVal MouseKeys As Long, ByVal Rotation As Long, ByVal Xpos As Long, ByVal Ypos As Long)
    On Error Resume Next
    If TypeOf Me.ActiveControl Is VScrollBar Then
    With VScroll1
    .Value = MouseWheelChange(.Value, Sgn(Rotation) * .LargeChange, .Min, .Max)
    End With
    ElseIf TypeOf Me.ActiveControl Is TextBox Then
    Text1.Text = MouseWheelChange(Text1.Text, Rotation, -1000, 1000)
    End If
    End Sub
    EP43-DS3|E5200@3.33|ASUS EN9800GT HB /HTDI/ 512MB|2X2GB 800MHZ CL5 A-DATA|WD2500JB|NEC 4750A|BELINEA 1980S2

  3. #3
    Defender Kaspirtov's Avatar
    Join Date: Jun:2006
    Location: Sf
    Posts: 7,414
    Quote Originally Posted by entium View Post
    Äàëè òîâà íÿìà äà ñâúðøè ðàáîòà?
    Ìåðñè çà ïîìîùòà
    ×àê äíåñ óñïÿõ äà ãî ïîäêàðàì - ñòàíà ïî àíàëîãè÷åí íà òâîÿ íà÷èí, íî îïðåäåëåíî èäåîëîãè÷åñêè ìè ïîìîãíà ìíîãî!

    Code:
    Private Sub panel_MouseWheel(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles panel.MouseWheel
     
                Me.ActiveControl = panel.VScrollBar
                panel.AutoScroll = True
                delta= delta - e.Delta
                panel.ScrollTo(0, delta)
    End Sub
    delta ìè e ãëîáàëíà ïðîìåíëèâà, à ScrollTo(X, Y) - ÷ëåí ôóíêöèÿ íà ïàíåëà, óêàçâàùà íà êîÿ òî÷êà îò íåãî äà ñêðîëèðà

    P.S. btw êàòî âåäíúæ å íàïðàâåíî - ðåøåíèåòî èçãëåæäà íàïðàâî åëåìåíòàðíî
    "Íèêîãà íå ìîæåì äà ñìå ñèãóðíè, ÷å ìíåíèåòî, êîåòî ñå ñòðåìèì äà çàäóøèì å ïîãðåøíî, à è äà áÿõìå ñèãóðíè, ïàê áè áèëî ïîãðåøíî äà ãî çàäóøèì."
    Äæîí Ñòþàðä Ìèë

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè