C#编程学习28:输入输出型软件界面设计与思考

目录

1 需求说明

2 TextBox空间拖拽文件自动获取其路径

2.1 设置AllowDrop属性为true

2.2 添加DropEnter事件

2.3 添加DragDrop

2.4 效果演示

3 文件输入与输出功能的设计与思考

3.1 文件输入功能

3.2 文件输出功能

3.3 总结

4 目录输入和输出功能设计与思考

5 执行部分的代码示例


1 需求说明

在实际开发过程中,经常会遇到给定输入路径和输出路径,然后程序处理后将处理结果输出到指定的输出路径中去

以ArcMap的3D Analyst --》 栅格计算 --》转为整型为例,如下图

C#编程学习28:输入输出型软件界面设计与思考_第1张图片

由上图可知:界面由文本框和按钮组成,支持文件拖拽,点击【显示帮助】按钮,可以弹出对功能的使用描述信息

2 TextBox空间拖拽文件自动获取其路径

2.1 设置AllowDrop属性为true

方法一:代码实现

        private void Form1_Load(object sender, EventArgs e)
        {
            txt_input.AllowDrop = true;
            txt_output.AllowDrop = true;
        }

方法二:属性选择

C#编程学习28:输入输出型软件界面设计与思考_第2张图片

2.2 添加DropEnter事件

        private void txt_input_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Link;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

2.3 添加DragDrop

        //拖放完成时发生
        private void txt_input_DragDrop(object sender, DragEventArgs e)
        {
            txt_input.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
            //这里是支持多选的,多选的结果保存在一个数组中,我们默认取数组的第一个元素为输入文件或目录的路径
        }

2.4 效果演示

C#编程学习28:输入输出型软件界面设计与思考_第3张图片

3 文件输入与输出功能的设计与思考

3.1 文件输入功能

有两种方式可采用:

方式一,直接拖拽法【即第二部分介绍的方法】;

方法三,按钮添加法

        private void btn_input_Click(object sender, EventArgs e)
        {
            OpenFileDialog pfd = new OpenFileDialog();
            pfd.Title = "待文件存储的路径的标题";
            pfd.Multiselect = false;
            if (pfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                txt_input.Text = pfd.FileName;
            }
        }

3.2 文件输出功能

        private void btn_output_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Title = "文件要保存的位置";
            
            if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                txt_output.Text = sfd.FileName;
            }
        }

3.3 总结

对于输入文件,可采用直接拖拽法、通过按钮调用对话框两种方法获取其路径信息;对于输出文件,最好的策略是通过按钮调用保存对话框,设定输出文件的路径

4 目录输入和输出功能设计与思考

目录的获取方式:直接复制法、拖拽法、按钮调用法

        private void btn_input_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.Description = "目录描述信息";
            if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                txt_input.Text = fbd.SelectedPath;
            }
        }

5 执行部分的代码示例

        private void btn_exec_Click(object sender, EventArgs e)
        {
            if (txt_input.Text == "" || txt_output.Text == "")
            {
                MessageBox.Show("指定的目录或路径为空", "错误提示");
            }

            if (File.Exists(txt_input.Text))
            {
                MessageBox.Show("指定文件的不存在", "错误提示");
            }
            if (Directory.Exists(txt_output.Text))
            {
                MessageBox.Show("指定目录的不存在", "错误提示");
            }
            //核心算法代码

        }

更多精彩欢饮关注个人微信公众帐号【学而立行】

 

你可能感兴趣的:(C#编程学习)