none
Screenshot mit Textbox aber Inhalt wird nicht angezeigt RRS feed

  • Frage

  • Erstmal ein nettes Hallo,

    ich zerbreche mir hier irgendwie den Kopf und komme einfach auf keine Lösung. Bei meinem Programm durchläuft der Nutzer mehrere Tabs mit Fragen und bekommt am Ende eine Auswertung. Diese soll er per Screenshot ausgeben können. Dazu soll er lediglich einen Button drücken und fertig.

    Soweit funktioniert das auch aber er gibt die Auswertung, also den Text in den Textboxen und die Textboxen an sich einfach nicht aus. Im vorletzten Tab drückt er den Button "Auswerten" und kommt dadurch auf den letzten Tab, bei dem er die Auswertung angezeigt bekommt. Ich habe das Gefühl, dass das an der "ActiveForm" liegt. Komme aber wie gesagt nicht weiter. Ich danke euch schon für eure Antworten.

    Das ist der Button zum Screenshot erstellen:

    private void button39_Click(object sender, EventArgs e) { var frm = ActiveForm; using (var bmp = new Bitmap(frm.Width, frm.Height)) { frm.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height)); bmp.Save(@"" + Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\screenshot.png"); } }

    Donnerstag, 27. Juli 2017 17:10

Antworten

  • Das löst das Problem.
     Bitmap bmp;
            private void button39_Click(object sender, EventArgs e)
            {
                //Screenshot
                Graphics g = this.CreateGraphics();
                bmp = new Bitmap(this.Size.Width, this.Size.Height, g);
                Graphics mg = Graphics.FromImage(bmp);
                mg.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size);
                bmp.Save(@"" + Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\screenshot.png");
            }
    
    private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
            {
                e.Graphics.DrawImage(bmp, 0, 0);
    
            }

    • Als Antwort markiert doofydoof Freitag, 28. Juli 2017 11:31
    Freitag, 28. Juli 2017 11:31

Alle Antworten

  • Hi,
    füge mal frm.Show(); ein, um zu sehen, ob überhaupt etwas angezeigt wird, was auszugeben ist.


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Donnerstag, 27. Juli 2017 19:19
  • Danke erstmal. Ja sorry kann hier noch keine Bilder hochladen. Er zeigt die Form an so wie es sein soll, außer die Textfelder samt Inhalt lässt er weg. frm.Show(); bringt nichts. Noch eine andere Idee?
    Freitag, 28. Juli 2017 10:45
  • Das löst das Problem.
     Bitmap bmp;
            private void button39_Click(object sender, EventArgs e)
            {
                //Screenshot
                Graphics g = this.CreateGraphics();
                bmp = new Bitmap(this.Size.Width, this.Size.Height, g);
                Graphics mg = Graphics.FromImage(bmp);
                mg.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size);
                bmp.Save(@"" + Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\screenshot.png");
            }
    
    private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
            {
                e.Graphics.DrawImage(bmp, 0, 0);
    
            }

    • Als Antwort markiert doofydoof Freitag, 28. Juli 2017 11:31
    Freitag, 28. Juli 2017 11:31