Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурсС#.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
69.67 Кб
Скачать

Жанама (контекстік) меню

Негізгі менюдің бірсыпыра әрекеттерін қайталайтын жанама меню — программамен жұмыс істейтін ең жылдам жол болмағанымен, ол тұтынушыларға үйреншікті ыңғайлысы болып табылады. TextBox басқару элементінің Edit меню пунктінің ішкі командаларын қайталайтын қарапайым жанама менюі бар. Оған көз жеткізу үшін осы элементті формаға орналастырып, программаны орындау керек (8 сурет):

Біздің Notepad C# программасында мәтіндік элемент ретінде RichTextBox мүмкіндігін пайдаландық. ToolBox терезесінен contextMenu басқару элементін blank формасына орналастырып қосайық. Жанама меню пункттерін бас меню пункттерін құрған кездегідей етіп жасап шығамыз (9 сурет):

Меню пункттерінің Text және Shortcut қасиеттерін бұрынғыша қалдырамыз. Егер енді біз ShowShortcut қасиеті үшін false мәнін орнатсақ, онда қоспернелер жұмыс істейді, бірақ менюдің өзінде ол 8 суреттегідей түрде көрсетілмейді. Name қасиеті былай қалыптасады: Cut пункті үшін — cmnuCut, Сopy үшін — cmnuCopy, т.с.с.

Пункттер өңдеуішінде соларға сәйкес тәсілдер шақырамыз: Листинг 3.

private void cmnuCut_Click(object sender, System.EventArgs e)

{

Cut();

}

private void cmnuCopy_Click(object sender, System.EventArgs e)

{

Copy();

}

private void cmnuPaste_Click(object sender, System.EventArgs e)

{

Paste();

}

private void cmnuDelete_Click(object sender, System.EventArgs e)

{

Delete();

}

private void cmnuSelectAll_Click(object sender, System.EventArgs e)

{

SelectAll();

}

Енді біз жанама менюдің шығатын орнын көрсетуіміз керек. RichTextBox элементінің frmmain және blank формаларындағыдай ContextMenu қасиеті бар, соны ContextMenu1 деп көрсетеміз, өйткені менюді мәтіндік өрісте көрсетуіміз қажет. Программаны іске қосамыз — енді мәтіннің кез келген нүктесінде меню шақырыла береді

Сұхбаттасу (диалог) терезелері. Сохранение файла при закрытии формы SaveFileDialog. OpenFileDialog и SaveFileDialog для SDI-приложений.

Сохранение файла при закрытии формы

Среда Visual Studio .NET ортасының ашу үшін файл таңдауды немесе ағымдағы файлды сақтау үшін дискіден орын таңдауды ұсынатын дайын сұхбат терезелері бар.

OpenFileDialog сұхбат терезесі

ToolBox аспаптар тақтасы терезесінен OpenFileDialog басқару элементін алып frmmain формасына орналастырыңыз. Ол MainMenuэлементі тәрізді, көрінбейтін компоненттер тақтасында орналасады (12 сурет):

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

frm.MdiParent = this;

//Присваиваем переменной DocName имя открываемого файла frm.DocName = openFileDialog1.FileName;

//Свойству Text формы присваиваем переменную DocName frm.Text = frm.DocName;

//Вызываемформуfrm frm.Show();

}