PDA

View Full Version : نوشتن دستور در رویداد Combobox



vapa_71
پنج شنبه 28 دی 1391, 17:36 عصر
سلام خدمت دوستان گلم

میخواستم بدونم میشه داخل رویداد یک combobox اینطور دستوری نوشت :؟

مثلا ما یک combobox داریم و یک textbox و 2 تا گزینه توی combobox داریم وقتی گزینه اول رو انتخاب کردیم کاربر فقط بتونه مقادیر عددی ( که میتونه اعشاری هم باشه ) رو توی textbox وارد کنه و وقتی گزینه دوم combobox رو انتخاب کرد بتونه داده های معمولی رو وارد کنه (nvarchar)

اصلا شدنی هست ؟

من خواستم از Masktextbox استفاده کنم اما داده های اعشاری رو نمیشد واسش درست تعریف کرد

vapa_71
پنج شنبه 28 دی 1391, 18:11 عصر
کسی نمیتونه کمک کنه

vapa_71
پنج شنبه 28 دی 1391, 22:49 عصر
لطفا کمک کنید دوستان

ma.rad
پنج شنبه 28 دی 1391, 22:59 عصر
بله میشه، تو رویداد KeyDown تکس باکس بنویس اگر ایندکس کمبوباکس 0 بود فقط عدد وارد بشه و اگر .....

vapa_71
پنج شنبه 28 دی 1391, 23:10 عصر
بله میشه، تو رویداد KeyDown تکس باکس بنویس اگر ایندکس کمبوباکس 0 بود فقط عدد وارد بشه و اگر .....

میشه کد بذارین ؟

میشه خود تکس باکس رو تنظیم کرد که فقط عدد بگیره (البته اعشاری هم بگیره)

danialafshari
پنج شنبه 28 دی 1391, 23:21 عصر
بفرمائید :

از همچین چیزی هم به جز سورسی که گزاشتم میتونید با اندکی تغییرات استفاده کنید

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (chk == true)
{
if (e.KeyChar == 13)
{
textBox1.Text+= '.';
}
double isNumber = 0;
e.Handled = !double.TryParse(e.KeyChar.ToString() , out isNumber);

}
else
{
e.Handled = false;
}
}

موفق باشید

vapa_71
پنج شنبه 28 دی 1391, 23:33 عصر
chk

ابنو ارور میده ؟

vapa_71
پنج شنبه 28 دی 1391, 23:35 عصر
مرسی فایل ضمیمه رو دیدم ممنون دوست گلم

danialafshari
پنج شنبه 28 دی 1391, 23:36 عصر
chk

ابنو ارور میده ؟

می تونی سورس رو دانلود کنی و جایگزین کنی
برای chk هم دربالای فرم قسمت کلاس معرفیش کن
private bool chk;

vapa_71
جمعه 29 دی 1391, 00:07 صبح
می تونی سورس رو دانلود کنی و جایگزین کنی
برای chk هم دربالای فرم قسمت کلاس معرفیش کن
private bool chk;

ممنون داداش جواب داد اما داده های اعشاری رو قبول نمیکنه

vapa_71
جمعه 29 دی 1391, 00:15 صبح
کد رو هم به این سکل تغییر دادم اما نشد

private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (chk == true)
{
if (e.KeyChar == 13)
{
textBox3.Text += '.';
}
double isNumber = 0;
e.Handled = !double.TryParse(e.KeyChar.ToString(), out isNumber);

}
else
{
e.Handled = false;
}
}

danialafshari
جمعه 29 دی 1391, 13:01 عصر
قبل از محاسبه به double تبدیل کن

Convert.ToDouble(textBox1.text);

vapa_71
جمعه 29 دی 1391, 17:56 عصر
قبل از محاسبه به double تبدیل کن

Convert.ToDouble(textBox1.text);

منظورتون رو متوجه نشدم !

danialafshari
جمعه 29 دی 1391, 18:23 عصر
شما برای تایپ اعشاری باید به صورت
2.5
بنویسید دیگه!
شما باید درون تکست باکس کاراکتر نقطه . که نشانگر اعشاریه رو مجاز کنید و برای محاسبه از کد زیر استفاده کنید:
Convert.ToDouble(textBox1.text);

vapa_71
جمعه 29 دی 1391, 20:30 عصر
ببینید من میخوام چیزی که وارد تکس باکس میشه به صورت رشته ذخیره بشه و داخل بانک واردش کنم
حالا واسه اینکه توی کارای بعدی که انجام میدم مشکل پیش نیاد باید textbox رو جوری به کار ببرم که هم داده اغشاری بگیره هم داده رشته ای اما در آخر به صورت رشته ای ذخیره بشه

دقیقا مثل همون فایل ضمیمه اما اون تنها ایرادی که داره اینه که عدد اعشاری رو نمیشه وارد کرد مشکل همون (.) هست
این چیزی که شما میگی رو متوجه نمیشم به چه درد من میخوره ! میشه توضیح بدین یا نمونه کد رو کامل بنویسید ؟

danialafshari
جمعه 29 دی 1391, 23:53 عصر
سلام
همون اول وقت نداشتم کامل کنم
کد بالا برای تبدیل به اعشاره و برای محاسباتی مثل جمع و تفریق و.... اعداد اعشاری است که فکر نمی کنم شما نیاز داشته باشید
به هر حال سورس رو کامل کردم با دریافت داده اعشاری
بفرمائید:

vapa_71
شنبه 30 دی 1391, 00:42 صبح
ممنون دوست گلم توی این فاصله گشتم توی یک سایت خارجی یه قطعه کد پیدا کردم که کد شما رو باهاش تکمیل کردم

اونو هم میذارم شاید کسی استفاده کرد