Windows Forms NotifyIcon komponenti yordamida vazifalar paneliga ilova piktogrammalarini qo'shish
Windows Forms NotifyIcon komponenti vazifalar panelining holat bildirishnomasi sohasida bitta belgini ko‘rsatadi. Holat sohasida bir nechta piktogrammani ko‘rsatish uchun formangizda bir nechta NotifyIcon komponentlari bo‘lishi kerak. Boshqaruv uchun ko‘rsatiladigan belgini o‘rnatish uchun Icon xususiyatidan foydalaning. Bundan tashqari, foydalanuvchi ikonachani ikki marta bosganida nimadir sodir boʻlishi uchun DoubleClick hodisa ishlov beruvchisiga kod yozishingiz mumkin. Misol uchun, foydalanuvchi ikonka bilan ifodalangan fon jarayonini sozlash uchun dialog oynasini ko'rsatishingiz mumkin.
NotifyIcon komponenti faqat bildirishnoma maqsadida, foydalanuvchilarni harakat yoki hodisa sodir bo‘lganligi yoki statusda qandaydir o‘zgarishlar yuz berganligi haqida ogohlantirish uchun ishlatiladi. Ilovalar bilan standart o'zaro ishlash uchun menyular, asboblar paneli va boshqa foydalanuvchi interfeysi elementlaridan foydalanishingiz kerak.
Belgini o'rnatish uchun:
1.Icon xususiyatiga qiymat belgilang. Qiymat System.Drawing.Icon turida boʻlishi kerak va uni .ico faylidan yuklash mumkin. Siz piktogramma faylini kodda yoki “Xususiyatlar” oynasidagi “Icon” xususiyati yonidagi “Elips” tugmasini () bosish va keyin paydo bo‘lgan “Ochish” muloqot oynasida faylni tanlash orqali belgilashingiz mumkin.
2. Visible xususiyatini true ga o‘rnating.
3. Matn xususiyatini tegishli ToolTip qatoriga o‘rnating.
Quyidagi kod misolida belgining joylashuvi uchun oʻrnatilgan yoʻl “Mening hujjatlarim” jildidir. Ushbu joylashuv Windows operatsion tizimida ishlaydigan ko'pchilik kompyuterlar ushbu jildni o'z ichiga oladi deb taxmin qilishingiz mumkinligi sababli ishlatiladi. Bu joylashuvni tanlash tizimga minimal kirish darajasiga ega foydalanuvchilarga ilovani xavfsiz ishga tushirish imkonini ham beradi. Quyidagi misol uchun NotifyIcon boshqaruvi allaqachon qo‘shilgan shakl talab qilinadi. Bundan tashqari, Icon.ico nomli belgi fayli ham talab qilinadi.
C #
// You should replace the bold icon in the sample below
// with an icon of your own choosing.
// Note the escape character used (@) when specifying the path.
notifyIcon1.Icon =
new System.Drawing.Icon (System.Environment.GetFolderPath
(System.Environment.SpecialFolder.Personal)
+ @"\Icon.ico");
notifyIcon1.Visible = true;
notifyIcon1.Text = "Antivirus program";
Ba'zan, ish stoli dasturini qilganingizda, foydalanuvchiga ba'zi ma'lumotlarni ko'rsatish uchun tizim tepsisidagi belgini ko'rsatishni xohlaysiz. Yaxshiyamki, Microsoft bizga NotifyIcon komponentini yetkazib berish orqali biz ishlab chiquvchilar uchun buni juda oson qildi. Buning misolini forma va presto-ga qo'yishingiz mumkin! Biz darhol tizim tepsisiga osongina kirishingiz mumkin - kodlash kerak emas!
Agar foydalanuvchi interfeysi laganda belgisidan iborat boʻlgan dasturni yaratmoqchi boʻlsangiz nima boʻladi? Biz uni qo'yish uchun formaga ega bo'lishni xohlamaysiz!
"Eski kunlarda" (VS.NET dan oldin) Visual Basic 3 dan 6 gacha koʻp ishlaganimda, baribir shaklni yaratgan boʻlardim, unga komponentni qoʻygan boʻlardim va shaklni yashirishga harakat qilgan boʻlardim. Odatdagidek, buni amalga oshirishingiz mumkin boʻlgan usul, uni “StartPosition” shakllarini “Manual” ga oʻrnatish orqali uni vizual ish stoli maydonidan tashqariga koʻchirish, soʻngra “Yuklash” tartibidagi “Yuqori” va “Chap” xususiyatlarini kulgili darajada katta manfiy raqamga oʻrnatish edi.
Agar biz WinForms loyihangizdagi Program.cs fayliga qarasangiz, u quyidagicha ko‘rinishini ko‘rasiz:
C #
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TrayIconTest
{
static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Ilova ishga tushirilganda, u sizning formangizning namunasini yaratadi va uni ishga tushiradi. Va bu aniq holatda siz xohlamagan narsadir.
Siz barcha kodlaringizni Dastur sinfining Asosiy usulida qoʻyishga urinib koʻrishingiz va Application.Run usuliga qoʻngʻiroqni oʻtkazib yuborishingiz mumkin, lekin bu yaxshi fikr emas va u ham ishlamaydi.
Ammo bu erda narsa: ariza.run usuli forma parametriga ega bo'lishi shart emas. Buning oʻrniga ApplicationContext obyektini qabul qiladi. Va bu erda biz nima qilishimiz kerak. Biz sinf yaratamiz va uni xohlagancha nomlaymiz (men uni MyApplicationContext deb atayman) va uni .NET ApplicationContext obyektidan olinganligiga ishonch hosil qilamiz.
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TrayIconTest
{
static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyApplicationContext());
}
}
}
Shunday qilib, endi biz notekiskatekst Assistektizda bizning notekisik kodini Myportcelcontext sinfimizda joylashtiramiz va shaklni yashirish haqida tashvishlanmaslik kerak.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TrayIconTest
{
class MyApplicationContext : ApplicationContext
{
//Component declarations
private NotifyIcon TrayIcon;
private ContextMenuStrip TrayIconContextMenu;
private ToolStripMenuItem CloseMenuItem;
public MyApplicationContext()
{
Application.ApplicationExit += new EventHandler(this.OnApplicationExit);
InitializeComponent();
TrayIcon.Visible = true;
}
private void InitializeComponent()
{
TrayIcon = new NotifyIcon();
TrayIcon.BalloonTipIcon = ToolTipIcon.Info;
TrayIcon.BalloonTipText =
"I noticed that you double-clicked me! What can I do for you?";
TrayIcon.BalloonTipTitle = "You called Master?";
TrayIcon.Text = "My fabulous tray icon demo application";
//The icon is added to the project resources.
//Here, I assume that the name of the file is 'TrayIcon.ico'
TrayIcon.Icon = Properties.Resources.TrayIcon;
//Optional - handle doubleclicks on the icon:
TrayIcon.DoubleClick += TrayIcon_DoubleClick;
//Optional - Add a context menu to the TrayIcon:
TrayIconContextMenu = new ContextMenuStrip();
CloseMenuItem = new ToolStripMenuItem();
TrayIconContextMenu.SuspendLayout();
//
// TrayIconContextMenu
//
this.TrayIconContextMenu.Items.AddRange(new ToolStripItem[] {
this.CloseMenuItem});
this.TrayIconContextMenu.Name = "TrayIconContextMenu";
this.TrayIconContextMenu.Size = new Size(153, 70);
//
// CloseMenuItem
//
this.CloseMenuItem.Name = "CloseMenuItem";
this.CloseMenuItem.Size = new Size(152, 22);
this.CloseMenuItem.Text = "Close the tray icon program";
this.CloseMenuItem.Click += new EventHandler(this.CloseMenuItem_Click);
TrayIconContextMenu.ResumeLayout(false);
TrayIcon.ContextMenuStrip = TrayIconContextMenu;
}
private void OnApplicationExit(object sender, EventArgs e)
{
//Cleanup so that the icon will be removed when the application is closed
TrayIcon.Visible = false;
}
private void TrayIcon_DoubleClick(object sender, EventArgs e)
{
//Here, you can do stuff if the tray icon is doubleclicked
TrayIcon.ShowBalloonTip(10000);
}
private void CloseMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Do you really want to close me?",
"Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
Application.Exit();
}
}
}
}
Odatda, NotifyIcon komponentini formaga tashlab qo‘yganingizda, bu haqda boshqa tashvishlanishingiz shart emas, dizayner barcha kodlashni boshqaradi va uni dizayner fayliga joylashtiradi. Bunday holda, sizda dizayner fayli yo'q, shuning uchun kodingizda boshqaruv elementlarini qo'lda yaratishingiz kerak.
Biz (agar xohlasangiz) qisman fayl sifatida oʻzingiz dizayner faylini yaratishimiz va unga InitializeComponent usulini koʻchirishimiz mumkin.
Biz albatta loyihalaringizda shakllar yaratishimiz va ularni koʻrsatishimiz mumkin, masalan, sozlash formasi yoki shunga oʻxshashlar kerak boʻlsa. Bu qism odatdagidek ishlaydi. Albatta, buning o'rniga dasturni Windows xizmati sifatida yaratish muqobil bo'ladi, lekin bu loyihaga ancha murakkablik kiritadi va o'rnatish loyihasini ham bajarishingizni talab qiladi.
Xulosa
Hozirgi kunda axborot texnologiyalarning yangilanishi, tarmoq texnologiyalarini rivojlanishi barcha sohalari singari o‘qitish sohasida ham katta o‘zgarishlarga olib kelmoqda. Ma’lumotlarni uzatish tizimi asosida o‘qitishni tashkil etishga turli yondashuvlar mavjud. Butun dunyo kompyuter tarmog‘i tizimiga asoslangan turli kompyuterli multimedia texnologiyalarini va ilg‘or o‘qitish texnologiyalarini umumlashtiruvchi yangicha o‘qitish virtual muassasalarni zamonaviy informatsion jamiyatda axborot va bilimlarning tez sur’atlarda o‘sishi masalasi yechimi sari olib boruvchi yo‘l sifatida qarash o‘rinli.Insoniyat tarixining ko’p asrlik tajribasi ezgu go‘yalardan va sog‘lom mafkura hamda zamonaviy bilimlardan maxrum har qanday jamiyat uzoqqa bora olmasligini ko‘rsatdi. Shuning uchun, mustaqillikka erishgan mamlakatimiz o‘z oldiga ozod va obod Vatan, demokratik jamiyat barpo qilish, erkin va farovon hayot qurish, rivojlangan mamlakatlar qatoridan o‘rin olish kabi muhim vazifalarni qo‘ydi. Bu vazifalarni hal qilish asosan biz-yosh avlod zimmasiga tushadi.Biz kelajak jamiyatning faol quruvchilari bo‘lishimiz uchun fan va texnikaning eng ilg‘or yutuqlari hamda kuchli bilimlar bilan qurollanishimiz, olingan bilimlarni amaliyotda qo‘llay bilishimiz ana shu yo‘ldagi eng muhim talablardan biri hisoblanadi. Bu narsa ayniqsa EHM bilan aloqador kundalik masalalarni yechishda yaqqol ko‘rinadi. Demak, biz yoshlardan zamonaviy EHM lar bilan ishlashni o‘rganish, xalq xo‘jaliginining turli masalalarini yechishga mo‘ljallangan dasturiy ta’minot bilan tanishish hamda dasturlash vositalari yordamida hali EHM da yechilmagan masalalar uchun yangi dasturlar yaratishni talab qilinadi.
Informatsion texnologiyalarning rivojlanishi va axborot oqimlarining tobora ortib borishi, ma’lumotlarning tez o’zgarishi kabi holatlar insoniyatni bu ma’lumotlarni o’z vaqtida qayta ishlash choralarini qidirib topishga undaydi. Ma’lumotlarni saqlash, uzatish va qayta ishlash uchun ma’lumotlar bazasi (MB) ni yaratish, so’ngra undan keng foydalanish bugungi kunda dolzarb bo’lib qolmoqda.Darhaqiqat, hozirgi kunda inson hayotida MBda kerakli axborotlarni saqlash va undan oqilona foydalanish juda muhim rol o’ynaydi. O‘zbekiston Respublikasi kadrlar tayorlash milliy dasturining ikkinchi bosqich talablari asosida ta’lim samaradorligini oshirishda zamonaviy axborot texnologilaridan unumli foydalanishning yo‘lga qo‘yish, shuningdek, kompyuterlashtirish va kompyuter tarmoqlari negizida ta’lim jarayonini rivojlantirish dasturini amalga oshirish va shu asosda ta’lim jarayonini yuqori sifatli o‘quv adabiyotlari va ilg‘or pedagogik texnologiyalar bilan ta’minlashni amalga oshirish, ta’lim jarayonini axborotlashtirish, uzluksiz ta’lim tizimi jahon axborot tarmog‘i bilan to‘liq qamrab olinishi ko‘rsatib o‘tilgan. O‘qitish tizimida elektron hisoblash mashina vositasidan foydalanish bu birinchi navbatda tizimga ilg‘or axborot texnologiyalarini olib kirish bo‘lsa, ikkinchi tomondan tizimdagi pedagogik faoliyat og‘ir yukini yengillashtirishdir. Shu qatorda yana bir jihat o‘qitish tizimini ochiq ko‘rinishga keltiradi. Ochiqlik o‘z navbatida o‘qitishni ma’no jihatidan yangilanib borishiga imkoniyat tug‘diradi.
Kompyuter texnologiyalarini o‘qitish jarayonlarini to‘liq qamrab olishi kerak degan fikr ustida munozaralar keskin bo‘lmoqda. Bu haqida turli mualiflar turlicha yondashuvdagi fikrlarni bildirishmoqda. Ulardan ba’zilarini tahlil qilib o‘tamiz. Shunday qilib ba’zi mualliflar«Kompyuterli ta’limning farqlanish tomoni – yangi yo‘nalish, yanada yuqori darajadagi ekspert bilimini qabul qilish va qayta ishlash: an’anaviy ta’lim jarayonida bilimni olish mexanik aks etirilsa, kompyuterli o‘qitish tizimi orqali bilimni ishlatishning mexanizmlari va qoidalarini o‘zlashtirish imkonini beradi.
Do'stlaringiz bilan baham: |