من یه دیتاگرید ویو دارم و می خوام اگر کاربر با کیبرد بین رکوردها جابجا می شه بتونم اینو بفهمم .... تو این حالت چه تابعی اجرا میشه؟؟؟؟
Printable View
من یه دیتاگرید ویو دارم و می خوام اگر کاربر با کیبرد بین رکوردها جابجا می شه بتونم اینو بفهمم .... تو این حالت چه تابعی اجرا میشه؟؟؟؟
لطفا کمک کنید..........
از رویداد CellEnter کنترل دیتاگرید ویو می تونی استفاده کنی. ایندکس ردیف انتخاب شده را نیز می تونی با استفاده از حلقه for بدست بیاری.
برای گرفتن هر سلولبرای گرفتن هر ردیف در کدهای بالا SelectedCells را به SelectedRow و همچنین SelectedColumns می توانی تغییر بدهی. زمانی که کل ردیف قابل انتخاب باشد ردیف انتخاب شده بهتر است تا پردازش شود اما زمانیکه کاربر در هر ردیف قادر به انتخاب سلول ها بصورت جداگانه باشد از سلول های انتخاب شده استفاده کنید. در کدها مراقب انتخاب چند ردیف یا چند سلول توسط کلیک موس باشید که ممکن است منجر به ایجاد خطا شود. چون کلیلک موس هم منجر به فعال شدن این رویداد می شود.کد:Int32 selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
if (selectedCellCount>0)
{
for (int i = 0; i < selectedCellCount; i++)
{
label1.Text = dataGridView1.SelectedCells[i].RowIndex.ToString() + dataGridView1.SelectedCells[i].ColumnIndex.ToString();
}
}
سلام
رویداد مخصوص کار با کیبورد
نقل قول:
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
OK
این رویداد خیلی بهتره, با این شرط که : 1) هیدر ردیف ها نشون داده بشه. 2 ) حالت سلکت ردیف بر روی FullRowSelect ست شده باشه.
با این دستور هم می تونی مقدار ستون دوم از ردیف انتخاب شده رو بگیری . برای سایر ستون ها هم می تونی ایندکس رو عوض کنینقل قول:
privatevoid dataGridView1_SelectionChanged(object sender, EventArgs e)
{
DataGridView myDataGridView = sender asDataGridView;
if (myDataGridView != null && myDataGridView.SelectedRows.Count > 0)
{
DataGridViewRow drow = myDataGridView.SelectedRows[0];
if (drow != null)
{
label1.Text = drow.Index.ToString();
}
}
}
نقل قول:
label2.Text = drow.Cells[2].Value.ToString();