2010-11-26 4 views
0

Ich habe einige verschachtelte SplitContainer und es gibt ein unerwünschtes Verhalten. Jedes Mal, wenn sich der Splitter bewegt, erhalten die Steuerelemente ihren Text ausgewählt (der Text wird markiert), speziell die ComboBoxen..NET Fehler? SplitContainer Split move wählt den gesamten Text der enthaltenen Steuerelemente aus

Ich weiß nicht, warum Thios passiert. Das Problem ist relativ einfach zu reproduzieren. Sie müssen nur:

  1. Erstellen Sie das Formular.
  2. A legen Sie einen geteilten Behälter hinein.
  3. Fügen Sie eine ComboBox mit einigen Elementen hinzu.
  4. Verankern Sie die linke und rechte Seite der ComboBox.
  5. Compile
  6. Bewegen Sie den Splitter

Sie werden sehen, dass die ComboBox seinen Text markiert haben.

Wie kann ich dies verhindern? Oder zumindest, entfernen Sie das Highlight aus den ComboBoxen?

Vielen Dank für Ihre Hilfe!

Antwort

3

Dies ist ein uralter Fehler in der Windows Combobox Steuerelement. Ja, es wählt den Text aus, wenn es die WM_SIZE-Nachricht erhält. Dies ist spezifisch für DropDownStyle = DropDown.

Dies ist eine mögliche Abhilfe:

using System; 
using System.Windows.Forms; 

class MyComboBox : ComboBox { 
    protected override void OnResize(EventArgs e) { 
     if (!this.Focused && this.DropDownStyle == ComboBoxStyle.DropDown) { 
      this.SelectionLength = 0; 
     } 
     base.OnResize(e); 
    } 
} 
+0

Vielen Dank. Es hat total funktioniert. – Scudelari

Verwandte Themen