我想阅读用户正在编辑的当前单元格的文本。我想根据用户在数据网格控件中的单元格上键入内容来过滤列表框。我想在数据网格的KeyDown事件上实现它,但我找不到一种方法来读取单元格的值。我想读取用户输入的值,而不是用户按Enter键后的最终编辑值。有什么想法吗?
答案 0 :(得分:1)
这可能会对你有所帮助。拿一个look
void dgvDemo_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
TextBox txt = e.Control as TextBox;
if (txt != null)
{
txt.KeyPress += new
KeyPressEventHandler(txt_KeyPress);
}
}
void txt_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show(e.KeyChar.ToString());
}
此示例我在WPF中完成。
<DataGrid Grid.Row="1" ItemsSource="{Binding List}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyName}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding MyName}" KeyUp="TextBox_KeyUp"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
代码隐藏
private void TextBox_KeyUp(object sender, KeyEventArgs e)
{
}
请检查,这可能对您有所帮助