因此,我正在尝试装配 DataGridView,以便在最后一行的最后一个单元格上按下回车键时,将添加一个新行。我似乎无法让它工作,因为当在最后一行按下回车键时,DataGridView 控件似乎没有响应任何键事件。有没有办法覆盖这种行为?
问问题
890 次
2 回答
1
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
// Handle the ENTER key.
if (e.KeyCode == Keys.Enter)
{
// Add another if statement and use some logic to see if it is the cell you want then create your new row if true!
}
return base.ProcessDataGridViewKey(e);
}
于 2012-10-18T04:39:24.230 回答
0
您可以像这样实现此行为:
DataTable dt = new DataTable();
int value = 0;
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = true;
dt.Columns.AddRange(new DataColumn[]
{
new DataColumn("column1", typeof(string)),
new DataColumn("column2", typeof(int)),
});
dt.Rows.Add("row " + value, value++);
dataGridView1.DataSource = dt;
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
DataGridViewCell cell = dataGridView1.SelectedCells[0];
if (e.KeyCode == Keys.Enter &&
cell.RowIndex == dataGridView1.Rows.Count - 1 &&
cell.ColumnIndex == dataGridView1.Columns.Count - 1)
dt.Rows.Add("row " + value, value++);
}
这是一个数据绑定的网格视图,当然您可以将行添加到未绑定的数据网格视图本身。
于 2012-10-18T19:59:27.903 回答