2016-05-24 17 views
0

Ich habe eine textbox und wenn ich mein Formular mit dem Mausrad nach unten scrolle und das Textfeld mit der Maus drücke, hört es auf zu scrollen.Verhindern, dass ein Textfeld das MouseWheel-Ereignis erfasst

Gibt es eine Möglichkeit, das zu vermeiden?

+1

Ein Mauszeiger ändert nicht häufig einen Texteditor, sicherlich können Sie das besser ausdrücken? Die Verwendung eines Labels anstelle von TextBox wäre der naheliegendste Weg, um das Dickicht Ihres Benutzers zu verwechseln. –

Antwort

0

OK, wenn ich Sie richtig verstehe, was Sie suchen, ist, Maus zu behalten, während Sie Ihre TextBox weitergeben. Ist das korrekt ?

Es gibt, denke ich, einen Weg, das zu erreichen. Dieser Code wurde jedoch nicht getestet, also halten Sie mich auf dem Laufenden, wenn es funktioniert.

Public Sub New() 
    InitializeComponents() 
    'Other inits here 
    AddHandler TextBox1.MouseWheel, AddressOf TBMouseWheel 
End Sub 

Private Sub TBMouseWheel(sender As Object, e As MouseEventArgs) 
    Me.OnMouseWheel(e) 
End Sub 

diese Weise, wenn Ihre Textbox ein Mousewheel-Ereignis erfasst, wird es auf dem Formular übergeben, die sie handhaben wird (glaube ich). Entschuldigung, ich habe nicht die Gelegenheit, es jetzt zu testen, aber ich glaube, das sollte den Trick machen.

+0

Sie sind die Besten !. Es klappt! – ZaZZ

0

Wenn Sie nur den visuellen Teil wollen, ändern Sie die Eigenschaft „Cursor“ der Textbox

enter image description here

+0

Nein, ist die Vermeidung von Fokus, was ich brauche – ZaZZ

+0

Ich glaube nicht, dass der Fokus normalerweise geändert wird, wenn Sie die Maus über ein Steuerelement bewegen. –

0

auf „Pfeil“ Wenn Sie, zu fokussiere nicht ein TextBox wollen, müssen Sie ein paar Lösungen

  1. die ReadOnly Eigenschaft auf True

Niemand wird ab Set le, um Text in Ihrem TextBox einzugeben, außer wenn Sie es programmatisch tun. Es ist jedoch immer noch möglich, darauf zu klicken und wenn Sie darauf klicken, sehen Sie den blinkenden Cursor (den Namen nicht in Englisch). Wenn der Läufer es schwebt, verwandelt es sich in einen Cursor.

Dies bedeutet, dass diese Option den Fokus auf das Steuerelement legt, aber die Dateneingabe nicht möglich ist.

  1. Stellen Sie die Enabled Eigenschaft auf False

Auch hier wird es nicht möglich sein, alle Daten einzugeben. Es ist auch nicht möglich, darauf zu klicken, und der Cursor ändert sich nicht, wenn Sie den Mauszeiger darüber bewegen.

Dies bedeutet, dass diese Option den Fokus auf das Steuerelement nicht erlaubt.

  1. Setzen Sie ein Label statt

Wenn niemand jemals in der Lage sein, Daten in Ihrem TextBox einfügen, vielleicht ist es besser, ein Label dort zu setzen. Wenn Sie die Option 1 oder 2 wählen, können Sie dem Benutzer erlauben, den darin enthaltenen Text zu ändern. Aber wenn es nur vom Programm geändert wird, ist Label gut genug.

Fokus ist niemals auf Etiketten erlaubt.

+0

Thx für die Antwort. Aber mein Problem ist, wenn mein Cursor die Textbox berührt, stoppt mein Mausrad. Die Eigenschaft aktiviert = false Es funktioniert, aber ich kann diese Lösung nicht zulassen. – ZaZZ

Verwandte Themen