vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Prozedur KeyDown 
Autor: dj.tommy
Datum: 11.11.13 21:04

Hallo Leute!

Es ist eigentlich ein Klassenmodul, um Steuerelemente in der Laufzeit Größe und Position verändern, kann.
Kompletten Code findet ihr auf http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7659&lngWId=10
habe gelegentlich nur AddHandler ctrl.KeyDown, AddressOf mControl_KeyDown zusätzlich hinzugefügt, um die Steuerelemente per Tasten die Position ändern zu können, wie bei VB10.
Hier nur mal ein Stück Code
initialize:
 
    Public Sub bindControls()
 
        For x As Integer = 0 To _boundControls.Count - 1
            Dim ctrl As Control = _boundControls(x).mControl
            AddHandler ctrl.KeyDown, AddressOf mControl_KeyDown
            AddHandler ctrl.MouseDown, AddressOf mControl_mousedown
            AddHandler ctrl.Paint, AddressOf mControl_Paint
            'AddHandler ctrl.Resize, AddressOf mControl_Resize
            'AddHandler ctrl.Move, AddressOf mControl_Move
            Dim parent As Control = _boundControls(x).mParent
        Next
    End Sub
Mit einem Sub aufruf:
    Private Sub mControl_KeyDown(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.KeyEventArgs)
'Drücke die Taste nur 1x
        kt = kt + 1
        Main.Text = kt'<---am schluss bleibt es bei 8 stehen
 
        If activeControlParent IsNot Nothing Then _
          activeControlParent.Invalidate()
        Dim newCtrl As Control = activeControl
        If e.KeyCode = 38 Then
            newCtrl.Top = newCtrl.Top - 1
        ElseIf e.KeyCode = 39 Then
            newCtrl.Left = newCtrl.Left + 1
        ElseIf e.KeyCode = 40 Then
            newCtrl.Top = newCtrl.Top + 1
        ElseIf e.KeyCode = 37 Then
            newCtrl.Left = newCtrl.Left - 1
        End If
        activeControl.Invalidate()
        Application.DoEvents()
        drawBoundingRectangle()
        paintresize()
    End Sub
Habe ich ein folgendes Problem:

Wenn ich einmal die Taste drücke, wird die KeyDown Prozedur statt 1-mal 8-mal durchlaufen.
Was kann das Für gründe geben?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozedur KeyDown1.554dj.tommy11.11.13 21:04
Re: Prozedur KeyDown689dj.tommy11.11.13 21:25
Re: Prozedur KeyDown681Manfred X12.11.13 16:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel