سؤال
وأنا أحاول أن جعل نموذج غير مرئية لكمية العاشر من الوقت في ج #. أي أفكار؟
وشكرا، جون
المحلول
وقد نشرت
و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
ولا تنسى أن تعطيل مؤقت لمدة معالج، لئلا يقطع نفسك. محرجة نوعا ما.
لا تنتمي إلى StackOverflow