2017-03-14 8 views
-1

Ich muss etwas wie malen, die nur unterscheiden, können Sie auf dem Bildschirm zeichnen. Wenn ein Benutzer auf ein Werkzeug klickt (Stift, Linie, Rechteck, Text usw.), mache ich einen Screenshot des Bildschirms und lege ihn als Hintergrundbild für ein zweites Vollbild vor. Dann, indem Sie Mausereignisse behandeln, zeichnen Sie darauf. Ich versuche, MS Paint zu folgen und Text mit dem dritten Formular mit einer RichTextBox darin zu zeichnen. Dieses Formular muss transparent sein, und danach werde ich einen neuen Screenshot aufnehmen und als Hintergrund des zweiten Formulars laden.Weird Text in RichTextBox C#

Dies ist Code für das dritte Formular, das transparent ist.

this.FormBorderStyle = FormBorderStyle.None; 
this.TransparencyKey = Color.Turquoise; 
this.BackColor = Color.Turquoise; 
richTextBox1.BackColor = this.BackColor; 

enter image description here

enter image description here

Wie Sie sehen können, ist Text hellblau sein. Das ist mein Problem.

+1

Windows-Formulare und Transparenz nicht sehr gut mischen. Vielleicht versuchen Sie direkt in der dritten Form statt mit einer RichTextBox zu schreiben, aber ich werde nicht darauf wetten, ich wünsche Ihnen viel Glück – Pikoh

+0

@ Pikoh wahrscheinlich werde ich es tun ... Danke. –

+1

Außerdem: Wenn Sie TransparencyKey verwenden, funktioniert es nur für die __eine exakte Farbe__. Ihr Text scheint Anti-Alias-Pixel aus vielen halbtransparenten Farben zu haben. Sie können Pixel mit Antialiasing verhindern, wenn Sie eine Kordel ziehen, aber ich bezweifle, dass Sie das in einem RTB tun können – TaW

Antwort

1

Ich habe keinen Weg gefunden, wie das zu beheben, und ich entschied mich stattdessen Label zu verwenden. Durch die Handhabung des Tastendruckereignisses und das Zurückstellen der Farbe des Etiketts wurde das erwartete Ergebnis erzielt.

enter image description here