M. *_*age 3 c# drag-and-drop richtextbox winforms
我有,我希望用户能够拖拽文本(C#项目,即移动文本)内一个RichTextBox在WinForm的。
我找到了许多示例,展示了如何将某些内容拖放到 RichTextBox 上,但是当 RichTextBox 既是拖放源又是拖放目标时,我没有成功地让它们工作。
我该怎么做?
以下是我迄今为止的非工作尝试。
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
this.richTextBox1.AllowDrop = true;
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragEnter);
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragDrop);
}
private void richTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.Rtf))
e.Effect = DragDropEffects.Move;
else
e.Effect = DragDropEffects.None;
}
private void richTextBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) {
int i;
String s;
i = richTextBox1.SelectionStart;
s = richTextBox1.Text.Substring(i);
richTextBox1.Text = richTextBox1.Text.Substring(0, i);
richTextBox1.Text = richTextBox1.Text +
e.Data.GetData(DataFormats.Text).ToString();
richTextBox1.Text = richTextBox1.Text + s;
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,我发现自己解决了这个问题:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
richTextBox1.EnableAutoDragDrop = true;
}
}
Run Code Online (Sandbox Code Playgroud)
仅此而已。
我的第一次尝试是基于 MSDN 文档:http : //msdn.microsoft.com/en-us/library/aa984395 ( v= vs.71).aspx,但它似乎坏了。