منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
لتنفيذ Notification Box (صندوق الإشعارات) في تطبيق Windows Forms باستخدام C# - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم امثلة ومشاريع C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=179)
+--- الموضوع : لتنفيذ Notification Box (صندوق الإشعارات) في تطبيق Windows Forms باستخدام C# (/showthread.php?tid=48802)



لتنفيذ Notification Box (صندوق الإشعارات) في تطبيق Windows Forms باستخدام C# - غزة العزة - 20-05-24

السلام عليكم و رحمة الله و بركاته

يمكنك استخدام مكتبة مثل ToastNotifications. سأقدم لك مثالاً كاملاً لإنشاء Notification Box يظهر إشعارًا عند حدوث حدث معين (على سبيل المثال، عند الضغط على زر).

الخطوات:
تثبيت مكتبة ToastNotifications:

افتح مشروعك في Visual Studio.
افتح مدير الحزم NuGet من خلال القائمة: Tools > NuGet Package Manager > Package Manager Console.
أدخل الأمر التالي لتثبيت مكتبة ToastNotifications

PHP كود :
Install-Package ToastNotifications 


إضافة كود Notification Box:

أضف الكود التالي إلى مشروعك لإظهار Notification Box.
الكود النهائي:
Form1.cs

PHP كود :
using System;
using System.Windows.Forms;
using ToastNotifications;
using ToastNotifications.Lifetime;
using ToastNotifications.Messages;
using ToastNotifications.Position;

namespace 
NotificationBoxExample
{
 
   public partial class Form1 Form
    
{
 
       private Notifier _notifier;

 
       public Form1()
 
       {
 
           InitializeComponent();

 
           // إعداد Notifier
 
           _notifier = new Notifier(cfg =>
 
           {
 
               cfg.PositionProvider = new WindowPositionProvider(
 
                   parentWindowthis,
 
                   cornerCorner.TopRight,
 
                   offsetX10,
 
                   offsetY10);

 
               cfg.LifetimeSupervisor = new TimeAndCountBasedLifetimeSupervisor(
 
                   notificationLifetimeTimeSpan.FromSeconds(3),
 
                   maximumNotificationCountMaximumNotificationCount.FromCount(5));

 
               cfg.Dispatcher Application.Current.Dispatcher;
 
           });
 
       }

 
       private void btnShowNotification_Click(object senderEventArgs e)
 
       {
 
           _notifier.ShowInformation("This is a notification message!");
 
       }
 
   }


Form1.Designer.cs

PHP كود :
namespace NotificationBoxExample
{
 
   partial class Form1
    
{
 
       private System.ComponentModel.IContainer components null;
 
       private System.Windows.Forms.Button btnShowNotification;

 
       protected override void Dispose(bool disposing)
 
       {
 
           if (disposing && (components != null))
 
           {
 
               components.Dispose();
 
           }
 
           base.Dispose(disposing);
 
       }

 
       private void InitializeComponent()
 
       {
 
           this.btnShowNotification = new System.Windows.Forms.Button();
 
           this.SuspendLayout();
 
           // 
 
           // btnShowNotification
 
           // 
 
           this.btnShowNotification.Location = new System.Drawing.Point(9090);
 
           this.btnShowNotification.Name "btnShowNotification";
 
           this.btnShowNotification.Size = new System.Drawing.Size(12023);
 
           this.btnShowNotification.TabIndex 0;
 
           this.btnShowNotification.Text "Show Notification";
 
           this.btnShowNotification.UseVisualStyleBackColor true;
 
           this.btnShowNotification.Click += new System.EventHandler(this.btnShowNotification_Click);
 
           // 
 
           // Form1
 
           // 
 
           this.ClientSize = new System.Drawing.Size(300200);
 
           this.Controls.Add(this.btnShowNotification);
 
           this.Name "Form1";
 
           this.Text "Notification Box Example";
 
           this.ResumeLayout(false);
 
       }
 
   }



شرح الكود:
إعداد Notifier:

يتم إنشاء مثيل Notifier في الـ Form مع تحديد موضع الإشعار (الزاوية العلوية اليمنى) باستخدام WindowPositionProvider.
يتم تحديد مدة حياة الإشعار (notificationLifetime) وعدد الإشعارات القصوى (maximumNotificationCount) باستخدام TimeAndCountBasedLifetimeSupervisor.
زر إظهار الإشعار:

عند الضغط على زر "Show Notification"، يتم استدعاء ShowInformation لإظهار إشعار يحتوي على الرسالة المحددة.
تصميم النموذج (Form1.Designer.cs):

يحتوي على زر واحد يقوم بإظهار الإشعار عند الضغط عليه.
ملاحظات:
تأكد من أنك قمت بتثبيت مكتبة ToastNotifications بشكل صحيح باستخدام NuGet.
الكود يستخدم Application.Current.Dispatcher لتعيين الـ Dispatcher. إذا واجهت أي مشاكل، يمكنك استخدام cfg.Dispatcher = Dispatcher.CurrentDispatcher; بدلاً من ذلك.
بهذا الشكل، تكون قد أنشأت تطبيق Windows Forms بسيط يظهر Notification Box عند الضغط على زر باستخدام مكتبة ToastNotifications.