Avatar billede keepy Seniormester
23. juni 2011 - 11:45 Der er 2 kommentarer og
1 løsning

print

Hej

Er her en der kan lave en super hurtig og let forstålig guide til udprint fra en textbox til papir??
Avatar billede keepy Seniormester
23. juni 2011 - 11:59 #1
ja det klarede jeg så selv
Avatar billede aaberg Nybegynder
23. juni 2011 - 12:36 #2
Skriv gerne hvordan du løste det :)
Avatar billede bvli Praktikant
23. juni 2011 - 13:46 #3
Det var ellers hurtigt.

En mulig løsning kunne i øvrigt være:

using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;


namespace B.Testing.Printing
{
    //Først lav et PrintDocument som har ansvaret for at printe.
    class TextBoxPrintDocument : PrintDocument
    {
        private bool disposed;
        private Font font = SystemFonts.DefaultFont;
        private Brush brush = new SolidBrush(Color.Black);

        public TextBox TextBox { get; private set; }

        public TextBoxPrintDocument(TextBox textBox)
        {
            if (textBox == null) { throw new ArgumentNullException("textBox"); }
            this.TextBox = textBox;
        }

        //Her skal du lave husholdning til at finde ud af om al din tekst kan
        //være på en enkel side. Hvis ikke den kan, må du splitte og sætte
        //e.HasMorePages til true.
        protected override void OnPrintPage(PrintPageEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString(TextBox.Text, font, brush, e.MarginBounds);
            e.HasMorePages = false;
        }

        protected override void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (disposing)
                {
                    using (font) ;
                    using (brush) ;
                }
                disposed = true;
            }
            base.Dispose(disposing);
        }
    }

    //Lav en form med en TextBox
    class PrintForm : Form
    {
        public PrintForm()
        {
            this.Text = "Print tekst fra en Text Box";
            TextBox tb = new TextBox
            {
                Multiline = true,
                Size = new Size(this.ClientSize.Width, this.ClientSize.Height - 30),
                Dock = DockStyle.Top
            };
            this.Controls.Add(tb);

            Button b = new Button
            {
                Text = "&Print",
                Location = new Point(10, this.ClientSize.Height - 25)
            };
   
            //Når der trykkes på knappen skal der printes.
            b.Click += (sender, e) =>
            {
                using (PrintDocument printDocument = new TextBoxPrintDocument(tb))
                {
                    printDocument.Print();
                }
            };
            this.Controls.Add(b);
        }
    }


    static class Program
    {
        static void Main(string[] args)
        {
            Application.Run(new PrintForm());
        }
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester