سلام دوستان عزيز چگونه ميتوان هنگامي كه داده را در سلولي وارد كرديم بعد با زدن دكمه اينتر به جاي رفتن به سطر بعدي به سلول بعدي رفته و نهايتا از آخرين سلول به سطر بعدي برود.
با تشكر
سلام دوستان عزيز چگونه ميتوان هنگامي كه داده را در سلولي وارد كرديم بعد با زدن دكمه اينتر به جاي رفتن به سطر بعدي به سلول بعدي رفته و نهايتا از آخرين سلول به سطر بعدي برود.
با تشكر
دوستان خواهش ميكنم اگر كسي ميدونه راهنمايي كنه ممنون ميشم
هيچ كس نميدونه؟
سلام بفرما :
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress=true;
int iColumn = dataGridView1.CurrentCell.ColumnIndex;
int iRow = dataGridView1.CurrentCell.RowIndex;
if (iColumn == dataGridView1.Columns.Count-1)
dataGridView1.CurrentCell = dataGridView1[0, iRow + 1];
else
dataGridView1.CurrentCell = dataGridView1[iColumn + 1, iRow];
}
یا :
if (e.KeyData == Keys.Enter)
{
int col = dataGridView1.CurrentCell.ColumnIndex;
int row = dataGridView1.CurrentCell.RowIndex;
if (col < dataGridView1.ColumnCount - 1)
{
col ++;
}
else
{
col = 0;
row++;
}
if (row == dataGridView1.RowCount)
dataGridView1.Rows.Add();
dataGridView1.CurrentCell = dataGridView1[col, row];
e.Handled = true;
}
ببین این کارت رو راه میندازه ؟
int Selected_Row= -1 , Selected_Column = -1;
private void dataGridView1_KeyDown( object sender , KeyEventArgs e )
{
if ( e.KeyCode == Keys.Enter )
if ( Selected_Column < dataGridView1.ColumnCount - 1 )
dataGridView1.CurrentCell = dataGridView1[ Selected_Column + 1 , Selected_Row ];
else
{
if ( dataGridView1.RowCount-1 > Selected_Row )
dataGridView1.CurrentCell = dataGridView1[ 0 , Selected_Row ];
}
}
private void dataGridView1_CellEnter( object sender , DataGridViewCellEventArgs e )
{
Selected_Column = e.ColumnIndex;
Selected_Row = e.RowIndex;
}
if (e.KeyData == Keys.Enter)
{
int col = dataGridView1.CurrentCell.ColumnIndex;
int row = dataGridView1.CurrentCell.RowIndex;
if (col < dataGridView1.ColumnCount - 1)
{
col ++;
}
else
{
col = 0;
row++;
}
if (row == dataGridView1.RowCount)
dataGridView1.Rows.Add();
dataGridView1.CurrentCell = dataGridView1[col, row];
e.Handled = true;
}
سلام ویرایش کردم از قسمت دوم استفاده کنید و سفارشی کنید موفق باشید...
ببخشيد ولي بازم همون مشكل قبليه چون دارم ديتا وارد ميكنم ميره به همان سلول سطر بعدي نه به سلول بعدي در همان سطر. با تشكر
4 خط کد!
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
SendKeys.Send("{up}");
SendKeys.Send("{right}");
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{up}");
SendKeys.Send("{right}");
}
}
ممنون دوست عزيز لطف كردين با كمي تغيير در كد شما مشكلم حل شد.
private void DGVKarkard_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (DGVKarkard.CurrentRow.Index == DGVKarkard.RowCount - 1)
{
SendKeys.Send("{down}");
SendKeys.Send("{left}");
return;
}
SendKeys.Send("{up}");
SendKeys.Send("{left}");
}
private void DGVKarkard_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyData == Keys.Enter)
{
if (DGVKarkard.CurrentCell.ColumnIndex == DGVKarkard.Columns.Count - 1)
{
DGVKarkard.CurrentCell = DGVKarkard[5, DGVKarkard.CurrentCell.RowIndex];
return;
}
else if (DGVKarkard.CurrentRow.Index == DGVKarkard.RowCount - 1)
{
SendKeys.Send("{down}");
SendKeys.Send("{left}");
return;
}
else
{
SendKeys.Send("{up}");
SendKeys.Send("{left}");
return;
}
}
}
}