69
менюінің MdiList қасиеті мәнін true етіп орнатамыз. Бірнеше жаңа құжат ашсақ, терезелер
каскадты (сатылы) түрде орналасады, оларды кӛлденең (горизонталь) – TileHorizontal мәні
немесе тіке де (TileVertical) орналастыру мүмкіндіктері бар. Олар ұнамаса, қайтадан
каскадты – Cascade бейнелеуге ауысуға болады (7 сурет):
7 сурет. ArrangeIcons меню пунктін қолданып, терезелерді TileHorizontal бойынша реттеп
орналастыру.
Мәтін бӛліктерін (фрагменттерін) қиып алу, кӛшіру және кірістіру
Программалармен жұмыс істеу кезінде ашылған жаңа құжат басты форманың
кӛлемін түгел алып тұрғаны дұрыс болады. Ол үшін blank формасының WindowState
қасиетін Maximized деп тағайындаймыз. Енді қиып алу, кӛшіру және кірістіру сияқты
стандартты операциялардың ӛңдеуіштерін жасауға кірісеміз.
RichTextBox басқару элементінің белгіленген мәтін бӛлігін сақтайтын SelectedText
қасиеті бар. Осы қасиетті негізге ала отырып, мәтінмен жұмыс істеу әрекеттері жүзеге
асырылады. В коде формы blank формасы кодында объявляем переменную BufferText
айнымалысын жариялаймыз, ол мәтіннің буферге алынған бӛлігін есте сақайды:
private string BufferText = "";
Ары қарай әрбір әрекетке сәйкес (сол әрекеттің атын екі рет шерте отырып) тәсілдер
жасаймыз:
Листинг 1.
// Мәтінді қиып алу
public void Cut()
{
70
this.BufferText = richTextBox1.SelectedText;
richTextBox1.SelectedText = "";
}
// Мәтінді көшіріп алу
public void Copy()
{
this.BufferText = richTextBox1.SelectedText;
}
// Мәтінді кірістіру
public void Paste()
{
richTextBox1.SelectedText = this.BufferText;
}
// Мәтінді түгел белгілеу үшін —RichTextBox басқару элементінің
// SelectAll қасиетін пайдаланамыз
public void SelectAll()
{
richTextBox1.SelectAll();
}
// Удаление
public void Delete()
{
richTextBox1.SelectedText = "";
this.BufferText = "";
}
Енді формадизайны режиміне кӛшіп, меню пункттерінің ӛңдеуіштерін жасаймыз:
Листинг 2.
private void mnuCut_Click(object sender, System.EventArgs e)
{
blank frm = (blank)this.ActiveMdiChild;
frm.Cut();
}
private void mnuCopy_Click(object sender, System.EventArgs e)
{
blank frm = (blank)this.ActiveMdiChild;
frm.Copy();
}
private void mnuPaste_Click(object sender, System.EventArgs e)
{
blank frm = (blank)this.ActiveMdiChild;
frm.Paste();
}
private void mnuDelete_Click(object sender, System.EventArgs e)
{
blank frm = (blank)this.ActiveMdiChild;
frm.Delete();
}
private void mnuSelectAll_Click(object sender, System.EventArgs e)
{
blank frm = (blank)this.ActiveMdiChild;
frm.SelectAll();
}
71
ActiveMdiChild қасиеті фокусты ағымдағы формаға ауыстырады, егер олардың
бірнешеуі ашылған болса, олардың туынды формада анықталған біреуін шақырады.
Программаны іске қосамыз. Енді мәтінмен барлық стандартты операцияларды орындай
аламыз.
Жанама (контекстік) меню
Негізгі менюдің бірсыпыра әрекеттерін қайталайтын жанама меню — программамен
жұмыс істейтін ең жылдам жол болмағанымен, ол тұтынушыларға үйреншікті ыңғайлысы
болып табылады. TextBox басқару элементінің Edit меню пунктінің ішкі командаларын
қайталайтын қарапайым жанама менюі бар. Оған кӛз жеткізу үшін осы элементті формаға
орналастырып, программаны орындау керек (8 сурет):
8сурет. TextBox элементінің жанама (контекстік) менюі
Біздің Notepad C# программасында мәтіндік элемент ретінде RichTextBox
мүмкіндігін пайдаландық. ToolBox терезесінен contextMenu басқару элементін blank
формасына орналастырып қосайық. Жанама меню пункттерін бас меню пункттерін құрған
кездегідей етіп жасап шығамыз (9 сурет):
9сурет. Жанама меню пункттері
Меню пункттерінің Text және Shortcut қасиеттерін бұрынғыша қалдырамыз. Егер
енді біз ShowShortcut қасиеті үшін false мәнін орнатсақ, онда қоспернелер жұмыс істейді,
бірақ менюдің ӛзінде ол 8 суреттегідей түрде кӛрсетілмейді. Name қасиеті былай
қалыптасады: Cut пункті үшін — cmnuCut, Сopy үшін — cmnuCopy, т.с.с.
72
Пункттер ӛңдеуішінде соларға сәйкес тәсілдер шақырамыз:
Листинг 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 деп кӛрсетеміз, ӛйткені менюді мәтіндік ӛрісте кӛрсетуіміз қажет.
Программаны іске қосамыз — енді мәтіннің кез келген нүктесінде меню шақырыла береді
(10 сурет).
10сурет. Контекстік (жанама) меню
Лекция 14-15. Сҧхбаттасу (диалог) терезелері. Сохранение файла при закрытии
формы№ SaveFileDialog. OpenFileDialog и SaveFileDialog для SDI-приложений.
Сохранение файла при закрытии формы
Среда Visual Studio .NET ортасының ашу үшін файл таңдауды немесе ағымдағы
файлды сақтау үшін дискіден орын таңдауды ұсынатын дайын сұхбат терезелері бар (11
сурет).
Достарыңызбен бөлісу: |