前言
我们在winform开发中经常有这类需求:我们需要将文件,比如txt文件的所有内容复制到 RichTextBox控件上,或者需要将txt文件的某一行内容移动到 RichTextBox控件上,这些功能是怎么实现的呢?请接着往下看。
博主履历介绍:
本人2017年硕士毕业,行业经验六年+,一直在自动化行业从事上位机软件开发的工作,当然运动控制和机器视觉也广泛涉及,目前也是以高级软件工程师的职位任职,薪资我就不方便透露了,你可以去招聘网站去查上位机高级软件工程师的薪资范围(只能说至少两万月薪Base),可以说理论和实战经验都比较丰富,所以我的经验对学习c#的尤其自动化行业的人极具参考价值,可以说如果掌握了我的博客所有文章,你也可以达到甚至超越我的水平,也祝愿大家都能通过自己的努力找到理想的工作!
本篇文章是我经过多年实战经验总结的博客专栏《winform控件从入门到精通》系列文章中的一篇介绍如何用几行代码给winform多个控件(数量无上限)赋值文章,如果需要系统的了解winform控件开发,请订阅专栏《winform控件从入门到精通》,限时19.9元(一顿外卖),原创不易,敬请谅解!本专栏会对winform中所有控件进行介绍,包括控件的属性和事件,重点是我会将控件所有属性和事件进行介绍,并且也会在专栏中增加一些案例来帮助想学习winform控件的程序员来巩固以及练习如何灵活的运用控件的各种特性来实现不同的功能,所以该专栏文章既包含了入门内容,也包含了进阶内容,对于想学习winform控件开发的程序员来说这绝对是一份非常详细的资料,您也可以将其作为自己的字典,需要使用某个功能的时候来查阅即可,当然如果您发现我的文章中有您需要的功能,但是我没有进行介绍,您可以在我的博客中留言,我会及时更新该功能,感谢大家一直以来的支持!
**订阅《winform控件从入门到精通》专栏的vip成员还可享受以下增值服务:
1)进入VIP群和众多学员一起交流学习winform,c#,找工作等
2)博主会上传一些免费的学习资料帮助大家学习,比如本篇博文说的上位机源码、《c#图解教程》、《c#本质论》的电子书籍、串口助手的源码等
3)如果遇到学习困难还可在群里@博主来帮助你
关于所有控件的访问链接如下:
1、Winform从入门到精通(27)——Label(详细版本)
2、Winform从入门到精通(2)——Button(史上最全)
3、Winform从入门到精通(3)——Form(史上最全)
4、Winform从入门到精通(4)——Textbox(史上最全)
#5、Winform从入门到精通(5)——checkBox(史上最全)
6、Winform从入门到精通(6)——radioButton(史上最全)
7、Winform从入门到精通(7)——ComboBox(史上最全)
8、Winform从入门到精通(8)——richTextBox(史上最全)
9、Winform从入门到精通(9)——ListBox(史上最全)
10、Winform从入门到精通(10)——CheckedListBox(史上最全)
11、Winform从入门到精通(11)——numericUpDown(史上最全)
12、Winform从入门到精通(12)——LinkLabel(史上最全)
13、Winform从入门到精通(13)——DateTimePicker(史上最全)
14、Winform从入门到精通(14)——NotifyIcon(史上最全)
15、Winform从入门到精通(15)——contextMenuStrip(史上最全)
16、Winform从入门到精通(16)——Timer(史上最全)
17、Winform从入门到精通(17)——PictureBox(史上最全)
18、Winform从入门到精通(18)——Chart(史上最全)
19、Winform从入门到精通(19)——DataGridView(史上最全)
20、Winform从入门到精通(20)——TableLayoutPanel(史上最全
21、Winform从入门到精通(21)——ProgressBar(史上最全)
22、Winform从入门到精通(22)——Panel(史上最全)
23、Winform从入门到精通(23)——FlowLayoutPanel(史上最全)
24、 Winform从入门到精通(24)——GroupBox(史上最全)
25、Winform从入门到精通(25)——SplitContainer(史上最全)
26、Winform从入门到精通(26)——TabControl(史上最全)
27、Winform从入门到精通(28)——ToolTip(史上最全)
28、Winform从入门到精通(29)——MaskedTextBox(史上最全)
29、Winform从入门到精通(30)——MonthCalendar(史上最全)
30、Winform从入门到精通(31)——TreeView(史上最全)
31、Winform从入门到精通(32)——MenuStrip(史上最全)
32、Winform从入门到精通(33)——OpenFileDialog(史上最全)
33、Winform从入门到精通(34)——SaveFileDialog(史上最全)
34、Winform从入门到精通(35)——FontDialog(史上最全)
35、Winform从入门到精通(36)——ColorDialog(史上最全)
36、Winform从入门到精通(37)——FolderBrowserDialog(史上最全)
下面进入正题:
一、将txt文件的所有内容复制到 RichTextBox中
先选中test.txt文件,按下鼠标左键,然后按下"ctrl"键,拖动文件到form1窗体上
在上图中可以看到我将text.txt文件的路径拖到了“文件名列表”中,这样我可以通过这个文件名将test.txt文件中的内容全部读取到
二、将txt文件的一行内容移动到RichTextBox中
先选中”c#软件工“,然后按下鼠标左键,然后按下"shift"键,拖动文本到form1窗体上
在上图中可以看到我将文本”c#软件工“这几个字移动到了form1窗体上
三、将多个文件的全路径复制到 RichTextBox中
先按下ctrl键,选中两个txt文件,然后鼠标拖到form1窗体上
从上图可以看出,两个txt文本的路径都被存到了“文件列表中”。
四 、源码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.AllowDrop = true;//允许将数据拖放到form1上
this.DragEnter += RichTextBox1_DragEnter;//注册对象拖入form1的边界时发生
this.DragDrop += RichTextBox1_DragDrop;//注册拖放操作完成时发生
}
private void RichTextBox1_DragDrop(object sender, DragEventArgs e)
{
try
{
richTextBox_Content.Clear();
richTextBox_DataType.Clear();
richTextBox_FileList.Clear();
List<string> fileNames = new List<string>();
Type t = typeof(DataFormats);
FieldInfo[] info = t.GetFields();//获取对象的所有字段
foreach (FieldInfo item in info)
{
string itemName = item.Name;//获取字段名称
fileNames.Add(itemName);
}
foreach (string item in fileNames)//判断拖入的对象是什么类型,并输出到richTextBox_DataType中
{
if (e.Data.GetDataPresent(item))
{
string tempStr = string.Concat(item,"\r\n");
richTextBox_DataType.AppendText(tempStr);
}
}
if (e.Data.GetDataPresent(DataFormats.FileDrop))//如果拖入的对象是个文件,则将所有文件路径输出到richTextBox_FileList中
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string item in files )
{
string tempStr = string.Concat(item, "\r\n");
richTextBox_FileList.AppendText(tempStr);
}
}
if (e.Data.GetDataPresent(DataFormats.Text))//如果拖入的对象是个文本,则将文本内容输出到richTextBox_Content中
{
string str = e.Data.GetData(DataFormats.Text).ToString();
richTextBox_Content.AppendText(str);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}
}
private void RichTextBox1_DragEnter(object sender, DragEventArgs e)
{
DragDropEffects dragDropEffects = e.AllowedEffect;//获取拖到事件的发起方(源)所支持的操作
if((e.KeyState &8)==8&& (dragDropEffects& DragDropEffects.Copy)== DragDropEffects.Copy )//如果ctrl键被按下,并且源支持复制,则复制源到目标
{
e.Effect = DragDropEffects.Copy;
}
else if((e.KeyState & 4) == 4 && (dragDropEffects & DragDropEffects.Move ) == DragDropEffects.Move)//如果shift键被按下,并且源支持移动,则移动源到目标
{
e.Effect = DragDropEffects.Move ;
}
else
{
e.Effect = DragDropEffects.None;//ctrl键和shift键这两个键都没有被按下则,拖放目标不接受数据,DragDrop事件也不会触发
}
}
}
老铁们,以后再遇到这种需要拖文件的场景是不是一点也不慌了?哈哈!如果你也想做到“控件心中过,界面自然成”的境界,请关注我的博客专栏《winform控件从入门到精通》,更多控件的访问链接如下:
点击链接即可转到该控件的详细介绍:文章来源:https://www.toymoban.com/news/detail-702875.html
1、Winform从入门到精通(1)——(如何年入30万+)
2、Winform从入门到精通(2)——Button(史上最全)
3、Winform从入门到精通(3)——Form(史上最全)
4、Winform从入门到精通(4)——Textbox(史上最全)
5、Winform从入门到精通(5)——checkBox(史上最全)
6、Winform从入门到精通(6)——radioButton(史上最全)
7、Winform从入门到精通(7)——ComboBox(史上最全)
8、Winform从入门到精通(8)——richTextBox(史上最全)
9、Winform从入门到精通(9)——ListBox(史上最全)
10、Winform从入门到精通(10)——CheckedListBox(史上最全)
11、Winform从入门到精通(11)——numericUpDown(史上最全)
12、Winform从入门到精通(12)——LinkLabel(史上最全)
13、Winform从入门到精通(13)——DateTimePicker(史上最全)
14、Winform从入门到精通(14)——NotifyIcon(史上最全)
15、Winform从入门到精通(15)——contextMenuStrip(史上最全)
16、Winform从入门到精通(16)——Timer(史上最全)
17、Winform从入门到精通(17)——PictureBox(史上最全)
18、Winform从入门到精通(18)——Chart(史上最全)
19、Winform从入门到精通(19)——DataGridView(史上最全)
20、Winform从入门到精通(20)——TableLayoutPanel(史上最全
21、Winform从入门到精通(21)——ProgressBar(史上最全)
22、Winform从入门到精通(22)——Panel(史上最全)
23、Winform从入门到精通(23)——FlowLayoutPanel(史上最全)
24、 Winform从入门到精通(24)——GroupBox(史上最全)
25、Winform从入门到精通(25)——SplitContainer(史上最全)
26、Winform从入门到精通(26)——TabControl(史上最全)
27、Winform从入门到精通(27)——Label(史上最全)
28、Winform从入门到精通(28)——ToolTip(史上最全)
29、Winform从入门到精通(29)——MaskedTextBox(史上最全)
30、Winform从入门到精通(30)——MonthCalendar(史上最全)
31、Winform从入门到精通(31)——TreeView(史上最全)
32、Winform从入门到精通(32)——MenuStrip(史上最全)
33、Winform从入门到精通(33)——OpenFileDialog(史上最全)
34、Winform从入门到精通(34)——SaveFileDialog(史上最全)
35、Winform从入门到精通(35)——FontDialog(史上最全)
36、Winform从入门到精通(36)——ColorDialog(史上最全)
37、Winform从入门到精通(37)——FolderBrowserDialog(史上最全)
更多控件持续更新中文章来源地址https://www.toymoban.com/news/detail-702875.html
到了这里,关于手把手教你在winform中将文本或文件路径拖到控件中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!