PDA

View Full Version : سوال: وارد کردن ساعت به صورت 24 ساعته در فرم ؟!



saman-nte
پنج شنبه 11 دی 1393, 09:12 صبح
با سلام

میخواستم بپرسم که برای وارد کردن ساعت به صورت 24 ساعته از چه شیئی باید استفاده کرد ؟!؟!

من از Masked Text Box استفاده کردم ، ولی موقعه ذخیره شدن در دیتابیس Error میده ( چون در دیتابیس فیلد رو از نوع Time مشخص کردم و برخی مواقع کاربر اشتباهاً اطلاعاتی مثل 44:22 یا 32:30و غیره که خارج از رنج 24:00 هست رو وارد میکنه :(

آیا به کامپوننت احتیاج هست ؟!

اگه آره اسمش چیه ؟!

بازم ممنونم

محمد رضا فاتحی
پنج شنبه 11 دی 1393, 11:08 صبح
تو می تونی از همون MaskTextBox استفاده کنی ولی قبل از وارد کردن به دیتابیس چک کنی ببینی درست وارد کرده یا نه
این کد رو برات نوشتم اصولی نیست ولی کار میکنه!!!!!!!:لبخند:
if (txttime.MaskCompleted)
{
string time = txttime.Text;
char ch = ':';
string t = time.Split(ch)[0] + time.Split(ch)[1];
int x = Int32.Parse(t);
if (Int32.Parse(time.Split(ch)[1]) > 59)
{
FarsiMessage.Show("ساعت وارد شده نادرست می باشد", "", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Stop);
return;
}
if (x < 0 || x > 2359)
{
FarsiMessage.Show("ساعت وارد شده نادرست می باشد", "", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Stop);
return;
}


}
else
{
FarsiMessage.Show("ساعت وارد شده نادرست می باشد", "", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Stop);
return;
}

ro3vayedel
پنج شنبه 11 دی 1393, 12:31 عصر
Time همون لحظه رو میخواید یا تایمی که کاربر خودش وارد کنه؟؟؟؟؟
اگر Time همون لحظه Time.Now مشکلت رو حل میکنه اگر هم میخوای زمان را از کاربر بگیری صدها کامپوننت فارسی واسه اینکار هست یک سرچ کنی توی گوگل خیلی ها رو پیدا میکنی ببین کدوم با سلیقه ات جوره...

saman-nte
پنج شنبه 11 دی 1393, 15:05 عصر
هدف من اینه که کاربر بتونه مقادیر زمانی ( ساعت با فرمت 24 ساعته ) رو تویه فرم وارد کنه

اگه زحمت نیست لینک یکی از کامپوننت ها رو بزارید

ممنون

saman-nte
یک شنبه 14 دی 1393, 17:58 عصر
لطفاً راهنمایی کنید

من هر چی تویه نت سرچ زدم اینطور کامپوننتی پیدا نکردم .... :افسرده:

malizergani
یک شنبه 14 دی 1393, 21:56 عصر
باسلام خدمت دوست عزیز:

کدی که به شما میدهم را در یک کلاس جایگذاری کنید و یک بار پروژه را Build کنید بعد در Toolbox مشاهده می کنید یک ابزار جدید با نام MaskedBox تولید شده و این ابزار را در پروژتون استفاده کنید. یاعلی

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace System.Windows.Forms
{
public class MaskedBox : MaskedTextBox
{
ErrorProvider _ErrorProvider = new ErrorProvider();

protected override void InitLayout()
{
base.Mask = "00:00";
base.TextChanged += new EventHandler(Mskedbox_TextChanged);
base.InitLayout();
}

public bool IsError { get; set; }

void Mskedbox_TextChanged(object sender, EventArgs e)
{
if (base.MaskCompleted)
{
if (int.Parse(base.Text.Substring(0, 2)) > 24)
{
//error

IsError = true;

_ErrorProvider.SetError(this, @"ساعت را صحیح وارد نمائید");
return;
}
else
{
IsError = false;

_ErrorProvider.SetError(this, string.Empty);
}

if (int.Parse(base.Text.Substring(3, 2)) > 59)
{
//error

IsError = true;

_ErrorProvider.SetError(this, @"دقیقه را صحیح وارد نمائید");
return;
}
else
{
IsError = false;

_ErrorProvider.SetError(this, string.Empty);
}
}
}
}
}

سوال داشتی درخدمتم...

saman-nte
دوشنبه 15 دی 1393, 17:39 عصر
ممنونم بابت پست خوبتون ( واقعاً مفید بود)

ولی آیا هیچ کامپوننتی برای وارد کردن ساعت وجود نداره ؟!!

malizergani
دوشنبه 15 دی 1393, 21:19 عصر
Component DevExpress استفاده کن

plus
دوشنبه 15 دی 1393, 21:51 عصر
از DateTimePicker استفاده کنید.
http://barnamenevis.org/showthread.php?479174-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%B2%D9%85%D8%A7%D9%86-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1&p=2146948#post2146948