You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C# TextBox中如何获取按下回车键时的光标索引位置?

在C# TextBox控件中按下回车键时获取光标索引位置的方法

直接用TextBox的SelectionStart属性就能拿到按下回车时的光标索引——因为KeyDown事件触发时,系统还没处理回车的默认换行行为,光标位置保持不变,刚好是你按下回车时的位置。

结合你的需求,修改后的完整代码如下:

private void txtDesc_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        // 获取按下回车时的光标索引
        int cursorIndex = txtDesc.SelectionStart;
        // 在光标位置插入HTML换行标签
        txtDesc.Text = txtDesc.Text.Insert(cursorIndex, "<br>");
        // 取消回车的默认换行行为,避免生成多余的换行符
        e.SuppressKeyPress = true;
        // 将光标移到插入的<br>标签之后,方便继续输入
        txtDesc.SelectionStart = cursorIndex + 4;
    }
}

关键说明:

  • SelectionStart:当TextBox中没有选中任何文本时,这个属性的值就是当前光标所在的索引,完全匹配你示例中需要的19这个位置。
  • 加入e.SuppressKeyPress = true是为了阻止TextBox默认的换行操作,避免同时出现<br>和系统自带的换行符。
  • 最后调整光标位置是为了优化用户体验,让输入可以在插入的标签后继续。

内容的提问来源于stack exchange,提问作者mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:57:32