چاپ datagridview بصورت راست به چپ واقعی!
سلام
من دو روزه دارم دنبال یه روش می گردم که datagrdivew رو بصورت راست به چپ چاپ کنم، (یعنی متن داخل خونه های دیتاگریدویو RTL باشه، نه اینکه فقط ترتیب چینش ستون ها از راست به چه باشه) ولی به نتیجه نرسیدم.
جستجوهای فارسی همشون به این ختم می شن که اینکارو نمی کنه:
http://www.barnamenevis.org/sh...d.php?p=317148
و انگلیسی ها هم که کلا LTR هستن.
کسی می دونه اصلا همچین چیزی امکان داره؟ (چه تو .NET 2.0 و چه تو NET 3.0)
و اگه آره، ممنون میشم یه راهنمایی حتی در حد یه اشاره داشته باشید. ممنون
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
در قسمت properties گریدویو گزینه DefaultCellStyle رو انتخاب کن و در زیر صفحه گزینه Aligment رو می بینی . و دقیقا همون کاری رو می کنه که توی می خوای . در این حالت چینش ستونها از چپ به راسته ولی متن از راست به چپه ، اگه می خوای چینش ستونها هم عوض بشه کد زیر :
this.dataGridView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
فکر کنم منظورت همین بود . اگه نیست فایل پروژت یا تکه کدش رو بذار .
1 ضمیمه
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
آقا شروین مشکل منم همینه
فایلی که ضممه کردم ببین
نظرتو بگو
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
با سلام خدمت دوستان
من این کلاس رو که در اینجا آپلود کردم از اینترنت گیر آوردم و با کمی تغییرات اونه به یک کلاس کاملا راست به چپ تبدیل کردم و امیدوارم که به درد دوستان بخوره و مشکلشونو حل کنه
این لینک اصلی مقاله
http://www.codeproject.com/KB/printing/DGVPrinter.aspx
این هم کلاسی که خودم تغییرش دادم
http://rapidshare.com/files/23531441...inter.rar.html
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
نقل قول:
نوشته شده توسط
rezatati
آقا لینک دوم مشکل داره!!
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
اقا لطف کن توی 2shared یا 4shared اپلود کن.لینک خرابه
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
کسی نیست این تاپیک رو کامل کنه ؟؟؟
چند روزه مشکل من هم همینه . هرکاری میکنم حل نمیشه . هیچ جا هم براش جواب درستی پیدا نکردم.
ممنون میشم دوستان لطف کنن تاپیک رو به جواب برسونن
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
نقل قول:
نوشته شده توسط
mehdiizadi
کسی نیست این تاپیک رو کامل کنه ؟؟؟
چند روزه مشکل من هم همینه . هرکاری میکنم حل نمیشه . هیچ جا هم براش جواب درستی پیدا نکردم.
ممنون میشم دوستان لطف کنن تاپیک رو به جواب برسونن
دوست عزیز خود بنده حداقل دوتا پرینت از گرید ویو گذاشتم با این قابلیت ، یکیش با PrintDGV - یکیش با استیمول
تو قسمت نمونه برنامه های کوچک و مفيد در سي شارپ ، زحمت پیدا کردن شماره پست با خودتون
موفق باشید.
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
آقای Esmail Solhkhah من تمام 23 صفحه ی بخش برنامه های کوچک و مفید رو گشتم
چند تا تاپیک واسه پرینت بود ولی هرچی نگاه کردم اون چیزی نبود که میخواستم . یکی PrintDGV بود که واسه VB بود.
چند هفته است فقط الاف همین کار هستم . این مشکلم حل بشه کل پروژه ام تموم میشه و اماده استفاده.
دیتابیس من Access است و از ado استفاده شده.
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
سلام اونطوری که من فهمیدم شما علاوه بر راست چین شدن ستون ها میخواید محتویات سلول ها هم جابجا بشه، برای اینکار توی قسمت پراپرتیز مربوط به دیتاگریدویو توی گزینه RowsDefaultCellStyle خاصیت Alignment رو تغییر بدید
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
دیتاگریدویو من در فرم ام به این شکل است:
http://upload.tehran98.com/img1/0hlt...wofo8q77jh.png
اما وقتی که میخوام پرینت بگیرم به این شکل ظاهر میشه:
http://upload.tehran98.com/img1/qpnva545xk0hhq78.png
میخوام موقع پرینت هم اطلاعات از راست به چپ نشون داده بشه.
2 ضمیمه
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
یه نگاه به این بندازید:
ضمیمه 100908
ضمیمه 100907
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
عـــالــــــیــــــــــــ ـــــــــــه . واقــعـــــــــــا مــــــــــــرســــــــــ ـــــــــــی :قلب:
آخرین سوال در همین مورد . این کد میاد از تمام Columns ها پرینت میگیره.
چطور میشه براش تعیین کرد که مثلا از:
dataGridView1.Columns[1]
dataGridView1.Columns[4]
dataGridView1.Columns[5]
dataGridView1.Columns[11]
dataGridView1.Columns[17]
dataGridView1.Columns[19]
پرینت بگیره . چون جدول dataGridView ای که استفاده میکنم خیلی بزرگه فقط میخوام اطلاعات اصلی که نیاز به چاپ دارن چاپ بشن.
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
توی حلقه میتونید دستور سویچ بزارید:
for (int j = this.dataGridView1.Columns.Count - 1; j > -1; j--)
{
switch (j)
{
case 1:
case 4:
case 5:
case 11:
case 17:
case 19:
....
break;
}
}
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
داره جواب نمیده. :گیج:
نمیشه با گذاشتن یک Checkbox و check گذاشتن برای اون قبل از پرینت به این صورت:
if (checkBox1.Checked == true)
{
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].Visible = false;
dataGridView1.Columns[5].Visible = false;
dataGridView1.Columns[13].Visible = false;
dataGridView1.Columns[14].Visible = false;
dataGridView1.Columns[15].Visible = false;
dataGridView1.Columns[16].Visible = false;
dataGridView1.Columns[18].Visible = false;
dataGridView1.Columns[20].Visible = false;
dataGridView1.Columns[21].Visible = false;
dataGridView1.Columns[22].Visible = false;
dataGridView1.Columns[23].Visible = false;
dataGridView1.Columns[24].Visible = false;
dataGridView1.Columns[25].Visible = false;
dataGridView1.Columns[26].Visible = false;
dataGridView1.Columns[27].Visible = false;
dataGridView1.Columns[29].Visible = false;
dataGridView1.Columns[30].Visible = false;
dataGridView1.Columns[31].Visible = false;
}
Columns های اضافی رو از توی DGV حذف کرد و پرینت رو انجام داد ؟
این کارو کردم با همین کدی که شما دادید جواب نداد . با یک روش دیگه جواب میداد ولی مشکلش همین بود که راست به چپ پرینت نمیکرد.
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
ببخشید نفهمیدم الان مشکل کجاست؟ حل نشد؟!
توجه کنید کد آخری که دادم 2 جا مشابه همین وجود داره و باید برای هر دوتا این شرط رو بذارید
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
نه متاسفانه هنوز حل نشده. :گریه:
سه چهار هفته است الاف همین پرینت گرفتن هستم :عصبانی++:
واقعا هم برام مهمه . کل پروژه رو نوشتم واسه اینکه آخرش پرینت بگیرم :افسرده: پرینت نگیره که نمیشه :متعجب:
1 ضمیمه
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
این برای پرینت بعضی از ستون ها هست، امیدوارم مشکل حل شه
ضمیمه 100921
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
مــرسی آقای پدارم.
مشکلم کامل کامل رفع شد .
همه چیزش کامله فقط اگه موقع پرینت یک سر تیتر مثل عکس زیر در بالای جدل میومد و جدول در وسط برگه بود کاملا بدون نقص بود.
http://upload.tehran98.com/img1/qpnva545xk0hhq78.png
مرسی بخاطر کمک هاتون :قلب:
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
حقیقت خواستم خودم این دو تا عیبش رو برطرف کنم که باز مزاحم نشم ولی از عصر تا الان ( ساعت 3:51 صبح ) درگیرش هستم و
نتونستم اون دو تا مشکل بالا که گفتم رو بر طرف کنم.اگه ممکنه زحمت این رو هم بکشید تا راحت بشم از دست این پرینت :ناراحت:
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
دوستان کسی نیست این مشکل رو هم حل کنه ؟ :متفکر:
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
سلام خسته نباشید
توی رویداد pdoc_PrintPage دستورات رو به اینصورت تغیید بدید:
void pdoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
string Header = "بانک اطلاعات اشخاص";
int FontSize = 20;
int StartX = 0, x = 0
, y = 50;
for (int i = this.dataGridView1.Columns.Count - 1; i > -1; i--)
switch (i)
{
case 1:
case 2:
StartX += this.dataGridView1.Columns[i].Width;
break;
}
StartX = e.PageBounds.Width / 2 - StartX / 2;
x = StartX;
System.Drawing.Font HeaderFont =new System.Drawing.Font("Arial", FontSize, FontStyle.Bold,GraphicsUnit.Point);
SizeF Headersize = e.Graphics.MeasureString(Header, HeaderFont);
e.Graphics.DrawString(Header,
HeaderFont, Brushes.Black, new PointF(e.PageBounds.Width / 2 - (Headersize.Width / 2), y));
y += (int)Headersize.Height + 1;
for (int j = this.dataGridView1.Columns.Count - 1; j > -1; j--)
{
switch (j)
{
case 1:
case 2:
Rectangle rect = new Rectangle(x, y,
this.dataGridView1.Columns[j].Width,
this.dataGridView1.ColumnHeadersHeight);
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
e.Graphics.FillRectangle(Brushes.LightGray, rect);
e.Graphics.DrawRectangle(Pens.Black, rect);
if (this.dataGridView1.Columns[j].HeaderText != null)
{
e.Graphics.DrawString(this.dataGridView1.Columns[j].HeaderText,
SystemFonts.DefaultFont, Brushes.Black, rect, sf);
}
x += rect.Width;
break;
}
}
x = StartX;
y += this.dataGridView1.ColumnHeadersHeight;
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
if (row.Cells[0].Value != null)
{
for (int j = this.dataGridView1.Columns.Count - 1; j > -1; j--)
{
switch (j)
{
case 1:
case 2:
DataGridViewCell cell; cell = row.Cells[j];
Rectangle rect = new Rectangle(x, y, cell.Size.Width, cell.Size.Height);
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
e.Graphics.DrawRectangle(Pens.Black, rect);
if (cell.Value != null)
{
e.Graphics.DrawString(cell.Value.ToString(),
SystemFonts.DefaultFont, Brushes.Black, rect, sf);
}
x += rect.Width;
break;
}
}
x = StartX;
y += row.Height;
}
}
}
امیدوارم مشکل حل شه
نقل قول: چاپ datagridview بصورت راست به چپ واقعی!
مرسی :قلب:
مشکل کاملا رفع شد.
ممنون