إمكانية تنفيذ الحد الأدنى إلى الدرج في C # في سمة

StackOverflow https://stackoverflow.com/questions/1716719

  •  19-09-2019
  •  | 
  •  

سؤال

السمات رائعة. ولكن هل من الممكن إنشاء فئة سمة C # التي، عند العلامات، تجعل طلبك تقلل إلى علبة النظام؟

من الناحية الفنية، ستحتاج السمة إلى وضعها على فئة النموذج الرئيسي. بمجرد النقر فوق المستخدم على زر X، يجب ألا ينتهي هذا النموذج، ولكن يجب أن تقلل إلى شريط المهام. يجب أيضا تحديد الأيقونة لتقليل التقليل في السمة.

هل هذا ممكن من الناحية الفنية؟ لا يمكنني العثور على أي معلومات عن التعليمات البرمجية الكتابية من سمة وضعت على تلك الفئة. (تحتاج إلى الكتابة فوق على الأقل طريقة واحدة لجعلها تقلل من الدرج.)

هل كانت مفيدة؟

المحلول

لماذا لا تفعل هذا فقط:

class TrayForm : Form
{
    NotifyIcon notifyIcon = new NotifyIcon();
    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        if (e.CloseReason != CloseReason.WindowsShutDown && e.CloseReason != CloseReason.ApplicationExitCall)
        {
            e.Cancel = true;
            this.Hide();
            this.notifyIcon.Visible = true;
        }

        base.OnFormClosing(e);
    }

    protected override void OnSizeChanged(EventArgs e)
    {
        if (WindowState == FormWindowState.Minimized)
        {
            this.Hide();
            this.notifyIcon.Visible = true;
        }

        base.OnSizeChanged(e);
    }
}

نصائح أخرى

يمكن تحقيق ذلك أسهل مع ميراث النماذج بدلا من السمات، ولا يزال هناك شيء ما سيشير إلى تفسير السمات في وقت التشغيل لتحقيق التأثير المرغوب فيه.

مع الميراث، يمكنك فقط إعداد الفصل في أن تتصرف بالطريقة التي تريدها ولديها في الأساس قدرة التقيد أو إلغاء الاشتراك (حتى استخدام سمة للقيام بذلك).

من الممكن بالتأكيد ولكن أود أن أقترح طرح طريقة إغلاق النموذج () وببساطة وضع بعض التعليمات البرمجية الموجودة هناك. انها بسيطة، منطقية، وسهلة للمطورين في المستقبل لمتابعة.

بعض نموذج التعليمات البرمجية حول كيفية تحقيق ذلك في:

http://www.dreamincode.net/code/snippet2660.htm.

و

http://www.dreamincode.net/forums/showtopic116283.htm.

هذا غير ممكن مع المعتاد Form صف دراسي. ولكن من الممكن إنشاء فصل خاص الذي يرث من Form كما يدعم هذه السمة. لكن ذلك من شأنه أن يجعل الأشياء غير ضرورية فقط، فمن الأفضل أن تضيف MinimizeToTray الممتلكات إلى تلك الفئة.

(مثل المثال philipw المقدمة ولكن مع إضافة خاصية للتحكم في السلوك)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top