手把手教你在winform中将文本或文件路径拖到控件中

这篇具有很好参考价值的文章主要介绍了手把手教你在winform中将文本或文件路径拖到控件中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们在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窗体上
c# 上传文件控件,winform实战经验总结,c#,c#,winform,控件,ui
在上图中可以看到我将text.txt文件的路径拖到了“文件名列表”中,这样我可以通过这个文件名将test.txt文件中的内容全部读取到

二、将txt文件的一行内容移动到RichTextBox中

先选中”c#软件工“,然后按下鼠标左键,然后按下"shift"键,拖动文本到form1窗体上
c# 上传文件控件,winform实战经验总结,c#,c#,winform,控件,ui
在上图中可以看到我将文本”c#软件工“这几个字移动到了form1窗体上

三、将多个文件的全路径复制到 RichTextBox中

先按下ctrl键,选中两个txt文件,然后鼠标拖到form1窗体上
c# 上传文件控件,winform实战经验总结,c#,c#,winform,控件,ui
从上图可以看出,两个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控件从入门到精通》,更多控件的访问链接如下:
点击链接即可转到该控件的详细介绍:

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【最新】手把手教你在VMware中安装Ubuntu虚拟机

    前言 前段时间卸载了Ubuntu双系统,但是发现还是需要使用Ubuntu,遂决定在虚拟机中装一个Ubuntu系统。 已经装有VMware的可以忽略此步。 (1)点击VMware官网下载VMware。 (2)使用Windows系统的点击红色方框处进行下载。 这是笔者下载好的Windows系统使用的VMware17.0.0 VMware17.0.0百度云

    2024年03月28日
    浏览(59)
  • 手把手教你在Docker中安装Nginx(图文超详细)

    本文介绍如何在 Windows Docker Desktop 平台安装 Nginx 容器(Linux 平台同样适用),并详细讲解如何配置 Nginx ,实现 HTTP 请求在后端服务器集群间的负载均衡。 访问 dockerhub 查找所需的镜像版本: 这里我选择 1.24.0 版,执行如下命令: 命令执行结果: 随后,我们第一次运行镜像,

    2024年03月16日
    浏览(72)
  • 9个步骤,手把手教你在Windows上安装Hadoop

    在Windows上安装Hadoop时经常会出现许多错误,很多用户使用基于Linux的操作系统。本文详细讲述如何在Windows上安装和运行Apache Hadoop,如果遇到了问题,可以参考文章中的步骤进行解决。 微信搜索关注《Java学研大本营》 在 Microsoft Windows 上运行 Apache Hadoop 是比较繁琐的任务,在

    2024年02月08日
    浏览(72)
  • 手把手教你在 Windows 环境中搭建 MQTT 服务器

    前些天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 .NET 程序接收数据等等,今天分享一下如何搭建 MQTT 服务器。 MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的通信协议,专门设计用于在低带宽

    2024年02月03日
    浏览(66)
  • 新手教程科普,手把手教你在bitget walelt用Uniswap

    Uniswap 是以太坊区块链上领先的去中心化交易所 (DEX),允许用户交换和交易各种加密货币。 Uniswap 于 2018 年 11 月推出,是以太坊最早的 DApp 之一。目前有四个版本;其中V1、V2、V3都有开源代码库。 与 Coinbase 或 Binance 等传统中心化交易所 (CEX) 不同,Uniswap 不受任何单一实体控

    2024年03月20日
    浏览(52)
  • 手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年02月12日
    浏览(53)
  • 手把手教你在云环境炼丹(部署Stable Diffusion WebUI)

    前几天写了一篇《 手把手教你在本机安装Stable Diffusion秋叶整合包 》的文章,有些同学反映对硬件的要求太高,显卡太TM贵了。今天我再分享一个云服务器炼丹的方法,方便大家快速入门上手,这个云服务不需要特殊网络设置,能连接公网网盘,随开随用,有3090显卡,也有

    2024年02月15日
    浏览(48)
  • 手把手教你在linux环境下更换python的pip源

    搞python的肯定离不开各种各样的第三方包,比如爬虫,有requests,xpath,爬虫界的扛把子Scrapy;Web有django,flask,restframework啥的,还是挺多的,我们一般安装的方式都是pip install xx模块,但是我相信,你们肯定都遇到过这种情况。 如果我们从默认的 https://pypi.org/ 安装的过程非

    2024年02月12日
    浏览(49)
  • 手把手教你在linux中部署hadoop以及hadoop功能介绍

    我们在学大数据的时候hadoop是躲避不开的地方,所以如何在linux中部署hadoop,下面就是手把手教你如何部署hadoop。你只要复制粘体,然后按enter键就可以了。 准备:   安装Linux版本的服务器。可以参考中前半部分安装服务器的内容即可:VM部署CentOS并且设置网络_ZeroMaster的博客

    2024年02月03日
    浏览(59)
  • 【运维】手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年02月06日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包