View Full Version : سوال: ساختن Masked ComboBox
حجتی نیا
یک شنبه 07 شهریور 1389, 12:55 عصر
اطلاعاتی توی کمبو هست (اعداد کسری مثلا 1/40) .. کاربر هم میتونه اعداد جدید وارد کنه اما به همین شکل باید وارد بشه.(تو مایه های masked Textbox)
چطوری باید اینکار انجام بشه؟؟
cheshm6k
دوشنبه 08 شهریور 1389, 02:48 صبح
سلام .
از این کد
if ((!char.IsDigit(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
{
if (!((e.KeyChar == '/') && (!comboBox1.Text.Contains("/"))))
e.Handled = true;
}
یا از این کد
if ((!char.IsDigit(e.KeyChar)) && (e.KeyChar != (char)Keys.Back) &&(e.KeyChar!='/'))
{
e.Handled = true;
}
if ((e.KeyChar == '/') && (comboBox1.Text.Contains("/")))
e.Handled = true;
می تونید تو رویداد KeyPress کامبوباکس استفاده کنید. جفتش یه کار انجام میده.
فقط اعداد و یه دونه "/" میگیره.
حالا اگه طول اعداد اینور و اونور اسلش واست مهمه میتونی همین کدها رو یخورده تغییر بدی.
موفق باشید.
حجتی نیا
دوشنبه 08 شهریور 1389, 11:53 صبح
ممنون ازتون ولی این کد هارو که بلدم ..
حالا اگه طول اعداد اینور و اونور اسلش واست مهمه میتونی همین کدها رو یخورده تغییر بدی.
همینش مهمه .. اعدادی که وارد میشن باید بین 40/1 تا 100/1 باشه
cheshm6k
دوشنبه 08 شهریور 1389, 12:52 عصر
همینش مهمه .. اعدادی که وارد میشن باید بین 40/1 تا 100/1 باشه
خوب اونم میتونی با خاصیت length متن کامبو چک کنی . اگه صفر بود فقط باید عدد وارد شه اگه یک بود فقط اسلش و ............ اگه اینور اسلش همیشه یکه حتی میتونی خودت /1 رو بزاری و چک کنی که کاربر نتونه پاکش کنه
اینو ببین
if (e.KeyChar != (char)Keys.Back)
{
if ((comboBox1.Text.Length == 0) || ((comboBox1.Text.Length > 1)))
{
if (!char.IsDigit(e.KeyChar))
e.Handled = true;
}
else
{
if (e.KeyChar != '/')
e.Handled = true;
}
}
یا این
if (e.KeyChar != (char)Keys.Back)
{
if (comboBox1.Text.Length == 1)
{
if (e.KeyChar != '/')
e.Handled = true;
}
else
{
if (!char.IsDigit(e.KeyChar))
e.Handled = true;
}
}
اینا نمونه کد از الگوریتمیه که گفتم. دومیه بهینه تره . ازش ایده بگیرو نسبت به نیازت هوشمندترش کن. آها، خاصیت MaxLength کامبو رو هم بزار 5.
موفق باشی.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.