我正在尝试在RichTextBox(windows常用控件)中实现拖放功能。使用下面显示的代码可以正常工作。但是,当我将ReadOnly属性设置为true时,不会触发拖放事件。有什么我想念的吗?或者这是正确的行为?请指教。
private void rtb_dragdrop(object sender, DragEventArgs e)
{
Console.WriteLine("Test");
}
private void rtb_dragenter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
答案 0 :(得分:3)
显然,在RichTextBox中将ReadOnly属性设置为true将关闭执行拖放操作的功能。
一个简单的黑客模仿一个只读的RichTextBox:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
rtb.EnableAutoDragDrop = true;
rtb.KeyDown += new KeyEventHandler(rtb_KeyDown);
}
void rtb_KeyDown(object sender, KeyEventArgs e) {
e.SuppressKeyPress = true;
}
}
现在,拖放操作应该自动运行,EnabledAutoDragDrop
属性设置为true。无需处理拖拽输入和放下事件。