تنظیم ساعت ایجاد شده در فرم - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۹۶ نفر آنلاین
۴۸ عضو و ۱۴۸ مهمان در سایت حاضرند

تنظیم ساعت ایجاد شده در فرم

0 امتیاز

با سلام. می خواستم ساعت و تاریخ که در فرم ایجاد کردمو حالا خود کاربر به صورت دستی تنظیمش کنه؟؟؟؟؟؟؟؟؟

ممنون می شم اگر راهنمایی کنید.

سوال شده اسفند 26, 1392  بوسیله ی Sher228 (امتیاز 167)   18 33 44

1 پاسخ

+1 امتیاز

 یک TextBox بزار روی فرم مثلا اسمش هست TextBox1  با یک Button اسمش Button1

و یکی   label برای ساعت label1

حالا کد زیر رو بنویس

public partial class Form1 : Form
    {
        Timer timer = new Timer();
        DateTime time = new DateTime();
        public Form1()
        {
            InitializeComponent();
            time = DateTime.Now;
            label1.Text = "";
            timer.Tick += new EventHandler(timer_Tick);
            timer.Interval = 1000;
            timer.Start();
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            time = time.AddSeconds(1);
            label1.Text = time.ToString("HH:mm:ss tt");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if( ! DateTime.TryParse(textBox1.Text, out time))
                time = DateTime.Now;
            
        }        
    }

الان کافیه که توی text box زمان جدید رو بزنید و روی button کلیک کنید .

برای  تاریخ هم میتونین از روش مشابه استفاده کنین .

پاسخ داده شده اسفند 26, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
ممنون فقط این چند خط رو دقیقا چه کاری انجام می دن؟
 if( ! DateTime.TryParse(textBox1.Text, out time))
                time = DateTime.Now;
time = time.AddSeconds(1);
TryParse  دو تا ورودی داره یک متن و یک شی به DateTime  و خروجیش هم از نوع bool هستش .
اگر ورودی رو بتونه به زمان تبدیل کنه یعنی فرمتش مناسب باشه مثلا ( "13:23:22")  مقدار String به DateTime تبدیل میشه و داخل time قرار می گیره و تابع true رو برمی گردونه و شرط بعد از if اجرا نمیشه .
اگر ورودی مناسب نباشه مثلا این باشه :( "abcd" ) خروجی تابع false هستش و به time مقداری داده نمیشه چون تابع نمی تونه این مقدار رو تبدیل کنه ...در این صورت شرط بعد از if اجرا میشه و به time زمان فعلی داده میشه .
یعنی اگر if بردارم بازم باید بشه که نمی شه....بعد یه سوال دیگه     time = time.AddSeconds(1);
اگر نباشه چرا دیگه ساعت بعد از تنظیم کار نمی کنه؟؟؟؟؟
نه دیگه اگر قرار بود بشه که اصلا if رو نمیزاشتم. اگر برش داری و زمان رو اشتباه وارد کنی زمان از 0 شروع میشه .
اون 1 ثانیه به time فعلی اضافه میکنه
به خاطر این کار نمی کنه که time مقدارش ثابت میمونه چون اون جوری فقط تویpublic Form1 یکبار بهش مقدار اولیه داده میشه و بنابراین مقدارش همیشه ثابت می مونه .
ببخشید واقعا ,,همش حل شده به غیر از if  اون 1 ثانیه به خاطر      time = time.AddSeconds(1); هست؟؟؟ اگر بخوام اصلا if نباشه چی؟؟
آره به خاطر همونه .
می تونید if رو نزارید . ولی اگر تاریخ اشتباه باشه اون وقت زمان از 00:00:00 شروع میشه که فکر نکنم اون چیزی باشه که می خواهید .
اخه من if کامنت کردم و مقدار صحیح دادم ولی با زدن دکمه اتفاقی نیوفتاد؟؟
...