打开目录

// The following example displays an application that provides the ability to
// open rich text files (rtf) into the RichTextBox. The example demonstrates
// using the FolderBrowserDialog to set the default directory for opening files.
// The OpenFileDialog class is used to open the file.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

public class FolderBrowserDialogExampleForm : System.Windows.Forms.Form
{
 private FolderBrowserDialog folderBrowserDialog1;
 private OpenFileDialog openFileDialog1;
   
 private RichTextBox richTextBox1;

 private MainMenu mainMenu1;
 private MenuItem fileMenuItem, openMenuItem;
 private MenuItem folderMenuItem, closeMenuItem;
   
 private string openFileName, folderName;

 private bool fileOpened = false;

 // The main entry point for the application.
 static void Main()
 {
  Application.Run(new FolderBrowserDialogExampleForm());
 }


 // Constructor.
 public FolderBrowserDialogExampleForm()
 {
  this.mainMenu1 = new System.Windows.Forms.MainMenu();
  this.fileMenuItem = new System.Windows.Forms.MenuItem();
  this.openMenuItem = new System.Windows.Forms.MenuItem();
  this.folderMenuItem = new System.Windows.Forms.MenuItem();
  this.closeMenuItem = new System.Windows.Forms.MenuItem();

  this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
  this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
  this.richTextBox1 = new System.Windows.Forms.RichTextBox();

  this.mainMenu1.MenuItems.Add(this.fileMenuItem);
  this.fileMenuItem.MenuItems.AddRange(
   new System.Windows.Forms.MenuItem[] {this.openMenuItem,
             this.closeMenuItem,
             this.folderMenuItem});
  this.fileMenuItem.Text = "File";

  this.openMenuItem.Text = "Open...";
  this.openMenuItem.Click += new System.EventHandler(this.openMenuItem_Click);

  this.folderMenuItem.Text = "Select Directory...";
  this.folderMenuItem.Click += new System.EventHandler(this.folderMenuItem_Click);

  this.closeMenuItem.Text = "Close";
  this.closeMenuItem.Click += new System.EventHandler(this.closeMenuItem_Click);
  this.closeMenuItem.Enabled = false;

  this.openFileDialog1.DefaultExt = "rtf";
  this.openFileDialog1.Filter = "rtf files (*.rtf)|*.rtf";

  // Set the help text description for the FolderBrowserDialog.
  this.folderBrowserDialog1.Description =
   "Select the directory that you want to use as the default.";

  // Do not allow the user to create new files via the FolderBrowserDialog.
  this.folderBrowserDialog1.ShowNewFolderButton = false;

  // Default to the My Documents folder.
  this.folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal;

  this.richTextBox1.AcceptsTab = true;
  this.richTextBox1.Location = new System.Drawing.Point(8, 8);
  this.richTextBox1.Size = new System.Drawing.Size(280, 344);
  this.richTextBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left |
   AnchorStyles.Bottom | AnchorStyles.Right;

  this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
  this.ClientSize = new System.Drawing.Size(296, 360);
  this.Controls.Add(this.richTextBox1);
  this.Menu = this.mainMenu1;
  this.Text = "RTF Document Browser";
 }

 // Bring up a dialog to open a file.
 private void openMenuItem_Click(object sender, System.EventArgs e)
 {
  // If a file is not opened, then set the initial directory to the
  // FolderBrowserDialog.SelectedPath value.
  if (!fileOpened)
  {
   openFileDialog1.InitialDirectory = folderBrowserDialog1.SelectedPath;
   openFileDialog1.FileName = null;
  }

  // Display the openFile dialog.
  DialogResult result = openFileDialog1.ShowDialog();

  // OK button was pressed.
  if(result == DialogResult.OK)
  {
   openFileName = openFileDialog1.FileName;
   try
   {
    // Output the requested file in richTextBox1.
    Stream s = openFileDialog1.OpenFile();
    richTextBox1.LoadFile(s, RichTextBoxStreamType.RichText);
    s.Close();   
           
    fileOpened = true;

   }
   catch(Exception exp)
   {
    MessageBox.Show("An error occurred while attempting to load the file. The error is:"
     + System.Environment.NewLine + exp.ToString() + System.Environment.NewLine);
    fileOpened = false;
   }
   Invalidate();

   closeMenuItem.Enabled = fileOpened;
  }

   // Cancel button was pressed.
  else if(result == DialogResult.Cancel)
  {
   return;
  }
 }


 // Close the current file.
 private void closeMenuItem_Click(object sender, System.EventArgs e)
 {
  richTextBox1.Text = "";
  fileOpened = false;

  closeMenuItem.Enabled = false;
 }


 // Bring up a dialog to chose a folder path in which to open or save a file.
 private void folderMenuItem_Click(object sender, System.EventArgs e)
 {
  // Show the FolderBrowserDialog.
  DialogResult result = folderBrowserDialog1.ShowDialog();
  if( result == DialogResult.OK )
  {
   folderName = folderBrowserDialog1.SelectedPath;
   if(!fileOpened)
   {
    // No file is opened, bring up openFileDialog in selected path.
    openFileDialog1.InitialDirectory = folderName;
    openFileDialog1.FileName = null;
    openMenuItem.PerformClick();
   }
  }
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值