gpt4 book ai didi

c# - 通过在 RichTextBox 上放置文件自动删除图标

转载 作者:行者123 更新时间:2023-11-30 15:26:30 26 4
gpt4 key购买 nike

我将 AllowDrop 设置为 true 实现了 DragOverDragDrop 事件 RichTextBox。在 DragDrop 事件中,我将拖放的文本文件的内容加载到 RTB 上,但它确实在 RTB 中添加了文件的图标,我想将其删除:

enter image description here

编辑:这是我的代码:

void msg_setup_dragDrop()
{
msg_textBox.AllowDrop = true;

msg_textBox.EnableAutoDragDrop = true; msg_textBox.DragEnter += new DragEventHandler(msg_DragEnter); msg_textBox.DragDrop += new DragEventHandler(msg_DragDrop);

        void msg_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
}

void msg_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[]) e.Data.GetData(DataFormats.FileDrop);
StringBuilder buffer = new StringBuilder();

foreach (string filename in files)
{
try
{
string text = File.ReadAllText(filename);
buffer.Append(text);
}
catch (Exception ex)
{
string errMsg = string.Format("cannot read the file\"{0}\" error: {1}", filename, ex.Message);
MessageBox.Show(errMsg, "Reading file error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}

msg_textBox.Text = buffer.ToString();
}

最佳答案

你在某处设置了msg_textBox.EnableAutoDragDrop = true ,在您的设计器窗口或您的代码中。您需要将其设置为 false。您仍然需要设置 AllowDrop = true .

当设置为 true 时,winforms RichTextBox为拖放事件提供标准行为,您的自定义处理程序将添加。如果您不想要标准行为,则必须完全推出自己的处理程序。 (放置文本文件的标准行为是嵌入 OLE。如果双击该图标,记事本将启动。)

关于c# - 通过在 RichTextBox 上放置文件自动删除图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com