gpt4 book ai didi

c# - 单击时部分选择 DataGridView 单元格的文本

转载 作者:可可西里 更新时间:2023-11-01 10:02:28 26 4
gpt4 key购买 nike

有没有一种方法可以在用户输入时以编程方式选择 DataGridView 单元格文本的特定部分?
例如,如果用户输入一个单元格并在其中键入 hello world,然后重新输入同一个单元格,则子字符串 world 将被自动选中(即无需用户操作)。

像这样:

enter image description here

最佳答案

一个可能的解决方案,使用 EditingControlShowing事件。 DataGridViewEditingControlShowingEventArgse.Control 成员, 引用当前单元格的编辑控件。
检查编辑控件的类型是否为 DataGridViewTextBoxEditingControl 之后, e.Control 被转换为 TextBoxBase类,它提供了 Select()用于选择单元格文本的方法。

我在选择部分文本之前引入了一个短暂的延迟,因为事件在单元格失效之前引发。如果立即进行选择,Edit Control将在单元格失效后重新选择所有文本,之前的选择将丢失。

此方法选择文本的最后一个单词或所有文本(如果只有一个单词)。可以很容易地进行调整以选择文本的任何其他部分。

示例功能:

DataGridView EditingControlShowing

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewTextBoxEditingControl tbec)
{
var cellText = tbec.Text;
if (cellText?.Length > 1)
{
BeginInvoke(new Action(() => {
string word = cellText.Split().Last();
tbec.Select(cellText.Length - word.Length, word.Length);
}));
}
}
}

关于c# - 单击时部分选择 DataGridView 单元格的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54776177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com