73
11сурет. Файлашу үшін қолданылатын сұхбат терезесі
OpenFileDialog сұхбат терезесі
ToolBox аспаптар тақтасы терезесінен OpenFileDialog басқару элементін алып
frmmain формасына орналастырыңыз. Ол MainMenuэлементі тәрізді, кӛрінбейтін
компоненттер тақтасында орналасады (12 сурет):
12сурет. Формаға OpenFileDialog элементін қосу
74
FileName қасиеті сұхбат терезесі шыққанда, "Файл аты:" ӛрісіне енгізілетін файл
атын береді. Бұл ӛрістегі атау 12 суретте — "Текстовые файлы", ӛйткені 11 суретте осы
мәтін енгізілген болатын. Filter қасиеті ашу үшін таңдалып алынатын файлдарға шектеу
қояды — терезеде тек кӛрсетілген кеңейтілуі бар файлдар ғана бейнеленеді. Тік
(вертикаль) сызық арқылы бӛлінген келесі ӛрісте шығатын "Тип файлов" тізімінде
кӛрсетілетін басқа кеңейтілуді енгізуге болады. Мұнда мәтіндік файлдар немесе барлық
файлдар шығатыны Text Files (*.txt)|*.txt|All Files(*.*)|*.* кӛрсетілген. InitialDirectory
қасиеті шолу басталатын бума (директория) атын кӛрсетуге арналған. Егер бұл қасиет
берілмесе, бастапқы бума ретінде жұмыс үстелі қарастырылады.
Файл ағымдарымен жұмыс істеу үшін, blank формасы кодына System.IO атаулар
кеңістігін қосамыз:
using System.IO;
Open тәсілінде RichTextBox ортасына файл мәтінін оқимыз:
// Open тәсілін жасаймыз, оның параметрі ретінде файл адресі тіркесін
береміз
public void Open(string OpenFileName)
{
//Егер файлтаңдалып алынбаса, кері қайтамыз
// (ішкі ескертпе шығады)
if (OpenFileName == "")
{
return;
}
else
{
//StreamReader жаңа объектісін жасаймыз және OpenFileName айнымалысын
береміз
StreamReader sr = new StreamReader(OpenFileName);
//файлды толық оқып, оны richTextBox1-ке жазамыз
richTextBox1.Text = sr.ReadToEnd();
// ағымды жабамыз
sr.Close();
//DocName айнымалысына адрес тіркесін меншіктейміз
DocName = OpenFileName;
}
4 мысал.
Енді frmmain формасының Open менюпунктін ӛңдеуіш кодын енгіземіз:
private void mnuOpen_Click(object sender, System.EventArgs e)
{
//Можно программно задавать доступные для обзора расширения файлов
//openFileDialog1.Filter="TextFiles(*.txt)|*.txt|All
Files(*.*)|*.*";
//Если выбран диалог открытия файла, выполняем условие
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//Создаем новый документ
blank frm = new blank();
//Вызываемметод Open формы blank
frm.Open(openFileDialog1.FileName);
//Указываем, что родительской формой является форма frmmain
75
frm.MdiParent = this;
//Присваиваем переменной DocName имя открываемого файла
frm.DocName = openFileDialog1.FileName;
//Свойству Text формы присваиваем переменную DocName
frm.Text = frm.DocName;
//Вызываемформуfrm
frm.Show();
}
5 мысал.
Программаны іске қосып, блокнотформатында сақталған мәтіндік файлды ашамыз
(13 сурет).
13сурет. Форма тақырыбы ашылған файл аты мен оның адресінен тұрады
Кириллица әріптерін дұрыс оқу үшін блокноттағы мәтін Unicode кодында сақталуы
тиіс. Ӛкінішке орай, OpenFileDialog Visual Studio .NET құрамындағы сұхбат терезелер,
мысалы, блокноттағы сияқты файлды ашу кезінде оның кодталу кестесін таңдау
мүмкіндігін бермейді.
SaveFileDialog
Файлдарды сақтау үшін frmmainформасына saveFileDialog1 басқару элементін қосу
керек. Бұл сұхбат терезесінің қасиеттері OpenFileDialog терезесімен бірдей деуге болады
(12 сурет). blankформасының кодына кӛшейік:
//Создаем метод Save, в качестве параметра
// объявляемстрокуадресафайла.
public void Save(string SaveFileName)
{
//Если файл не выбран, возвращаемся назад (появится
// встроенное предупреждение)
if (SaveFileName == "")
{
return;
}
else
{
//Создаем новый объект StreamWriter и передаем ему
переменную //OpenFileName
StreamWriter sw = new StreamWriter(SaveFileName);
//Содержимое richTextBox1 записываемвфайл
sw.WriteLine(richTextBox1.Text);
//Закрываем поток
sw.Close();
//Устанавливаем в качестве имени документа название
сохраненного файла
DocName = SaveFileName;
76
}
}
6 мысал.
frmmainформасыныңSave меню пунктінің ӛңдеуішін қосамыз:
private void mnuSave_Click(object sender, System.EventArgs e)
{
//Можно программно задавать доступные для обзора расширения файлов
//openFileDialog1.Filter="TextFiles*.txt)|*.txt|All Files(*.*)|*.*";
//Если выбран диалог открытия файла, выполняем условие
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//Переключаем фокус на данную форму.
blank frm = (blank)this.ActiveMdiChild;
//Вызываем метод Save формы blank
frm.Save(saveFileDialog1.FileName);
//Указываем, что родительской формой является форма frmmain
frm.MdiParent = this;
//Присваиваем переменной FileName имя сохраняемого файла
frm.DocName = saveFileDialog1.FileName;
//Свойству Text формы присваиваем переменную DocName
frm.Text = frm.DocName;
}
Достарыңызбен бөлісу: |