PDA

View Full Version : TextBox مخصوص گرفتن ساعت



alireza4474
جمعه 09 بهمن 1394, 13:16 عصر
با سلام
میخواستم توی پروژه از یه masked text box برای گرفتن ساعت استفاده کنم که دیدم کاربر میتونه ساعتی مثل 88:88 وارد کنه که خب این اشتباهه برای همین توی textChange کدی نوشتم که اگه عدد به محض وارد شدن به فرمت صحیح نبود پاکش کنه اما فایده نداشت چون اگه عدد اشتباه وارد میکرد پوزیشن کرسر تکست باکس به هم میخورد سعی کردم با کد select پوزیشن رو درست کنم اما فایده نداشت
این هم کد هایی که توی text change صدا می کردم

138724
اینم بگم که سعی کردم با تکست باکس معمولی هم اینکار رو انجام بدم اما فایده ای نداشت

ممنونم بابت راهنمایی هاتون

khokhan
جمعه 09 بهمن 1394, 13:58 عصر
با سلام
میخواستم توی پروژه از یه masked text box برای گرفتن ساعت استفاده کنم که دیدم کاربر میتونه ساعتی مثل 88:88 وارد کنه که خب این اشتباهه برای همین توی textChange کدی نوشتم که اگه عدد به محض وارد شدن به فرمت صحیح نبود پاکش کنه اما فایده نداشت چون اگه عدد اشتباه وارد میکرد پوزیشن کرسر تکست باکس به هم میخورد سعی کردم با کد select پوزیشن رو درست کنم اما فایده نداشت
این هم کد هایی که توی text change صدا می کردم

138724
اینم بگم که سعی کردم با تکست باکس معمولی هم اینکار رو انجام بدم اما فایده ای نداشت

ممنونم بابت راهنمایی هاتون

می تونی یه کنترل DateTimePicker بگذاری و فرمتش رو طوری تنظیم کنی که فقط ساعت و دقیقه رو نمایش بده :


private void Form1_Load(object sender, EventArgs e)
{

dtTime1.Format = DateTimePickerFormat.Custom;
dtTime1.CustomFormat = "HH:mm";
dtTime1.ShowUpDown = true;
}

alireza4474
یک شنبه 11 بهمن 1394, 00:01 صبح
می تونی یه کنترل DateTimePicker بگذاری و فرمتش رو طوری تنظیم کنی که فقط ساعت و دقیقه رو نمایش بده :


private void Form1_Load(object sender, EventArgs e)
{

dtTime1.Format = DateTimePickerFormat.Custom;
dtTime1.CustomFormat = "HH:mm";
dtTime1.ShowUpDown = true;
}

حالا یه سوال ذیگه چجوری ساعتی که میخوام رو توش بریزم؟

pbm_soy
یک شنبه 11 بهمن 1394, 00:49 صبح
با سلام
میخواستم توی پروژه از یه masked text box برای گرفتن ساعت استفاده کنم که دیدم کاربر میتونه ساعتی مثل 88:88 وارد کنه که خب این اشتباهه برای همین توی textChange کدی نوشتم که اگه عدد به محض وارد شدن به فرمت صحیح نبود پاکش کنه اما فایده نداشت چون اگه عدد اشتباه وارد میکرد پوزیشن کرسر تکست باکس به هم میخورد سعی کردم با کد select پوزیشن رو درست کنم اما فایده نداشت
این هم کد هایی که توی text change صدا می کردم

138724
اینم بگم که سعی کردم با تکست باکس معمولی هم اینکار رو انجام بدم اما فایده ای نداشت

ممنونم بابت راهنمایی هاتون

چرا از isdigit استفاده کردید؟ ! وقتی ماسک ست کردید که فقط عدد بگیرد پس همه مقادیر تکست بوکس عدد است!
مورد بعدی برای بررسی کردن هم میتوانستی رشته را دوتیکه کنی مثلا با split بشکنی وبخش ساعت و دقیق را جداکنی وبعد تبدیل به عدد کنی وببینی بیشتر از 24 نباشد
چرا نیامدی کل مقدار تکست باکس را پاک نکردید؟ شاید فعلا راحتتر میشد براتون. وقتی یک بخش ساعت اشتباه وارد شده کلش را پاک میکردید تا کاربر دفعه بعد بادقت تایپ میکرد

البته استفاده از datetimepicker هم بد نیست
ویا اینکه خودتون از دوتا numeric uptown استفاده کنی یکی برای ساعت و دیگری برای دقیقه

alireza4474
یک شنبه 11 بهمن 1394, 14:06 عصر
چرا از isdigit استفاده کردید؟ ! وقتی ماسک ست کردید که فقط عدد بگیرد پس همه مقادیر تکست بوکس عدد است!
مورد بعدی برای بررسی کردن هم میتوانستی رشته را دوتیکه کنی مثلا با split بشکنی وبخش ساعت و دقیق را جداکنی وبعد تبدیل به عدد کنی وببینی بیشتر از 24 نباشد
چرا نیامدی کل مقدار تکست باکس را پاک نکردید؟ شاید فعلا راحتتر میشد براتون. وقتی یک بخش ساعت اشتباه وارد شده کلش را پاک میکردید تا کاربر دفعه بعد بادقت تایپ میکرد

البته استفاده از datetimepicker هم بد نیست
ویا اینکه خودتون از دوتا numeric uptown استفاده کنی یکی برای ساعت و دیگری برای دقیقه


اول از همه ممنونم بابت راهنماییتون
پرسیدین که چرا از isdigit استفاده کردم به خاطر ':' بود از split استفاده نکردم تا عدد وارد شده که همنوز ناقص هست مثلا فقط ساعت رو وارد کرده و هنوز دقیقه رو وارد نکرده در لحظه چک بشه مثلا اگه همون اول 3 وارد کرد سه پاک بشه و نمیخواستم کاربر دوباره تکست باکس رو پر کنه فقط نتونه وارد کنه