PDA

View Full Version : سوال: یه سوال در مورد GridView



ACorvinus
یک شنبه 10 مرداد 1389, 15:53 عصر
سلام بچه ها.

در فرمم یه GridView دارم و یه Button.
یه متغیر سراسری در فرمم تعریف کردم به اسم Flag با مقدار اولیه false.

حالا وقتی Button رو کلیک می کنم اگه متغیر flag برابر با false باشه، true میشه و بلعکس!!

میخوام وقتی رو یکی از سطرهای GridView کلیک می کنم در صورتی که flag برابر با true باشه، کار Ctrl رو یه کدی برام انجام بده (یعنی کاربر مجبور نباشه Ctrl رو بگیره تا بتونه چند سطر رو انتخاب کنه).

حالا من از شما دوستان میخوام این تیکه کد رو اگه بلدین به منم بگین و اینکه در کدوم eventی باید اونو بنویسم؟!!!

Rocker
یک شنبه 10 مرداد 1389, 17:24 عصر
سلام بچه ها.

در فرمم یه GridView دارم و یه Button.
یه متغیر سراسری در فرمم تعریف کردم به اسم Flag با مقدار اولیه false.

حالا وقتی Button رو کلیک می کنم اگه متغیر flag برابر با false باشه، true میشه و بلعکس!!

میخوام وقتی رو یکی از سطرهای GridView کلیک می کنم در صورتی که flag برابر با true باشه، کار Ctrl رو یه کدی برام انجام بده (یعنی کاربر مجبور نباشه Ctrl رو بگیره تا بتونه چند سطر رو انتخاب کنه).

حالا من از شما دوستان میخوام این تیکه کد رو اگه بلدین به منم بگین و اینکه در کدوم eventی باید اونو بنویسم؟!!!


برای انتخاب هر سر باید روی هدر اون سر یعنی جایی که فلش داره کلیک کنی.
متغیر MyFlag هم همون فلگی است که میگی تو برنامه هر جا میخوای مقدارش رو عوض کن.



public static List<int> SelectedRowsIndes;
public bool MyFlag = true;
private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (MyFlag)
{
if (SelectedRowsIndes == null)
SelectedRowsIndes = new List<int>();
if (!(SelectedRowsIndes.Contains(e.RowIndex)))
{
SelectedRowsIndes.Add(e.RowIndex);
dataGridView1.Rows[e.RowIndex].Selected = true;
}
else
{
SelectedRowsIndes.Remove(e.RowIndex);
dataGridView1.Rows[e.RowIndex].Selected = false;
}
foreach (int Index in SelectedRowsIndes)
{
dataGridView1.Rows[Index].Selected = true;
}
}

}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (SelectedRowsIndes != null && SelectedRowsIndes.Count > 0 && e.ColumnIndex >= 0)
SelectedRowsIndes.Clear();
}