【发布时间】:2012-09-13 21:53:44
【问题描述】:
我希望在我的 Windows 窗体应用程序上自定义富文本框控件。 RichTextbox 将用于输入文本数据,一旦完成,将通过 SMS 文本消息发送。
要求文本不能有任何换行符,因为某些旧手机无法正确显示信息并且会丢失格式。
我需要做的是在粘贴到 RTB 之前捕获剪贴板数据并自定义其格式,例如删除换行符。
我在这里找到了一个示例,该示例在一定程度上可以正常工作,但无法粘贴到其他控件中:-
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if((keyData == (Keys.Control | Keys.V)))
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
string contents = Clipboard.GetText().Replace("\r\n", " ");
Clipboard.SetData(DataFormats.Text, contents);
richTextBox1.Paste();
}
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}
请问有人知道我应该怎么做吗?
【问题讨论】:
-
此外,此代码不会处理右键单击/粘贴操作。
-
你不能在 Win Form 上这样做,只能在 WPF 中。
标签: c# winforms richtextbox