标签: caret

您如何以编程方式将Flex TextArea的插入符号移动到最后?

我试图在从我的代码中添加一些文本后将Flex TextArea中的插入符移动到最后.我查看了TextArea及其底层TextField的参考文档,但似乎没有提供任何方法来处理它.

我尝试过的一种方法是将焦点设置到文本区域并调度KeyUp KeyboardEvent,并将事件的键代码设置为"End"键,但这不起作用.

关于如何做到这一点的任何想法?

谢谢.

apache-flex textarea flex3 caret textfield

6
推荐指数
1
解决办法
9060
查看次数

TEdit焦点和插入符号

我有两个TEdit控件.当我退出edit1时,edit2会收到焦点.在Edit1的OnExit事件中,我有以下代码:

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  edit2.Enabled := false;
  edit2.Enabled := true;
  edit2.setfocus;
end;
Run Code Online (Sandbox Code Playgroud)

Edit2有焦点.但是,它没有任何关注.我可以开始输入,但它很混乱,因为我不知道哪个控件有焦点.

我更感兴趣的是Enabled属性的翻转会导致某些消息无法正常触发?例如,edit2的OnEnter事件未被触发.

如果重要的话,这是在D2006.

谢谢回复.

delphi caret setfocus

6
推荐指数
2
解决办法
9286
查看次数

隐藏QLineEdit闪烁光标

我正在研究QT v5.2

我需要QLineEdit永久隐藏闪烁的光标(插入符号).但与此同时,我希望它QLineEdit是可编辑的(因此readOnly和/或设置可编辑的false不适合我).

我已经在更改QLineEdit焦点时的背景颜色,因此我将知道QLineEdit正在编辑哪个小部件.根据我的要求,光标(闪烁文本光标)显示不应该在那里.

我试过了styleSheets,但我无法隐藏光标( {color:transparent; text-shadow:0px 0px 0px black;} )

有人可以告诉我如何实现这一目标?

qt cursor caret hide qlineedit

6
推荐指数
1
解决办法
6030
查看次数

在Text Formatter API中使用插入符号

我正在通过Text Formatter API创建简单的WPF文本编辑器.我已经完成了一些基本功能,现在我需要添加一个插入支持.我还有一个视觉插入符号(只是一个闪烁动画的行),它应该与渲染文本同步.我在TextLine类中发现了一堆方法,例如GetNextCaretCharacterHit,GetPreviousCaretCharacterHit,GetBackspaceCaretCharacterHit.但是关于它们的文档信息是......非常稀缺.那些在该领域有一些经验的人可以解释如何处理这些方法,因为我几乎不知道这个吗?我试图在互联网上搜索信息,但结果我一无所获.

我将不胜感激任何帮助!

.net c# wpf text-editor caret

6
推荐指数
0
解决办法
67
查看次数

如何获得包含图像的contenteditable div的插入位置

我有这个contentedittable div

<div contenteditable="true" id="text">minubyv<img src="images/smiley/Emoji Smiley-01.png" class="emojiText" />iubyvt</div>
Run Code Online (Sandbox Code Playgroud)

这是代码输出的图像描述 在此输入图像描述

所以我想获得div的插入位置,并假设光标位于最后一个字符之后.这是我获得插入位置的代码

function getCaretPosition(editableDiv) {
  var caretPos = 0,
    sel, range;
  if (window.getSelection) {
    sel = window.getSelection();
    if (sel.rangeCount) {
      range = sel.getRangeAt(0);
      if (range.commonAncestorContainer.parentNode == editableDiv) {
        caretPos = range.endOffset;
      }
    }
  } else if (document.selection && document.selection.createRange) {
    range = document.selection.createRange();
    if (range.parentElement() == editableDiv) {
      var tempEl = document.createElement("span");
      editableDiv.insertBefore(tempEl, editableDiv.firstChild);
      var tempRange = range.duplicate();
      tempRange.moveToElementText(tempEl);
      tempRange.setEndPoint("EndToEnd", range);
      caretPos = tempRange.text.length;
    }
  }
  return caretPos;
}

var update …
Run Code Online (Sandbox Code Playgroud)

javascript caret contenteditable getcaretpos

6
推荐指数
1
解决办法
3046
查看次数

以编程方式在文本框中移动插入符号,对齐并向下对齐

我正在努力在 DataGridView中的文本框编辑控件中移动插入符号,一行向上和一行向下,就像用户在按下向上和向下箭头时会得到的那样。

所以我的意思不是换行符之间的行,我的意思是文本框左侧和右侧之间的行。

我不能使用 GetCharIndexFromPosition 和 GetPositionFromCharIndex 因为并非所有文本都会始终显示在文本框显示区域中。

编辑: 我无法模拟 KeyPress,因为我正在处理 DataGridView 中的文本框单元格。我的目标实际上是让箭头键做他们在普通文本框中会做的事情,而不是从一行跳到另一行。

c# textbox datagridview caret winforms

5
推荐指数
1
解决办法
4770
查看次数

JavaScript:通过鼠标单击获取输入文本位置(以字符为单位)

我有一个 HTML<input type="text"><textarea>随机存在的文本,比如 [12345678] 或 [12345
67890]
我在这个文本中有一个任意定位的 mousedown 单击事件。我需要将 2D mousedown 点击页面坐标转换为基于字符的 1D 文本坐标,以便 JS 正确定位插入符号。显然浏览器有一些函数在内部进行这种转换;最好这样称呼。输入具有标准的可变宽度字体,并且可以处于任何放大级别。浏览器仅限于 FireFox。我们有 JQuery 和 JCursor。

背景:输入字段是在深度嵌套的框内动态生成的,每个框都有粗糙的重载。遗留代码与最新 FF 实现的结合以某种方式窃取了从输入元素冒泡到它点击默认浏览器 set-caret 操作的时间之间的 mousedown 传播/焦点,而这种情况并没有发生。我需要自己设置插入符号。

javascript text input cursor caret

5
推荐指数
1
解决办法
1927
查看次数

如何防止 JTextPane.setCaretPosition(int) 中的内存泄漏?

我正在使用基于 Swing 的 GUI 开发 Java 应用程序。该应用程序用于JTextPane输出日志消息,如下所示:1) 截断现有文本以保持总文本大小低于限制;2) 添加新文本;3)滚动到最后(实际逻辑略有不同,但在这里无关紧要)。

我使用 Eclipse 和 JVM Monitor 来确定合理的文本大小限制并发现显着的内存泄漏。我试图UndoableEditListener从底层文档中删除s 并禁用自动插入符号位置更新(通过使用DefaultCaret.NEVER_UPDATE和显式更改位置JTextPane.setCaretPosition(int)),但没有成功。最后,我决定完全禁用更改插入符号位置,这修复了泄漏。

我有两个问题:

  1. 我的代码有问题吗?如果是,我该如何更改它以完成任务?

  2. 这是一个 Swing/JVM 错误吗?如果是,我该如何举报?

细节:

这是 SSCCE:带有 textPane 和两个按钮的 GUI,用于小型和压力测试。FIXFIXXX标志对应于我修复内存泄漏的尝试。

package memleak;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.UndoableEditListener;
import javax.swing.text.*;

class TestMain
{
  private JTextPane textPane;
  // try to fix memory leak
  private static final boolean FIX = false;
  // disable caret updates completely
  private static final boolean FIXXX …
Run Code Online (Sandbox Code Playgroud)

java swing memory-leaks jtextpane caret

5
推荐指数
1
解决办法
903
查看次数

如何在TextBox C#中创建Multi-Carets

我发现许多专业的文本编辑器,如Sublime Text和Synwrite,它具有Multi-Caret编辑器的功能.文本插入符实际上会插入编辑器内的不同行,因此您可以实际编辑相同类型代码的多行.所以不再需要复制粘贴了.

这是具有Multi Caret功能的Cuda Text编辑器的GIF图像.

那么有人可以帮助在C#中实现这一目标吗?

.net c# caret winforms

5
推荐指数
0
解决办法
151
查看次数

恢复位置后如何将插入符号移动到带有rangy的新行?

在替换 contenteditable div 的 html 之前,我正在使用 rangy 手动将插入符号恢复到以前的位置。

这是将插入符号恢复到先前位置的代码:

 let newText = "I love squares <a href=#> #and </a> circles";
 sel = rangy.getSelection();
 savedSel = sel.saveCharacterRanges(textField[0]);
 textField.html(newText);
 sel.restoreCharacterRanges(textField[0], savedSel);
Run Code Online (Sandbox Code Playgroud)

请注意 | 指示当前插入符号的位置。插入符号将被放回主题标签(#and)后面:

我喜欢正方形#and |

矩形和圆形

但是我想用代码替换最后一行,以便在将插入符号恢复到以前的位置后将插入符号放在下一行:

我喜欢正方形#and

|矩形和圆形

javascript jquery caret rangy

5
推荐指数
0
解决办法
38
查看次数