PDA

View Full Version : سوال: محدود کردن کمبو باکس + تکست باکس



Fer[O]ciouS
شنبه 20 مهر 1392, 18:09 عصر
سلام.
من چندین کد در مورد محدود کردن یک تکست باکس دیدم ، که یا عدد میشود وارد کرد یا حروف مثل کد زیر:

e.Handled = !Char.IsNumber(e.KeyChar) && e.KeyChar != 8;
ولی این کد ها فقط عدد یا حروف را محدود میکنند ونمیوشد آنها را انتخاب کرد با کیبورد.
حالا من میخوام محدودیت به همون شکل یعنی این امکان وجود نداشته باشد با کیبورد تایپش کرد ولی کارکتر هایی که من میخوام فقط قابل انتخاب باشند.
کارکتر 0-9 کارکتر نقطه . و کارکتر تفریق -
این 12 کارکتر را چطوری محدود کنم ؟

سوال دیگم این است که :
میتوان مقادیر درون کمبو باکس و تکستcopy , paste کرد چطوری میتونم این خاصیت را از لیست کلیک راست غیر فعال کرد در برنامه ؟
با تشکر.

majid_i68
شنبه 20 مهر 1392, 18:17 عصر
سلام
در جواب سوال اول شما...

شما باید با استفاده از regular expressien الگوی خود رو تعریف کنید و در برنامه استفاده کنید .. کار زیاد سختی نیست

Fer[O]ciouS
شنبه 20 مهر 1392, 18:37 عصر
سلام
در جواب سوال اول شما...

شما باید با استفاده از regular expressien الگوی خود رو تعریف کنید و در برنامه استفاده کنید .. کار زیاد سختی نیست
روشی که شما فرمودید محدود میکنه با این شرط که اگر مقدار برابر آن چیزی که من میخوام نباشد پیغام خطا بده ، اما من نمیخوام پیغام خطا بده فقط امکان وارد کردن نباشد . منظور شما کد زیر میباشد ؟
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^9")

Fer[O]ciouS
شنبه 20 مهر 1392, 19:12 عصر
کد زیر من برای سوال اولم تونستم دربیارم کدش به صورت زیر است کسی روشی ساده تر از این اگر تونست ایجاد کند لطفا قرار بده با تشکر.
int asciiCode = Convert.ToInt32(e.KeyChar);
if ((asciiCode >= 48 && asciiCode > 57 )&&(asciiCode>=45 && asciiCode>46))
{
e.Handled = true;
}

در مورد سوال دوم کسی هنوز ایده ای ندارد ؟

samin_panahi
شنبه 20 مهر 1392, 20:09 عصر
ciouS;1895016']
سوال دیگم این است که :
میتوان مقادیر درون کمبو باکس و تکستcopy , paste کرد چطوری میتونم این خاصیت را از لیست کلیک راست غیر فعال کرد در برنامه ؟
با تشکر.

باید DropDownStyle رو روی DropDownList بذاری

samin_panahi
شنبه 20 مهر 1392, 20:13 عصر
سوال اولتون رو خوب متوجه نشدم
می خواید فقط بشه عدد تایپ کرد؟

erfan_urchin
شنبه 20 مهر 1392, 20:26 عصر
حالا من میخوام محدودیت به همون شکل یعنی این امکان وجود نداشته باشد با کیبورد تایپش کرد ولی کارکتر هایی که من میخوام فقط قابل انتخاب باشند.
کارکتر 0-9 کارکتر نقطه . و کارکتر تفریق -
این 12 کارکتر را چطوری محدود کنم ؟
دوست عزیز باید از این کد استفاده کنی
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != '\b' && e.KeyChar != '-' && e.KeyChar != '.')
e.Handled = true;
}
'b\' کد اسکی backspace رو برمیگردونه
به نظر من این بهترین راهه و بهتر از این نمیتونی پیدا کنی

erfan_urchin
شنبه 20 مهر 1392, 20:35 عصر
سوال دیگم این است که :
میتوان مقادیر درون کمبو باکس و تکستcopy , paste کرد چطوری میتونم این خاصیت را از لیست کلیک راست غیر فعال کرد در برنامه ؟
برای این کار باید خودت منوی راست کلیک رو توسط ContextMenuStrip بسازی (وگرنه نمیتونی paste رو از کار بندازی)
تو این پست من آموزش دادم که چجوری میشه منوی راست کلیک دلخواه رو ساخت
http://barnamenevis.org/showthread.php?392479-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%85%D9%86%D9%88%DB%8C-%D8%B1%D8%A7%D8%B3%D8%AA-%DA%A9%D9%84%DB%8C%DA%A9-%D8%AF%D9%84%D8%AE%D9%88%D8%A7%D9%87&p=1740475&viewfull=1#post1740475