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 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.html
kö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

Schreibe einen Kommentar