我正在创建一个名为TextEditor的C#应用程序,该应用程序用于在RichTextBox1(即具有多个功能的基本文本编辑器系统)中尽可能多地编写文本和粘贴,但是我的代码仅检测文本并阻止该选项粘贴图像和其他所有内容(文本除外),使用CTRL + V粘贴图像,我认为解决方案将类似于以下内容,尽管我不知道如何使用剪贴板:
if (water = "")
{
no = true;
yes = false;
}
else {
no = false;
yes = true;
}
这是我尝试过的方法,并且只启用了文本功能,我希望始终启用它,除非什么都没有,而且我要包含图像。
我有一个粘贴按钮。
if (Clipboard.ContainsText(TextDataFormat.Text))
{
pegarToolStripMenuItem.Enabled = true;
}
else
{
pegarToolStripMenuItem.Enabled = false;
}
我希望它可以检测所有内容,但是只能检测文本,仅用于文本,但是我不知道如何对所有内容进行处理。
答案 0 :(得分:1)
您必须在RichTextBox中放置一个Key Down事件。您可以通过进入设计器>单击RichTextBox>事件> OnKeyDown来完成此操作。尝试以下代码:
private void RtbDocKeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.V)
{
DataFormats.Format df = DataFormats.GetFormat(DataFormats.Bitmap);
StringCollection strcollect = Clipboard.GetFileDropList();
Image image= Image.FromFile(strcollect[0]);
Clipboard.Clear();
Clipboard.SetImage(image);
if (Clipboard.ContainsImage())
{
rtbBody.Paste(df);
e.Handled = true;
Clipboard.Clear();
}
}
答案 1 :(得分:1)
解决方案: 多亏了emmademontford,我才能在他/她的代码中找到解决方案
if (Clipboard.ContainsText(TextDataFormat.Text))
{
pegarToolStripMenuItem1.Enabled = true;
}
else
{
pegarToolStripMenuItem1.Enabled = false;
if (Clipboard.ContainsImage())
{
pegarToolStripMenuItem1.Enabled = true;
}
else
{
pegarToolStripMenuItem1.Enabled = false;
}
}