Winform 对话框

Posted 小飛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform 对话框相关的知识,希望对你有一定的参考价值。

ColorDialog:显示可用颜色,以及用户可以自定义颜色的控件,以调色板对话框形式出现,可选择更改字体颜色

FolderBrowserDialog:显示一个对话框,提示用户选择文件夹

FontDialog:显示一个选择字体的对话框,可添加调节颜色功能,把此控件属性行为中的ShowColor默认值改为True

OpenFileDialog:显示一个对话框,提示用户打开文件

SaveFileDialog:显示一个对话框,提示用户选择保存文件的位置

 

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.Windows.Forms;

namespace 对话框控件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //打开本地的文件,因为在记事本中不支持显示其他文件,所以首先要设置打开文件的格式
            openFileDialog1.Filter = "文本文件|*.txt|全部文件|*.*";//前面是自己添加的汉字,可随意设置,中间竖线,后面是格式,*.txt,值打开txt类型文件

            DialogResult dr = openFileDialog1.ShowDialog();//DialogResult指示对话框中的返回值,用来接收对话框选择以后是否确定执行,

            if (dr == DialogResult.OK)//如果返回值是确定,DialogResult.OK,那么就执行以下操作,加这一步只是为了让程序更加严谨
            {

                label1.Text = openFileDialog1.FileName;//加一个文字显示控件label1,将打开文件的选择路径显示在里面,  
                //.FileName获取文件对话框中选定文件名的字符串,也就是将保存路径用字符串的形式获取

                //StreamReader流,文件的传输通道,只有通过这个才能完成文件的打开或传输
                //使用前要先引用此方法,然后实例化一下,通过选择路径将要打开的文件接收于流通道中
                StreamReader sr = new StreamReader(openFileDialog1.FileName);
                textBox1.Text = sr.ReadToEnd();//sr.ReadToEnd();从开始读取到末尾读取流,显示在文本框中
                sr.Close();//流通道使用完记得要关闭

            }
        }


        //保存功能
        string path = "";//先定义一个字符串变量用来判断是否为空
        private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (path == "")//第一次进来定义的变量是空的,就走这一步
            {
                saveFileDialog1.FileName = "新建文本文件.txt";//先设置保存的文件类型
                saveFileDialog1.ShowDialog();//显示文件保存对话框,执行保存
                path = saveFileDialog1.FileName;//将保存路径以字符串的形式接收于变量path中
            }
            //如果保存过一次,在这个保存路径中的记事本中在添加新的内容,再点击保存,
            //变量path已在第一次保存时被赋值,不为空,就走下面这一步
            //使用流,通过保存路径获取到文件
            StreamWriter sw = new StreamWriter(path);
            sw.Write(textBox1.Text);//将新添加的内容直接写入保存路径
            sw.Close();//流通道使用完要关闭
        }

        private void 另存为AToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //另存为和保存一样,只是不需要判断有没有保存过的文本,每次都是新建保存
            saveFileDialog1.FileName = "新建文本文件.txt";
            saveFileDialog1.ShowDialog();
            label1.Text = saveFileDialog1.FileName;
            StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
            sw.Write(textBox1.Text);
            sw.Close();
        }

        private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();//鼠标点击实现退出
        }

        private void 撤消UToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Undo();//鼠标点击实现输入文字的撤销
        }

        private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Cut();//鼠标点击实现文字剪切
        }

        private void 复制CToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Copy();//鼠标点击实现文字复制
        }

        private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Paste();//鼠标点击实现文字粘贴
        }

        private void 全选AToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.SelectAll();//鼠标点击实现文字全选
        }

        private void 字体颜色ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //指定标识符以指示对话框的返回值,将字体颜色对话框的返回值接收于dr中
            DialogResult dr = colorDialog1.ShowDialog();
            if (dr == DialogResult.OK)//如果返回值是确定
            {
                //则执行字体换色,文本框的前景色textBox1.ForeColor等于颜色对话框中选择的颜色
                textBox1.ForeColor = colorDialog1.Color;
            }
        }

        //对话框功能显示用  控件名.ShowDialog(),如颜色控件对话框显示colorDialog1.ShowDialog();
        private void 字体格式ToolStripMenuItem_Click(object sender, EventArgs e)
        {   
            fontDialog1.ShowColor = true;//首先将字体设置控件中调整字体颜色设为可用,可在设计界面属性中设置
            fontDialog1.ShowDialog();//显示字体设置对话框
            textBox1.Font = fontDialog1.Font;//文本框textBox1的字体Font等于字体设置对话框中选择的颜色
            textBox1.ForeColor = fontDialog1.Color;//文本框的前景色,文字颜色等于字体设置对话框中设置的颜色
        }

        private void 选择文件夹ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            folderBrowserDialog1.ShowDialog();//执行选择文件夹功能显示folderBrowserDialog1控件名点显示,
            //文本框中显示文件的选择路径
            textBox1.Text = folderBrowserDialog1.SelectedPath;//SelectedPath选择路径
        }

        private void toolStripStatusLabel2_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            string s = textBox1.TextLength.ToString();//记录并显示字符的数量,先将这个记事本文本的长度以字符串的形式赋值到变量s中
            toolStripStatusLabel2.Text = s;//底部菜单栏文本控件文本的值等于记事本文本的长度
        }
    }
}

 

以上是关于Winform 对话框的主要内容,如果未能解决你的问题,请参考以下文章

执行代码时有时不显示对话框片段

34.winform之打开文件对话框

34.winform之打开文件对话框

无法在片段内创建对话框

我该如何做模态对话框片段(代码在我关闭之前不会执行)

winform中如何使用确认对话框