Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Förhindra mus-klick händelse i en Textbox

Postades av 2001-05-04 08:13:00 - Raderat konto, i forum visual basic - allmänt, Tråden har 1 Kommentarer och lästs av 466 personer

Jag har en sträng i en Textbox. När man klickar i Textboxen
ska klickhändelsen ignoreras och insättningspunkten ska stanna
i sitt ursprungliga läge.
Fråga 1: hur ser koden ut som ignorerar denna klickhändelse ?
Fråga 2: har du en bra länk på Internet med sådana koder ?

Gunnar


Svara

Sv: Förhindra mus-klick händelse i en Textbox

Postades av 2001-05-04 10:43:00 - Andreas Hillqvist

Jag känner inte till något lätt sätt att göra det på. Men det går att göra med Subclassing. Vilket har nackdelen att det inte låter dig stega igenom dit projekt. För då kommer ett fel upstå och VB kommer att stängas. Om man inte kapslar koden i en DLL. Om du absolut måste göra det så kan du använda följande kod:

(Jag hindrar bara händelser för vänsterklick. Om du vill hindra alla typer och klick, lägger du bara till WM_MBUTTONDBLCLK, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_RBUTTONDBLCLK, WM_RBUTTONDOWN, WM_RBUTTONUP på första case raden.)

'Module1

Option Explicit

Private Const GWL_WNDPROC As Long = (-4)

Private Const WM_DESTROY = &H2

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205

Private Const PropertyName As String = "PrevWndFunc"


Private Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hWnd As Long, ByVal lpString As String) As Long
Private Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hWnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
Private Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hWnd As Long, ByVal lpString As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


Public Function DisableMouseSelect(TextBox As TextBox) As Boolean
Dim lReturn As Long
lReturn = GetProp(TextBox.hWnd, PropertyName)
If lReturn Then
DisableMouseSelect = False
Else
lReturn = SetWindowLong(TextBox.hWnd, GWL_WNDPROC, AddressOf WindowProc)
If lReturn Then
SetProp TextBox.hWnd, PropertyName, lReturn
DisableMouseSelect = True
Else
DisableMouseSelect = False
End If
End If
End Function

Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim lReturn As Long
Dim lpPrevWndFunc As Long
On Error GoTo WindowProc_Err
lpPrevWndFunc = GetProp(hWnd, PropertyName)

Select Case uMsg
Case WM_LBUTTONDBLCLK, WM_LBUTTONDOWN, WM_LBUTTONUP
Case WM_DESTROY
SetWindowLong hWnd, GWL_WNDPROC, lpPrevWndFunc
RemoveProp hWnd, PropertyName
WindowProc = CallWindowProc(lpPrevWndFunc, hWnd, uMsg, wParam, lParam)
Case Else
WindowProc = CallWindowProc(lpPrevWndFunc, hWnd, uMsg, wParam, lParam)
End Select

WindowProc_Exit:
Exit Function

WindowProc_Err:
MsgBox Err.Description, vbCritical
Resume WindowProc_Exit
End Function

'Form1
' * Text1: Multiline=True, ScrollBars = 3 - Both
Option Explicit

Private Sub Form_Load()
DisableMouseSelect Text1
End Sub

Private Sub Form_Resize()
Text1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
460
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies