Icon verschwindet in Textbox

14/11/2007 - 23:22 von Bernd Schend | Report spam
Hallo zusammen,

ich dachte schon, es wàre geschaft: Ich habe eine Textbox implementiert,
die von System.Windows.Forms.Textbox erbt. Der Textbox kann ein Icon
zugewiesen werden, das links innerhalb der Textbox angezeigt wird.
Eingetippter Text beginnt rechts vom Icon (einen entsprechenden Einzug
setze ich per SendMessage).

Das Ganze sieht auch richtig nett aus, aber ...
Sobald ich eingegebenen Text per Backspace lösche, verschwindet das
Icon. Komischerweise nicht gleich beim ersten Backspace, sondern erst,
wenn ich das zweite Zeichen (von links gesehen) gelöscht habe.

Sobald ich die Textbox verlasse (z.B. per TAB) wird das Icon wieder neu
gezeichnet.

Woran kann dieses seltsame "Backspace-Verhalten" liegen?
Für eure Tipps schon jetzt vielen Dank.

Gruß
Bernd


'Prozedur zum Zeichnen:
Protected Overrides Sub WndProc( _
ByRef pMsgInfo As System.Windows.Forms.Message)

MyBase.WndProc(pMsgInfo)

' Display icon if present.
If MyIcon IsNot Nothing Then
Const WM_PAINT As Integer = &HF
If pMsgInfo.Msg = WM_PAINT Then
Me.DrawIcon(MyIcon)
End If
End If

End Sub
 

Lesen sie die antworten

#1 Bernd Schend
17/11/2007 - 14:54 | Warnen spam
Hallo,

ich habe festgestellt, dass es nicht ausreicht, nur auf WM_PAINT zu
reagieren. Welche Message Codes relevant sind, muss ich wohl noch durch
Ausprobieren herausfinden.

Gruß
Bernd

Bernd Schend schrieb:
Hallo zusammen,

ich dachte schon, es wàre geschaft: Ich habe eine Textbox implementiert,
die von System.Windows.Forms.Textbox erbt. Der Textbox kann ein Icon
zugewiesen werden, das links innerhalb der Textbox angezeigt wird.
Eingetippter Text beginnt rechts vom Icon (einen entsprechenden Einzug
setze ich per SendMessage).

Das Ganze sieht auch richtig nett aus, aber ...
Sobald ich eingegebenen Text per Backspace lösche, verschwindet das
Icon. Komischerweise nicht gleich beim ersten Backspace, sondern erst,
wenn ich das zweite Zeichen (von links gesehen) gelöscht habe.

Sobald ich die Textbox verlasse (z.B. per TAB) wird das Icon wieder neu
gezeichnet.

Woran kann dieses seltsame "Backspace-Verhalten" liegen?
Für eure Tipps schon jetzt vielen Dank.

Gruß
Bernd


'Prozedur zum Zeichnen:
Protected Overrides Sub WndProc( _
ByRef pMsgInfo As System.Windows.Forms.Message)

MyBase.WndProc(pMsgInfo)

' Display icon if present.
If MyIcon IsNot Nothing Then
Const WM_PAINT As Integer = &HF
If pMsgInfo.Msg = WM_PAINT Then
Me.DrawIcon(MyIcon)
End If
End If

End Sub

Ähnliche fragen