سلام
مخوام توی صفحه برنامم یه تایمر بگذارم که وقتی کاربر یه کلید رو کلیک می کنه شروع بکار کنه و وقتی دوباره همون کلید رو می زنه تایمر بایسته
سلام
مخوام توی صفحه برنامم یه تایمر بگذارم که وقتی کاربر یه کلید رو کلیک می کنه شروع بکار کنه و وقتی دوباره همون کلید رو می زنه تایمر بایسته
تایمر دو تا متد داره به نام start و stop و همینطور می تونی از enable هم استفاده کنی
همونطور که گفتند تایمر همه چیز داره البته اگه بدونی که اینجوریه ;-)
Timer mytimer = new Timer();
mytimer.Start();
ممنون ،اما من این دستورات رو بلدم
چه طور باید روی صفحه زمان رو نشون بدم؟
می تونی یک لیبل بزاری و یک عدد تعریف کنی در هر بار تیک زدن تایمر به اون یک واحد اضافه کنی
هر تایمر یه Tick داره که میگه هر چند میلی ثانیه تابع Tick تایمر اجرا بشه اول باید اونو تنظیم کنی
بعد تو رویداد Tick تایمر هر کاری که خواستی میذاری مثلا اگه تیک 1000 میلی ثانیه باشه باید تو رویداد تیک مثلا متغیر second رو که قبلا تعریف کردی +1 کنی و تو label نشون بدی.
حالا تو رویداد کلیک یه دکمه timre.Start رو فراخونی میکنی که باعث میشه تایمرت شروع به کار بکنه و بطور اتوماتیک تو هر زمان که بعنوان تیک داره خودشو فراخونی میکنه و second رو +1 میکنه و تو label نشون میده.
هر موقع هم خواستی تایمرت متوقف بشه از timer.Stop استفاده میکنی
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
سلام به همه دوستان
من تا بحال با تایمر کار نکردم ولی چیزی که هست اینه که چطور میشه توی همون رویداد Click دو کار رو با هم انجام داد؟ وقتی Buttonکلیک بشه رویداد کلیک اجرا میشه اما چطوری میشه در یک رویداد هم Start و هم Stop رو انجام داد.اگه راهنمایی کنید ممنون میشم.
موفق باشید
می تونی از شرط استفاده کنی . اگر شرط درست بود استارت کنه و اگر نه استاپ کنه .نوشته شده توسط sianooshonline
با سلام
ممنون از راهنماییتون اما این یک مورد بدیهیه که باید از شرط استفاده کرد.
اما دراین مورد میشه بگین چجوری ازش استفاده میکنین؟
اگه راهنمایی کنید ممنون میشم.
موفق باشید
bool start = true;حالا تو رویداد کلیک :
void myFn(bool startState)
{
if(start == true )
{
start = false;
//codes here
}
else if( start == false)
{
start = true;
//codes here
}
}
MyFn(start);
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
ساده نبود مگه؟
خدایی ساده بود دیگه
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
سلام جناب Bermooda
ممنون از اینکه راهنمایی کردید . چرا خیلی ساده بود .آخه خودم این رو میتونستم حدس بزنم
اما دنبال راه بهتری بودم.
اما به هرحال از راهنماییتون بسیار ممنونم.
موفق باشید
آیا با هر بار کلیک نباید statrt=!start بشه؟
اینجور که نوشتین همیشه حالت true داره
البته میشد کار رو ساده تر انجام داد ، اما برای درک بهتر فکر کنم اینجوری بهتر باشه.
همونطور که گفتم میشه با کد کمتری این کار رو کرد
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool startinfo;
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToLongTimeString();
}
private void button1_Click(object sender, EventArgs e)
{
if (label1.Text == DateTime.Now.ToLongTimeString())
{
startinfo = false;
Set(startinfo);
}
else
{
startinfo = true;
Set(startinfo);
}
}
private void Set(bool started)
{
if (started)
{
started = false;
timer1.Start();
}
else if (started == false)
{
timer1.Stop();
}
}
}
}
موفق باشید
روش درست و منطقی همینه .نوشته شده توسط Mega7000
value=!value
کد بالا هم کار میکنه اما بهترین روش به نظر من اینه :
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToLongTimeString();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
}
}
}
آخرین ویرایش به وسیله sianooshonline : سه شنبه 16 خرداد 1385 در 13:32 عصر دلیل: این پست به دلیل تکراری بودن بطور خودکار ادغام شده است.
البته من نمیدنوستم که منظور نوشتن کد بهینه هست !! شرمنده
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
با تشکر از دوستان
اما من می خوام که مثل یه تایمر کار کنه(کرنومتر)، نه اینکه ساعت سیستمو نشون بده
به جای ساعت سیستم می تونی یک متغیر از نوع int تعریف کنی و با هر بار تیک از اون کم یا زیاد کنی و در لیبل نشون بدی .نوشته شده توسط Mega7000
سوالای سخت سخت می پرسی ها
اگه بلد بودم نمی پرسیدم!!!
هز تابع tick چطور باید استفاده کرد؟
خوب اینم مثل همیناس که دوستان گفتن !!!
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
نمی دونم واقعا اینجا دوستان می خوان چیزی بهم دیگه یاد بدن یا اینکه سوادشونو به رخ هم بکشن؟
یا درست جواب بدین و کمک کنین یا لطفا انقدر مزه نندازین
یک تایمر روی فرم قرار دهید . خاصیت interval اون رو 1000 تنظیم کنید . روی timer کلیک کنید وارد رویدادی به نام timer_tick خواهید شد . هر کدی درون این رویداد می نویسید هر 1 ثانیه یکبار تکرار می گردد . مثلا یک متغیر public تعریف کنید و درون ْآن مثلا بنویسید اگر مثلا اسمش رو x گرفتید بزنید ++x . در هر 1 ثانیه 1 واحد به اون اضافه میشه.
حالا یک کلید بزارید روی صفحه و درون اون تایمر رو start کنید . مقدار int رو به text یک label نسبت بدین . حالا از لحظه start مرطبا یکی بهش اضافه می شه . هر موقع هم خواستین با یک کلید دیگه stop کنید . یا همون کلید رو بعد از start تبدیل به کلید stop کنید . اینکار رو با یک شرط انجام بدین وقتی start میشه یک متغیر رو true کنید و چک کنید اگه true بود روال stop اجرا بشه . اگه سوال دیگه ای دارید . بپرسید
ممنون ازتون
یه سوال:
آیا تا قبل اینکه دستور timer1.stop() اجرا بشه،تایمر عددها رو تو label نشون میده؟
Mega7000 ,
دوست من همه بچه ها سعی میکنند چیزی بهم یاد بدهند ولی گاهی به دلیل اینکه فکر میکنند طرفشون اون موضوع رو بلد هست با یک اشاره رد میشن.
فکر کنم جواب آخر کامل بود.
تا قبل از ()timer1.stop هرچی داخل اون رویداد نوشته شده باشه (مثل تغییر لیبل) انجام میشه.آیا تا قبل اینکه دستور timer1.stop() اجرا بشه،تایمر عددها رو تو label نشون میده؟
دوست من چیزی که گفتم رو امتحان کنید . قطعا به نتیجه خواهید رسید
بله تو هر بار تیک تایمر اون کدهایی که نوشتی اجرا میشن مگه اینکه کاذایی باشن که نیاز به زمان زیادی واسه اجرا دارن که اینجا بحث threading پیش میاد
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
فکر می کنم برنامه من مشکلش همین باشه،یعنی زمان زیادی طول می کشه
حالا اگه بخوام از threading استفاده کنم...
چطور؟
threading دیگه به این سادگیها نیست . یکم زمان بره
اگه بگی دقیقا چی میخوای درست کنی شاید بهتر راهنمایی بشی.
شاید یه فرم میخوای که چندتا کار انجام بده و تو این مدت زمان (انجام کارها) رو حساب کنه!
من چند ساله سابقه تدریس دارم . وضعیت افراد زود دستم میاد مبحث تردها الان برای ایشون یک زوده.
ممنون آقای "عفت بزرگه"
همون طوری که آقای once4ever اشاره کردن:"یه فرم میخوای که چندتا کار انجام بده و تو این مدت زمان (انجام کارها) رو حساب کنه!"،کار من هم اینطوریه
ولی باید یاد بگیرم چون کارمو باید بزودی تحویل بدم.
اگه راهنماییم کنید ممنون می شم
خوب برای شروع بگو چه کارهایی میخوای انجام بشه؟
بعضی کارها تو thread خیلی آسونه و بعضی کارها خیلی پیچیده.
یعنی چی چه کارهایی انجام بشه؟دقیقا چی رو واستون بگم؟
می شه واضح تر بگین
مثلا میخوای کنترلی رو تغییر بدی ( لیبل تکست باکس و ...)
یا میخوای یک دیتا ستی رو پر کنی و...
اول یه فایل متنی می خونه از جایی و در یه لیست باکس نشون داده می شه،بعد یک سری محاسبات ریاضی انجام می شه و در همین حین یک سری اشکال گرافیکی کشیده می شه و دوباره پس از هر محاسباتی ریاضی این اشکال اصلاح شده و باز کشیده می شه...
حالا من یه چیزی مثله کرنومتر می خوام که این مدت زمان انجام این اعمال رو از اول تا پایان حساب کنه و نشون بده
1- با همون تایمر هم میشه
2- از کجا فهمیدین من آقا هستم ؟ تو رو خدا بگید
خوب وقتی کارت شروع میشه تایمرت رو استارت کن و وقتی تموم میشه تایمرت رو استوپ! کن.
یعنی شما آقا نیستید؟!2- از کجا فهمیدین من آقا هستم ؟ تو رو خدا بگید