Zeichnen von text auf einem Panel
OK, ich alles fix, jetzt ist genau das, was ich will.
Ich habe eine textBox1
, panel1
, und drawTexta
(a-Taste).
Wenn ich auf die Schaltfläche und wählen Sie einen Punkt in der Systemsteuerung, ich will zeichnen Sie die Zeichenfolge aus der textBox1
.
private void panel1_Paint(object sender, PaintEventArgs e)
{
using (SolidBrush br = new SolidBrush(Color.Red))
{
StringFormat sf = new StringFormat();
sf.FormatFlags = StringFormatFlags.DirectionRightToLeft;
e.Graphics.DrawString(textBox1.Text, this.Font, br, point1, sf);
}
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
point1 = new Point(e.X, e.Y);
}
bool flag = false;
Point point1 = new Point();
private void drawTexta_Click(object sender, EventArgs e)
{
flag = true;
panel1.Refresh();
}
Wäre es nicht einfacher, verwenden Sie ein Textfeld, und ziehen nur den text auf der Leinwand danach?
Das einzige was ich weiß ist, dass es zu einem Speicherleck durch
Griffe garbage collection. Es ist immer noch eine gute Praxis, zu verwenden, verwenden jedoch.
Nein, GDI+ Ressourcen brauchen werden entsorgt (so wie man es in einem
können Sie mir weitere Informationen über das hinzufügen einer textbox ? OnMouseDown erstellt eine textbox oder??? Ich fügte hinzu, sowie
Das einzige was ich weiß ist, dass es zu einem Speicherleck durch
SolidBrush
.Griffe garbage collection. Es ist immer noch eine gute Praxis, zu verwenden, verwenden jedoch.
Nein, GDI+ Ressourcen brauchen werden entsorgt (so wie man es in einem
using
- block), weil Sie nicht GC-ed. dotnetfacts.blogspot.com/2008/03/things-you-must-dispose.htmlkönnen Sie mir weitere Informationen über das hinzufügen einer textbox ? OnMouseDown erstellt eine textbox oder??? Ich fügte hinzu, sowie
InformationsquelleAutor Bor | 2012-11-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den text nicht gezeichnet wird, zu
panel1
weil Sie brauchen, um es zu aktualisieren.Fügen Sie diesen code
button1_Click
, nachdem SiedrawText
zutrue
:Machen, dass Sie den statischen text anzeigen.
Refresh
ist eine Kombination vonInvalidate
undUpdate
. blogs.msdn.com/b/subhagpo/archive/2005/02/22/378098.aspxInformationsquelleAutor Ove