PDA

View Full Version : عکس گرفتن از کل datatagridview



krasus
چهارشنبه 22 مرداد 1393, 14:16 عصر
سلام
یه فرم دارم که یه datatagridview داره اما کل datatagridview رو نمی تونه نشون بده و مثلا اگه ۳۰ تا رکورد داره فقط ۲۰ تاش رو نشون میده و بقیه اش با اسکرول میاد.
حالا مشکل من اینجاست که نمی تونم از کل datatagridview عکس بگیرم و توی عکس فقط ۲۰ تا رکورد اول میاد.:افسرده:
کدی که من ازش استفاده کردم اینه ::اشتباه:



dataGridview.DrawToBitmap(bitmap, new Rectangle(0, 0, datagridview.width, datagridview.height);



چه جوری می تونم از کل datatagridview عکس بگیرم؟(یعنی از کل ۳۰ رکوردی که ۱۰ تاش با اسکرول میاد عکس بگیرم):متفکر:

plus
چهارشنبه 22 مرداد 1393, 14:38 عصر
آرگومان دوم رو dataGridView.ClientRectangle قرار بدین ببینید مشکل حل میشه؟ (پاسخ: خیر)
ویرایش:
همونطور که گفتن یک راه این هست که بزرگش کنید و بعد ازش عکس بگیرید ولی خوب تا یک اندازه ای (صفحه نمایش) میتونید بزرگش کنید.
راه دیگه این هست که بر اساس مقدار Scroll ها، dataGridView رو به تعداد مورد نیاز Scroll کنید و هر بار ازش عکس بگیرید و در نهایت این عکس ها رو به هم بچسبونید.شدنی هست ولی کمی کار میبره...

drsina
چهارشنبه 22 مرداد 1393, 15:08 عصر
سلام .
int oh = dataGridView1.Height;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dataGridView1.BackgroundColor = SystemColors.ControlLightLight;
dataGridView1.BorderStyle = BorderStyle.None;




dataGridView1.Height = dataGridView1.Columns.Count * dataGridView1.RowTemplate.Height;
Bitmap bmp = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
this.dataGridView1.DrawToBitmap(bmp, this.dataGridView1.ClientRectangle);
bmp.Save(@"Data.jpg");

باید یه بار بزرگش کنی و ازش عکس بگیری و اگه دوباره نیازی بهش هست ، اندازه های قبلی رو توو متغیر نگهداری و بهش برگردونی

برای اینکه اسکرول هم توو عکس نباشه بسته به سایز اسکرولت ایتو تغییر بده :
Bitmap bmp = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);

یعنی دو تا آرگومانشو منهای اسکرولت کن . :لبخند:

krasus
چهارشنبه 22 مرداد 1393, 18:08 عصر
راه حلی که دادین هوشمندانه بود. ممنون. ولی به یه مشکل دیگه برخوردم. کلا راهی هست که دست به دیتاگرید نزنه و بدون اینکه اندازش رو تغییر بده از کلش یه عکس تحویلم بده؟

drsina
چهارشنبه 22 مرداد 1393, 23:01 عصر
فکر نکنم ، مشکلی پیش بیاد ، چون اگه موازی انجام شه ، اصلا رابط گرافیکی به وجود نمی آد ...