首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RealStudio中,如何截取粘贴富文本?

在RealStudio中,如何截取粘贴富文本?
EN

Stack Overflow用户
提问于 2011-11-20 09:23:49
回答 2查看 487关注 0票数 1

我正在尝试创建一个简单的文本字段所见即所得的编辑。但是,我只希望允许某些类型的格式(例如,粗体、斜体、下划线和单个标题类型,但不允许颜色或不同的字体)。

问题是,如果我使用一个可以接受格式化的编辑器,有人可以在另一个程序中创建或复制格式化的文本,然后简单地将其粘贴到文本字段中,所有的格式化都会随之而来,允许我不感兴趣的东西,例如不同的字体,颜色等。我不想允许这样做。

充其量,我想自动剔除任何我不支持的格式。在最坏的情况下,我想简单地将任何内容粘贴为纯文本,使他们不得不重新格式化。但在任何情况下,我都不想只是将剪贴板转储到文本区。

对如何做到这一点有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-11 03:51:43

我建议创建一个新的文本字段/文本区域类,并创建一个EditPaste菜单处理程序,它(a)在处理剪贴板的文本方面执行您所期望的操作,(b)返回true以防止默认粘贴的发生。这比使用Key down事件更安全,因为用户可能会从“编辑”菜单中手动选择“粘贴”。

您可以通过创建剪贴板对象来访问剪贴板上的文本。

要创建文本字段的子类并截取粘贴菜单命令,请执行以下操作:

在打开项目的情况下,转至项目菜单>添加>

  1. 在项目的标签中选择新类,然后在属性面板中将类上的超级设置为TextField
  2. Double-click以对其进行编辑
  3. 单击类中的"Add Menu
  4. “工具栏中的按钮将菜单项名称更改为"EditPaste”。将您的代码放在"return true“之前,并确保将return true留在那里。

然后,您的代码可以手动格式化和粘贴文本,并覆盖默认的粘贴功能。

文本字段中的任何command-V或control-V都将触发该菜单处理程序。任何上下文菜单都会被你添加,因为real basic不会创建默认的上下文菜单,所以你也可以控制它。

要将文本字段添加到窗口中,只需将objects列表上方的筛选器更改为Project controls,然后将类拖入其中。

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 14:03:14

您可以通过在KeyDown事件中截取粘贴来自己截取粘贴。然后,您可以自己解析它。这可能有点棘手,但我认为这是你唯一能做到的方法。

在粘贴之后解析生成的StyleRun并去掉不需要的格式可能会更容易一些。

或者,您可以从True North Software查看格式化文本控件,并覆盖控件的粘贴方法(获得所有源代码),然后自己处理它。

不管怎样,我认为这将是一项相当多的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8198735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档