PDA

View Full Version : سوال: حل مشکل چاپ گرید ویو در این برنامه چاپ



samanff2000
دوشنبه 17 اسفند 1388, 17:07 عصر
سلام دوستان من یک برنامه پیدا کردم که فرم رو به همون شکلی که هست برات پرینت میکنه (البته فقط متن هاش) این برنامه با VB بود و با مقداری تغییر درC#‎ جواب داد نمیدونم چه ایرادی داره که datagridview رو چاپ نمی کنه ولی در برنامه اصلی خودش گذاشته بود و اجرا میکرد با گشتن در کدهای این برنامه متوجه شدم که در VB ما datagrid داریم نه datagridview و در برنامه datagrid تعریف شده من هرکاری کردم نتونستم این مشکل رو حل کنم اگه براتون امکان داره یه نگاهی بهش بندازین و اگر در فرمی که میخوایم چاپ کنیم از masked textbox استفاده کنیم ایراد میگیره و نمایش هم نمیده اگه ممکنه بگید باید چیکارش کرد فایلیش رو ضمیمه کردم :متفکر::عصبانی++::افسرده::عصب نی::متفکر:

peymanjon
دوشنبه 17 اسفند 1388, 17:55 عصر
میخوای فورمتو با همون شکل با متن داخلش پرینت بگیری؟ اگه منظورت اینه یک button بذار واین کد توش بنویس :




PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.Print();

واین هم کد تابع پرینتت:



void PrintImage(object o, PrintPageEventArgs e)
{
int x = SystemInformation.WorkingArea.X;
int y = SystemInformation.WorkingArea.Y;
int width = this.Width;
int height = this.Height;

Rectangle bounds = new Rectangle(x, y, width, height);

Bitmap img = new Bitmap(width, height);

this.DrawToBitmap(img, bounds);
Point p = new Point(100, 100);
e.Graphics.DrawImage(img, p);
}

samanff2000
دوشنبه 17 اسفند 1388, 18:22 عصر
سلام ممنون از لطفتون اولا در قسمت PrintPageEventArgs e ایراد میگیره نمیدونم باید چیکارش کنم دوم این که آیا این کار کادر دور textbox و ... نشون میده یا نه چون این برنامه ای که من گذاشتم کلیه این چیزهارو حذف میکنه و دکمه ها هم نشون نمیده بازم ممنون میشم اگه کمک کنید

FastCode
دوشنبه 17 اسفند 1388, 19:09 عصر
if (dg.DataSource is System.Data.DataTable)
dt = (DataTable) dg.DataSource;
else
if ((dg.DataSource is System.Data.DataSet) && (dg.DataMember != null))

کد فوق :گریه: آوره.
اگر میخواهی از این کلاس استفاده کنی بهت پیشنهاد میکنم که تمام خطوطی که type-specific هستند رو تغییر بدی و به جاش از Interface ها استفاده کنی.

peymanjon
دوشنبه 17 اسفند 1388, 20:34 عصر
سلام ممنون از لطفتون اولا در قسمت PrintPageEventArgs e ایراد میگیره نمیدونم باید چیکارش کنم دوم این که آیا این کار کادر دور textbox و ... نشون میده یا نه چون این برنامه ای که من گذاشتم کلیه این چیزهارو حذف میکنه و دکمه ها هم نشون نمیده بازم ممنون میشم اگه کمک کنید آره نشون میده ولی میتونی قبل از فراخوانی چیزایی که نمیخوای نشون بده را invisible کنی و خاصیت text box را تغییر دهی تا فقط اطلاعات داخلش چاپ بشه.
موفق باشی