2009-04-27 13 views
0

In einer Winforms-Anwendung (C# 2, FX2.0, VC2008) verwende ich eine Panel abgeleitete Steuerung, um benutzerdefinierte Steuerelemente anzuzeigen. Die Bedienelemente sind vertikal angeordnet und passen im sichtbaren Bereich des Panels in der Regel mehr als.Winforms UserControl zeigt Rechtecke mit invertierten Farben

Ich habe eine litte Skizze davon gezogen:

Panel http://www.ericschaefer.org/Panel.png

Manchmal (in der Regel innerhalb der Tafel nach dem Scrollen) rechteckige Flächen erscheinen ihre Farben invertiert haben (grünen Teil in Skizze). Diese Bereiche sind zufällig groß, scheinen aber immer am rechten Rand des Panels zu liegen. Wie Sie in der Skizze sehen können, sind die Pfeilschaltflächen der Bildlaufleiste ebenfalls invertiert, nicht jedoch der Daumenlider und der Bildlaufbereich.

von invertierten Farben schwarz I bedeuten wird weiß, weiß wird schwarz, blau wird braun, etc ...

ich aus Ideen bin.

  • Kann dies durch meine Anwendung verursacht werden?
  • Ist es sogar möglich, in die Pfeilschaltflächen der Bildlaufleiste zu zeichnen?
  • Irgendwelche Ideen?

EDIT: "Screenshot"

EDIT: Ich war falsch über das Panel. Es war ein Panel in der Vergangenheit, aber es ist jetzt ein UserControl. Gefällt mir:

public class MyPanel : UserControl 
{ 
    public MyPanel() 
    { 
     DoubleBuffered = true; 
     BorderStyle = BorderStyle.Fixed3D; 
     BackColor = Color.DarkBlue; 
     VScroll = true; 
     HScroll = false; 
     AutoScroll = true; 
     AutoScrollMargin = new Size(0, 4); 
    } 
}   
+0

Könnten Sie einen Screenshot der Anwendung in diesem Zustand veröffentlichen? Es könnte ein bisschen leichter sein zu sehen, was vor sich geht. – ChrisF

+0

Bearbeitete die Frage ... – EricSchaefer

+0

Könnten Sie einen Druckbildschirm anstatt ein Foto machen? Es ist immer noch sehr schwer zu sehen, was passiert. – ChrisF

Antwort

0

Gelöst: Anscheinend war es der Fehler des Fahrers Touchscreen. Ich kann jetzt das Verhalten reproduzieren. Wenn Sie die Scroll-Down-Taste einer Scroll-Leiste über den Touchscreen drücken und für eine Weile gedrückt halten, scrollen Sie weiter, wenn Sie sie loslassen (die Taste bleibt gedrückt). Danach können Sie klicken, wo Sie wollen, es wird immer die "invertierten Farben" auf der linken Seite der Bildlaufleiste sein. Es passiert mit jeder Anwendung (explorer.exe!). Jetzt wird es noch besser: Wenn Sie in der Windows-Taskleiste eine Bildlaufleiste ziehen, können Sie die Bildlaufleiste verlassen, wenn Sie die Maustaste gedrückt halten. Wenn Sie jedoch zu weit wegdriften, springt die Taste wieder an ihre ursprüngliche Position zurück (an der Sie mit dem Ziehen begonnen haben). Versuch es! Die Rechtecke der invertierten Farben sind genau so breit wie der Bereich, in dem Sie wegdriften können, ohne dass der Knopf zurückschnellt. Ich versuche es nicht einmal zu verstehen. Wir haben einen neueren Treiber für den Touchscreen installiert, der auch nach dem Loslassen der Taste "Bildlauf nach unten" nicht weiter scrollt und das Problem verschwand.Mein Blutdruck ist wieder normal, aber alle grauen Haare werden wahrscheinlich nicht schwarz. Ich denke ... Danke trotzdem ...

1

Verwenden Sie das System.Windows.Forms.Panel? Was meintest du, als du sagtest, dass die Kontrolle über das Panel gelte?

Wenn Sie System.Windows.Forms.Panel dann verwenden, sieht das wie ein Problem mit dem benutzerdefinierten Steuerelement und nicht dem Bedienfeld aus.

könnten Sie nach Möglichkeit weitere Informationen zum benutzerdefinierten Steuerelement bereitstellen?

+0

Es ist ein benutzerdefiniertes Steuerelement, das von S.W.F.Panel abgeleitet ist. Alles was es tut, ist die Untersteuerungen (auch benutzerdefinierte Steuerelemente) in sich selbst zu platzieren. Es gibt keine Zeichnung im Panel, abgesehen von BackColor. – EricSchaefer

+0

Sieht so aus, als hätte das Doppelbuffering einige Probleme, aber es ist nicht in der Lage, genau auf das Problem hinzuweisen. –

1

Von Ihrem Foto sieht es so aus, als ob etwas hervorgehoben ist, aber der Rahmen passt nicht zu sichtbaren Steuerelementen.

Haben Sie eine Kontrolle, die irgendwie hinter dem Rest versteckt ist?

+0

Nein, es gibt keine versteckte Kontrolle. Die tatsächliche Größe des Bereichs ist unterschiedlich. Es wurde berichtet, dass es viel größer und auch viel kleiner als auf dem Foto ist. Wie in der Skizze gezeigt, gab es auch zwei dieser Bereiche gleichzeitig. – EricSchaefer

Verwandte Themen