PDA

View Full Version : راهی برای اینکه بفهمیم آیا اسکرول عمودی در datagridview نمایان است یا پنهان



reza_Nazem
جمعه 09 اردیبهشت 1390, 14:11 عصر
دوستان datagridview من دارای هردو اسکرول عمودی و افقی است.
اسکرول عمودی وقتی تعداد رکورد کم است نمایش داده نمی شود و به محض اینکه تعداد رکورد در پنجره datagridview جا نشد اسکرول عمودی ظاهر می شود
حالا سوال من این است آیا راهی وجود دارد که در برنامه متوجه نمایان شدن ویا پنهان شدن اسکرول عمودی شویم؟

morteza271
جمعه 09 اردیبهشت 1390, 22:55 عصر
من که هر چی دنبال گشتم رویدادی واسه این پیدا نکردم.
ولی یه روشی که به نظر خودم رسید اینه که وقتی که بایند میشه تست کنید اگه تعداد سطراش از یه تعدادی بیشتر شد پس اسکرول نمایش داده میشه و گرنه نه!!!
نمیدونم شاید مشکل داشته باشه ولی این راهی بود که به ذهنم رسید.
موفق باشید

reza_Nazem
شنبه 17 اردیبهشت 1390, 13:47 عصر
ممنون دوست من ! راستش من می خوام کنار datagridview شماره سطر رو نمایش بدم . وقتی اسکرول نیست عدد متناظر با شماره سطر دقیقا جایی که می خوام نمایش داده می شود ولی به محض افزایش سطرها و نمایان شدن اسکرول محل نمایش عدد شماره سطر ،به اندازه عرض اسکرول بار جابه جا می شود.

Directx
شنبه 17 اردیبهشت 1390, 14:32 عصر
بله راهی وجود داره
اولین راهش اینه که بهش نگاه کنیم اگه اسکرول دیده می شد یعنی اسکرول بار visible شده :لبخند:
راه دوش اینه که بیایید یه کلاس درست کن و توش بنویس

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
class MyDgv : DataGridView
{
public event EventHandler ScrollbarVisibleChanged;
public MyDgv()
{
this.VerticalScrollBar.VisibleChanged += new EventHandler(VerticalScrollBar_VisibleChanged);
}
public bool VerticalScrollbarVisible
{
get { return VerticalScrollBar.Visible; }
}
private void VerticalScrollBar_VisibleChanged(object sender, EventArgs e)
{
EventHandler handler = ScrollbarVisibleChanged;
if (handler != null) handler(this, e);
}
}
}



خوب حالا برنامتو کامپایل کن و از قسمت کنترل ها به فرمت اضافه کن حالا این grid یه properti داره که هر وقت اسکرول عمودی ظاهر بشه true می شه مثلا می تونی اینجوری ازش استفاده کنی


private void myDgv1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
if (myDgv1.VerticalScrollbarVisible)
{
MessageBox.Show("اسکرول بار عمودی ظاهر شد");
}
}