2016-02-20 3 views
1

Я пытаюсь открыть диалоговое окно файла и открыть файлы внутри папки в разные богатые текстовые поля? но я не уверен, что еще мне нужно добавить? не могли бы вы помочь новой крови.Как открыть содержимое папки в разные текстовые поля?

  if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      richTextBox1.Text = File.ReadAllText(openFileDialog1.FileName); 
      tabPage1.Text = openFileDialog1.SafeFileName; 
     } 
+1

что проблема с Curre nt код? –

+0

вместо открытия только одного файла. im, пытаясь заставить его открыть папку с несколькими файлами внутри и загрузить их в богатые текстовые поля, но я застрял. – Waypast

+1

Вы хотите динамически создавать richtextboxes вместе с новой вкладкой и загружать их с содержимым каждого выбранного файла? – Steve

ответ

2

Если вы хотите, чтобы позволить пользователю выбрать папку, а затем открыть первые 5 файлов, присутствующих в этой папке каждый из них в другой RichTextBox, то вам не нужен OpenFileDialog, но FolderBrowserDialog

// First prepare two list with the richtextboxes and the tabpages 
List<RichTextBox> myBoxes = new List<RichTextBox>() 
{ richTextBox1, richTextBox2, richTextBox3, richTextBox4, richTextBox5 }; 
List<TabPage> myPages = new List<TabPage>() 
{ tabPage1, tabPage2, tabPage3, tabPage4, tabPage5}; 


// Now open the folderbrowser dialog 
// (see link above for some of its properties) 
FolderBrowserDialog fbd = new FolderBrowserDialog(); 
if(fbd.ShowDialog() == DialogResult.OK) 
{ 
    int i = 0; 
    foreach(string file in Directory.GetFiles(fbd.SelectedPath)) 
    {   
     myBoxes[i].Text = File.ReadAllText(file); 
     myPages[i].Text = Path.GetFileName(file); 
     i++; 

     // Added a warning if the folder contains more than 5 files 
     if(i >= 5) 
     { 
      MessageBox.Show("Too many files in folder, only 5 loaded"); 
      break; 
     } 
    } 
} 
+0

просто добавил это в мой проект, но im теперь получил ошибку под FolderBrowerDialog fbd = new FolderBroserDialog(); – Waypast

+0

steve Я просто попробовал код, который вы предоставили, и im все еще получал ошибку under.folderBrowserDialog1 fbd = new FolderBrowserDialog(); – Waypast

+1

Я вижу, моя опечатка исправила орфографию для FolderBrowserDialog (не FolderBrowserDialog1), перезагрузите страницу – Steve

1

OpenFileDialog следует открыть, но по одному файлу по умолчанию. Попытайтесь изменить его MultiSelect собственности на true. Что-то, как это будет делать:

openFileDialog1.Multiselect = true; 
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { 
    for (int i = 0; i < openFileDialog1.FileNames.Length; ++i) { 
     RichTextBox rtb = Controls.Cast<Control>().Single(x => x.Name == "richTextBox" + (i + 1).ToString()) as RichTextBox; 
     rtb.Text = File.ReadAllText(openFileDialog1.FileNames[i]); 
    } 
    tabPage1.Text = openFileDialog1.SafeFileName; //again, I wonder what you want to do with this. If needed be, consider to update this dynamically too 
}   

Старый ответ:

openFileDialog1.Multiselect = true; //important: set this to true 
richTextBox1.Text = ""; //and you may want to reset this every time 
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { 
    foreach(var filename in openFileDialog1.FileNames) //get file names here 
     richTextBox1.Text += File.ReadAllText(filename); //you may want to add enter per file 
    tabPage1.Text = openFileDialog1.SafeFileName; //but I wonder what you want to do with this....? 
}   
Смежные вопросы