سؤال

وأنا أحاول أن جعل نموذج غير مرئية لكمية العاشر من الوقت في ج #. أي أفكار؟

وشكرا، جون

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

المحلول

وقد نشرت

وBFree رمز مشابهة في الوقت الذي أخذني إلى اختبار هذا، ولكن هنا محاولة مني:

this.Hide();
var t = new System.Windows.Forms.Timer
{
    Interval = 3000 // however long you want to hide for
};
t.Tick += (x, y) => { t.Enabled = false; this.Show(); };
t.Enabled = true;

نصائح أخرى

وحل سريع وقذرة الاستفادة من الإغلاق. لا الموقت المطلوبة!

private void Invisibilize(TimeSpan Duration)
    {
        (new System.Threading.Thread(() => { 
            this.Invoke(new MethodInvoker(this.Hide));
            System.Threading.Thread.Sleep(Duration); 
            this.Invoke(new MethodInvoker(this.Show)); 
            })).Start();
    }

مثال:

و// يجعل شكل غير مرئي لمدة 5 ثوان

وInvisibilize (زمنية جديدة (0، 0، 5))؛

وعلى مستوى الفئة تفعل شيئا مثل هذا:

Timer timer = new Timer();
private int counter = 0;

في منشئ قيام بذلك:

        public Form1()
        {
            InitializeComponent();
            timer.Interval = 1000;
            timer.Tick += new EventHandler(timer_Tick);
        }

وبعد ذلك لديك معالج الأحداث:

void timer_Tick(object sender, EventArgs e)
        {
            counter++;
            if (counter == 5) //or whatever amount of time you want it to be invisible
            {
                this.Visible = true;
                timer.Stop();
                counter = 0;
            }
        }

وثم أينما تريد جعلها غير مرئية (أنا هنا إثبات على زر نقرة):

 private void button2_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            timer.Start();
        }

ونضع في اعتبارنا أن هناك عدة أنواع من أجهزة ضبط الوقت المتاحة: http://msdn.microsoft.com/en-us/magazine/cc164015. ASPX

ولا تنسى أن تعطيل مؤقت لمدة معالج، لئلا يقطع نفسك. محرجة نوعا ما.

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