نمایش نتایج 1 تا 9 از 9

نام تاپیک: بهترين راه پرينت گرفتن از يه فرم ساده

  1. #1
    کاربر دائمی آواتار samaram
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    330

    Question بهترين راه پرينت گرفتن از يه فرم ساده

    ميخوام يه فرم ساده داشته باشم كه جاهاي خالي براي وارد كردن يه سري اطلاعات كاربر داره. بعد عينا همين چيزايي كه تو خونه هاي خالي پر كرده به اضافه ي مثلا ليبل هايي كه روي فرم هست با يه دكمه ي پرينت كه گوشه صفحه هست پرينت گرفته بشه. يعني دقيقا هر چي رو صفحه ديده ميشه ميخواد پرينت بگيره. بهترين راه براي پياده سازي كد دستورات پرينت چيه؟

  2. #2

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    دوست من راهای زیادی برای پرینت گرفتن از فرم هستش

    http://msdn.microsoft.com/en-us/libr...8VS.71%29.aspx

    و استفاده از کامپونت پرینت مجانی vb.net از خود microsoft


    و این کامپونت که خیلی با کیفیت پرینت می گیره ولی پولی هستش

    کار با هر دو کامپونت خیلی راحت هستش ولی توصیه من به شما اینه که از فورم پرین نگیری بلکه خود فرم و اطلاعاتشو با متود print انجام بدی (ابن تجربهی شخصی من هستش)
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  3. #3
    کاربر دائمی آواتار s.khoshfekran
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    503

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده


    privatevoid printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    Bitmap b = newBitmap(this.Width, this.Height);
    Rectangle r = newRectangle(0, 0, this.Width, this.Height);
    this.DrawToBitmap(b, r);
    Image i = (Image)b;
    e.Graphics.DrawImage(i, r);
    }

  4. #4
    کاربر دائمی آواتار samaram
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    330

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    کار با هر دو کامپونت خیلی راحت هستش ولی توصیه من به شما اینه که از فورم پرین نگیری بلکه خود فرم و اطلاعاتشو با متود print انجام بدی (ابن تجربهی شخصی من هستش)
    منم همین فرمایش شما رو کاملا قبول دارم. اما راستش بلد نیستم کدشو بنویسم! البته یه مقدارم منظورتونو متوجه نشدم. یعنی چی با متد print؟ منظورتون متد موجود در خود vs؟
    آخرین ویرایش به وسیله samaram : جمعه 28 خرداد 1389 در 22:39 عصر

  5. #5

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    دوست عزیز چرا از گزارش گیری برای چاپ استفاده نمی کنید و نیازی به متدی اضافی هم نیست فقط مقادیر برو ارسال بکنید

    اگر کمکی در این زمینه خواستی بگو

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  6. #6

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    منظورم با همین
    Graphics.DrawString

    Graphics.DrawPath
    و...
    هستش
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  7. #7
    کاربر دائمی آواتار samaram
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    330

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    نقل قول نوشته شده توسط mmd2009 مشاهده تاپیک
    دوست عزیز چرا از گزارش گیری برای چاپ استفاده نمی کنید و نیازی به متدی اضافی هم نیست فقط مقادیر برو ارسال بکنید

    اگر کمکی در این زمینه خواستی بگو
    آره راستش مشکل دارم! نمیدونم چطور مقادیر رو ارسال کنم. یه گزارش دیگه با کریستال ریپورت ساختم که داره از بانک مقادیری رو گزارش میده. اما از پس این بر نمیام!

  8. #8
    کاربر دائمی آواتار samaram
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    330

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    منظورم با همین
    Graphics.DrawString

    Graphics.DrawPath
    و...
    هستش
    آها. ببینید یه عزیزی کمکم کرد و من همون کد موجود در msdn که شما لنکشو دادین رو بعد از استفاده از یه پنل به این صورت تغییر دادم:

    [System.Runtime.InteropServices.DllImport("gdi32.dl l")]
    public static extern long BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
    private Bitmap memoryImage;
    //__________________________________________________ __________________________________________________ ________

    private void CaptureScreen()
    {
    Graphics mygraphics = MyPanel.CreateGraphics();
    Size s = MyPanel.Size;
    memoryImage = new Bitmap(s.Width, s.Height, mygraphics);
    Graphics memoryGraphics = Graphics.FromImage(memoryImage);
    IntPtr dc1 = mygraphics.GetHdc();
    IntPtr dc2 = memoryGraphics.GetHdc();
    BitBlt(dc2, 0, 0, MyPanel.ClientRectangle.Width, MyPanel.ClientRectangle.Height, dc1, 0, 0, 13369376);
    mygraphics.ReleaseHdc(dc1);
    memoryGraphics.ReleaseHdc(dc2);
    }


    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    e.Graphics.DrawImage(memoryImage, 0, 0);
    }

    private void btnPrint_Click(object sender, EventArgs e)
    {
    CaptureScreen();
    printDocument1.Print();
    }

    منتها نتیجه ، پرینت از کل فرم هستش. ظاهرا باید یه تغییر دیگه در کد بدم تا بتونم فقط محتویات درون پنل رو پرینت بگیرم. آخه نمیخوام مثلا نوار بالای پنجره و یا دکمه ی پرینت هم در پرینت بیاد! میخوام فقط عناصر داخل پنل پرینت گرفته بشه.

  9. #9

    نقل قول: بهترين راه پرينت گرفتن از يه فرم ساده

    نقل قول نوشته شده توسط samaram مشاهده تاپیک
    آره راستش مشکل دارم! نمیدونم چطور مقادیر رو ارسال کنم. یه گزارش دیگه با کریستال ریپورت ساختم که داره از بانک مقادیری رو گزارش میده. اما از پس این بر نمیام!

    دوست عزیز این اموزش ویدئویی رو درست کردم واسه این روزا دیگه

    بهتر بری ببینش همه چیزش کامله

    راحت میتونی ازش استفاده بکنی و مشکلی هم پیش نمیاد و کارت هم جلوه بهتری میگره و خیلی هم مانور دادن داخلش راحتره


    http://www.barnamenevis.org/sh...d.php?t=228193

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •