在Windows窗体中的控件中使用拖放操作,具体以RichTextBox控件展示
2014-12-02 15:58
281 查看
在Windows窗体中的控件中使用拖放操作,具体以RichTextBox控件展示
下面的代码实现的功能是,当将文字拖到RichTextBox中时,将文字的内容显示在RichTextBox中;当讲文件或文件夹拖动到RichTextBox中时,将文件de路径显示在listbox中。
其中,由于在设计窗体中找不到RichTextBox的DragDrop的事件,需要在代码层添加如
//richtextbox 在设计窗体的事件里面找不到需要在代码层手动添加
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragDrop);
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragEnter);
下面是整个Form的代码,控件涉及一个RichTextBox和一个ListBox
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Webbrowser
{
public partial class DragDrop : Form
{
public DragDrop()
{
InitializeComponent();
}
private void DragDrop_Load(object sender, EventArgs e)
{
richTextBox1.AllowDrop = true;
//richtextbox 在设计窗体的事件里面找不到需要在代码层手动添加
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragDrop);
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragEnter);
}
private void richTextBox1_DragEnter(object sender,System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))//如果文字被拖动到richtextbox中则复制
e.Effect = DragDropEffects.Copy;
else if(e.Data.GetDataPresent(DataFormats.FileDrop))//如果文件被拖动到richtextbox中则设置复制
{
e.Effect = DragDropEffects.Copy;
}
else
e.Effect = DragDropEffects.None;
}
private void richTextBox1_DragDrop(object sender,System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))//当时文本内容时,将内容显示在richtextbox中
{
richTextBox1.Text = e.Data.GetData(DataFormats.Text).ToString();
}
else if (e.Data.GetDataPresent(DataFormats.FileDrop))//如果是文件,则将文件的路径显示在listbox中
{
string[] file = (string[])e.Data.GetData(DataFormats.FileDrop);
for (int i = 0; i < file.Count(); i++)
{
FileInfo fi=new FileInfo(file[i]);
listBox1.Items.Add(fi.FullName);
}
}
}
}
}
下面的代码实现的功能是,当将文字拖到RichTextBox中时,将文字的内容显示在RichTextBox中;当讲文件或文件夹拖动到RichTextBox中时,将文件de路径显示在listbox中。
其中,由于在设计窗体中找不到RichTextBox的DragDrop的事件,需要在代码层添加如
//richtextbox 在设计窗体的事件里面找不到需要在代码层手动添加
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragDrop);
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragEnter);
下面是整个Form的代码,控件涉及一个RichTextBox和一个ListBox
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Webbrowser
{
public partial class DragDrop : Form
{
public DragDrop()
{
InitializeComponent();
}
private void DragDrop_Load(object sender, EventArgs e)
{
richTextBox1.AllowDrop = true;
//richtextbox 在设计窗体的事件里面找不到需要在代码层手动添加
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragDrop);
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragEnter);
}
private void richTextBox1_DragEnter(object sender,System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))//如果文字被拖动到richtextbox中则复制
e.Effect = DragDropEffects.Copy;
else if(e.Data.GetDataPresent(DataFormats.FileDrop))//如果文件被拖动到richtextbox中则设置复制
{
e.Effect = DragDropEffects.Copy;
}
else
e.Effect = DragDropEffects.None;
}
private void richTextBox1_DragDrop(object sender,System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))//当时文本内容时,将内容显示在richtextbox中
{
richTextBox1.Text = e.Data.GetData(DataFormats.Text).ToString();
}
else if (e.Data.GetDataPresent(DataFormats.FileDrop))//如果是文件,则将文件的路径显示在listbox中
{
string[] file = (string[])e.Data.GetData(DataFormats.FileDrop);
for (int i = 0; i < file.Count(); i++)
{
FileInfo fi=new FileInfo(file[i]);
listBox1.Items.Add(fi.FullName);
}
}
}
}
}
相关文章推荐
- 在IE浏览器中使用Windows窗体控件(二)
- 在IE浏览器中使用Windows窗体控件(二)
- .net2005 Windows 窗体上使用的控件
- 在 Internet Explorer 中使用 Windows 窗体控件
- 在IE浏览器中使用.NET Windows窗体控件
- 在IE浏览器中使用Windows窗体控件(三)
- 在IE浏览器中使用Windows窗体控件
- 在 Internet Explorer 中使用 Windows 窗体控件
- 窗体样式使用WS_EX_LAYERED后,无法绘制windows控件的解决办法
- [转]在IE浏览器中使用Windows窗体控件
- winform使用模式窗体,简单操作控件
- 从“在Internet Explorer 中使用Windows窗体控件”谈Smart Client
- 在IE浏览器中使用Windows窗体控件(二)
- 可在 Windows 窗体中使用的控件
- 在IE浏览器中使用Windows窗体控件(一)
- 在IE浏览器中使用Windows窗体控件
- 在IE浏览器中使用Windows窗体控件(三)
- 在IE浏览器中使用Windows窗体控件
- 窗体样式使用WS_EX_LAYERED后,无法绘制windows控件的解决办法
- 在IE浏览器中使用Windows窗体控件