C#中openFileDialog控件的使用方法

C#中openFileDialog控件的使用方法

目录

一、OpenFileDialog基本属性

[二、使用 OpenFile 从筛选的选择中打开文件](#二、使用 OpenFile 从筛选的选择中打开文件)

1.示例源码

2.生成效果

[3. 其它示例](#3. 其它示例)

[三、使用 StreamReader 以流的形式读取文件](#三、使用 StreamReader 以流的形式读取文件)

1.示例源码

2.生成效果

四、一种新颖的Windows窗体应用文件设计方法

在C#中,OpenFileDialog控件用于创建一个打开文件对话框,允许用户选择文件。OpenFileDialog提供了一种简单的方式来让用户选择一个或多个文件,并获取用户所选文件的路径。

OpenFileDialog是打开文件对话框的意思,即在窗体设计中,如果需要打开本地文件,就需要用到该类。

一、OpenFileDialog基本属性

|------------------|------------------------------------------------------|

| 属性 | 说明 |

| InitialDirectory | 对话框的初始目录 |

| Filter | 获取或设置当前文件名筛选器字符串,例如,"文本文件(.txt)|.txt|所有文件(.)||." |

| FilterIndex | 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 |

| RestoreDirectory | 控制对话框在关闭之前是否恢复当前目录 |

| FileName: | 第一个在对话框中显示的文件或最后一个选取的文件 |

| Title | 将显示在对话框标题栏中的字符 |

| AddExtension | 是否自动添加默认扩展名 |

| CheckPathExists | 在对话框返回之前,检查指定路径是否存在 |

| DefaultExt | 默认扩展名 |

| DereferenceLinks | 在从对话框返回前是否取消引用快捷方式 |

| ShowHelp | 启用"帮助"按钮 |

| ValiDateNames | 控制对话框检查文件名中是否不含有无效的字符或序列 |

二、使用 OpenFile 从筛选的选择中打开文件

1.示例源码

cs

复制代码

//使用 OpenFile 从筛选的选择中打开文件

using System.Diagnostics;

using System.Security;

namespace WinFormsApp1

{

public partial class OpenFileDialogForm : Form

{

private readonly Button selectButton;

private readonly OpenFileDialog openFileDialog1;

public OpenFileDialogForm()

{

InitializeComponent();

//新建openFileDialog控件

openFileDialog1 = new OpenFileDialog()

{

FileName = "Select a text file", //OpenFileDialog窗体提示

Filter = "Text files (*.txt)|*.txt", //选择什么扩展名类型的文件

Title = "Open text file" //OpenFileDialog窗体的抬头

};

//新建按钮及点击事件

selectButton = new Button()

{

Size = new Size(100, 20),

Location = new Point(15, 15),

Text = "Select file"

};

selectButton.Click += new EventHandler(SelectButton_Click);

Controls.Add(selectButton);

}

///

/// 按钮点击事件应用

/// 使用 Button 控件的 Click 事件处理程序打开包含仅显示文本文件的筛选器的 OpenFileDialog。

/// 用户选择文本文件并选择"确定"后,可用 OpenFile 方法在记事本中打开该文件

///

private void SelectButton_Click(object? sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

try

{

var filePath = openFileDialog1.FileName;

using Stream str = openFileDialog1.OpenFile();

Process.Start("notepad.exe", filePath);

}

catch (SecurityException ex)

{

MessageBox.Show($"Security error.\n\nError message: {ex.Message}\n\n" +

$"Details:\n\n{ex.StackTrace}");

}

}

}

}

}

2.生成效果

3. 其它示例

在作者的这篇文章中也有这种读取文件的示例。

写文章-CSDN创作中心 https://mp.csdn.net/mp_blog/creation/editor/134621313

三、使用 StreamReader 以流的形式读取文件

1.示例源码

cs

复制代码

//使用 StreamReader 以流的形式读取文件

using System.Security;

namespace _05_3

{

public partial class Form1 : Form

{

private readonly Button selectButton;

private readonly OpenFileDialog openFileDialog1;

private readonly TextBox textBox1;

public Form1()

{

InitializeComponent();

//创建OpenFileDialog控件openFileDialog1

openFileDialog1 = new OpenFileDialog();

//创建按钮控件selectButton及添加点击事件

selectButton = new Button

{

Size = new Size(100, 20),

Location = new Point(15, 15),

Text = "Select file"

};

selectButton.Click += new EventHandler(SelectButton_Click);

//创建文本框控件textBox1

textBox1 = new TextBox

{

Size = new Size(300, 300),

Location = new Point(15, 40),

Multiline = true,

ScrollBars = ScrollBars.Vertical

};

//设置Form1表格大小

ClientSize = new Size(330, 360);

Controls.Add(selectButton);

Controls.Add(textBox1);

}

//自定义方法

private void SetText(string text)

{

textBox1.Text = text;

}

///

/// 使用 StreamReader 以流的形式读取文件

/// 使用 Windows 窗体 Button 控件的 Click 事件处理程序通过 ShowDialog 方法打开 OpenFileDialog。

/// 用户选择一个文件并选择"确定"后,StreamReader 类的实例将读取该文件,并在窗体的文本框中显示文件内容。

///

private void SelectButton_Click(object? sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

try

{

var sr = new StreamReader(openFileDialog1.FileName);

SetText(sr.ReadToEnd());

}

catch (SecurityException ex)

{

MessageBox.Show($"Security error.\n\nError message: {ex.Message}\n\n" +

$"Details:\n\n{ex.StackTrace}");

}

}

}

}

}

2.生成效果

四、一种新颖的Windows窗体应用文件设计方法

这两个示例使用了一种Windows窗体应用文件新的设计方法,不设计Form1.cs[设计]。所有试图、控件都通过编程实现。是不是很新颖呢?你更喜欢哪一种设计方法呢?

相关文章

国际排联
怎么改变上网ip地址?这四种方法可以帮到你
华为手机/平板屏幕花屏、闪屏怎么回事?