ايران ويج

نسخه‌ی کامل: یک کد برای همه کنترل ها
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام
میخایم یک کد بنویسیم و برای رویداد همه کنترل ها باشه.
مثلا وقتی چند تا textbox داشتیم میخاستیم فقط عدد بگیرن یک کد مینوشتیم و انتساب میدادیم برای رویداد هر textbox ی که میخایم چون رویداد keypress بود که کنترل ها رو از هم متمایز میکرد و کد مورد نظر رو روی همون کنترلی که رویداد برش اتفاق افتاده بود اجرا میکرد.
حالا
حالا چند تا textbox داریم میخایم زمانی که فوکوس (enterرویداد ) میگیرند رنگ زرد بشن و وقتی فوکوس از دست میدن (رویداد leave) رنگشون سفید بشه...
فکر نکنم معقول باشه که برای همه textbox ها کد بنویسیم ، میخواستم از شما بپرسم راهش چیه ؟
با سلام
من یه کاری در این رابطه که یه کد برا همه رویداد ها باشه کردم شاید به درد شما هم بخوره

من چند تا TextBox داشتم و برا رویداد KeyPress همه رو انتخاب کردم و رویداد KeyPress رو ایجاد کردم کهیه رویداد برا TextBox اولی ایجاد شد و ویژوال استادیو اون رو به بقییه TextBox ها نسبت داد.
کد:
this.textBox14.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox1_KeyPress);
واسه keypress مشکلی نیست چون توی keypress با کاراکتر کار داریم که میتونیم بدستش بیاریم اما نمیتونیم اسم یا هندله تکست باکس رو بدست بیاریم.
من فکر میکنم باید یه کلاس جدید ایجاد کنیم که از تکست باکس ارث ببره و اون چیزی که میخایم رو به کلاس مورد نظر اضافه کنیم
سلام
درسته
این کاری که من گفتم مال وقتی هست که یه کد رو برا همه کنترلها اجرا میکنیم
مثلا میخایم ماوس رو هر کنترلی میره یه فایل صوتی اجرا بشه
ولی اگه بخایم رو هر کنترلی فایل صوتی جدا گانه ایجاد بشه خوب باید نام کنترل رو داشته باشیم
و اگه کلاسی هم بنویسیم و بخایم از طریق اون عمل کنیم بازم برا هر کنترل یه کد نیاز داریم که نسبت به ایجاد رویدادهای مجزا فکر کنم چندان فرقی نداشته باشه .
حالا شما اگه یه کلاس برا این کار نوشتید ما رو هم بی نسیب نگذارید .
نه بابا چرا سختش میکنید. با همونی که حمیدسینا گفت میشه. از sender استفاده کنید.
اینم همونی که میخواستید:(ضمیمه)
این کد واقعا زیبا بود کوچولو اما مفید.
حالا منم یه مشکلی در این رابطه پیدا کردم
من با کد زیر :
کد:
if (((Button)sender).Tag.ToString().Trim() == "account_new")
tag باتون رو میگیرم و مشکلی ندارم اما وقتی از این کد برا TextBox در رویداد LeyPreas استفاده میکنم
کد:
string str = ((TextBox)sender).Tag.ToString().Trim();
بازم برنامه کامپایل میشه ولی وقتی این دستور اجرا میشه برنامه خطا رو میده .
با تشکر.
با این فکر کنم درست بشه:
کد:
if (((TextBox)sender).Tag != null)
            {
                string str = ((TextBox)sender).Tag.ToString().Trim();
            }
متاسفانه فرقی نکرد آخه خصیت Tag برابر با null نبود
خطا
کد:
Unable to cast object of type 'System.Windows.Forms.TextBox'to type 'System.Windows.Forms.TextBox'.
این دیگه از اون خطا هاست!. میشه پروژه رو آپ کنید؟
(توصیه های آنتیسیشارپی: برید ویبی کار کنید که این همه مشکل نداره. درجا خودش تبدیل میکنه. شاید هم من سیشارپ خوب بلد نیستم)
جان من VB بهتره ؟
یعنی ما خودمونو الاف کردیم ؟
یه pdf آدرس بدید اگه بهتره ما هم بریم تو کار همون
کدومش راحت تره ؟
چی بگم .الان یچی بگم میریزن سرم میگن نه Biggrin
از نظر کارایی هیچ فرقی ندارن. ولی چیزی که من احساس میکنم VB.NET راحت تر از C# هسته. هم این که VS برای VB امکانات بیشتری ارائه میده.
حداقلش. به نظر من. کسی که قبلا VB کار کرده اصلا صرف نمیکنه بره طرف C# . البته توی جنبه اقتصادیش و کاریابی رو شرمنده. مثل این که اونجا هم به خاطر همین تفکرات اشتباه بیشتر طرفدار C# هستن.
صفحه‌ها: 1 2