- •Visual c# негізінде Windows-қосымшаларын жасау 3
- •Формалар
- •Кластар терезесі. Элементтер тақтасы – Панель элементов. Элементтер тақтасы – Панель элементов. Стандартты басқару элементтері
- •1 Кестеде Қасиеттер терезесі интерфейсінің сипаттамалары келтірілген.
- •2 Кесте. Форманың кейбір қасиеттері
- •Дизайн және код режимдері
- •Басқару элементтерімен жұмыс істеу. Контейнерлер тобы. Графикалық элементтер тобы. Меню тобы. Бас меню жасау.
- •1Кесте.NotepadC#программасындағы басменюпункттері
- •MdiLayout бойынша реттеу
- •Мәтін бөліктерін (фрагменттерін) қиып алу, көшіру және кірістіру
- •Жанама (контекстік) меню
- •5 Мысал.
- •Қорытынды
- •Қолданылған әдебеиет тізімі
Жанама (контекстік) меню
Негізгі менюдің бірсыпыра әрекеттерін қайталайтын жанама меню — программамен жұмыс істейтін ең жылдам жол болмағанымен, ол тұтынушыларға үйреншікті ыңғайлысы болып табылады. 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();
}
