PDA

View Full Version : رد شدن از messagebox با کدنویسی



hnosen
چهارشنبه 29 دی 1389, 10:27 صبح
با سلام
من در برنامه ام یک messagebox دارم می خوام که وقتی این messagebox نمایش داده می شود اگر کاربر بعد از چند ثانیه این messagebox را ok نکرد خود برنامه از این messagebox رد شود و دستورات بعدی را اجرا کند.
در ضمن این messagebox بصورت yes/no است.
لطفا راهنمایی کنید؟

bestuser
چهارشنبه 29 دی 1389, 11:42 صبح
شما باید با استفاده از تایمر این کار کنید تایمر را استارت کنید سپس با توجه با زمان دلخواه شرط بگذارید که اگر کلیدی را فشار نداد قطع شود و به مرحله بعد وارد شوید

ASKaffash
چهارشنبه 29 دی 1389, 13:00 عصر
با سلام
من در برنامه ام یک messagebox دارم می خوام که وقتی این messagebox نمایش داده می شود اگر کاربر بعد از چند ثانیه این messagebox را ok نکرد خود برنامه از این messagebox رد شود و دستورات بعدی را اجرا کند.
در ضمن این messagebox بصورت yes/no است.
لطفا راهنمایی کنید؟

سلام
شما یک فرم شبیه MessageBox طراحی کنید که یک تایمر داشته باشد چون وقتی MsgBox اجرا شد بدون ترد شما کنترلی به آن ندارید (تازه با ترد شاید پیاده سازی سخت تر هم بشود)

AmirHarirbafan
چهارشنبه 29 دی 1389, 14:45 عصر
MessageBox این قابلیت رو نداره که به صورت خودکار بسته بشه، اما روش هایی وجود داره که فکر کنم بهترینش همین باشه که دوستمون در پست قبلی گفته. اگه میخوای حتما از MessageBoxهای خود دات نت استفاده کنی، میتونی به اون پنجره پیغام بفرستی و یک کلید رو بهش پاس بدی که میشه همون کلید Enter باشه




private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
MessageBox.Show("");
}

private void timer1_Tick(object sender, EventArgs e)
{
// Send Enter Key to current Form that messagebox is ready to cathc your key
SendKeys.Send("{ENTER}");
timer1.Enabled = false;
}

در صورتی که بخوای Button دیگه ای غیر از Button فعال رو انتخاب کنی میتونی قبلش کلید Tab رو به فرمت ارسال کنی
برای دیدن لیست کلیدها و نحوه ی ارسال اونا به این لینک یه سری بزن

http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx