PDA

View Full Version : سوال: combobox event for barcode reader



ClaimAlireza
سه شنبه 10 فروردین 1389, 19:39 عصر
با سلام
می خوام زمانی که کد از طریق بارکد خوان وارد تکست باکس شد یه event روی بده.

فرض کنید کد 4 رقمی باشه.

به صورت عادی با event های textbox نمی توان این کار را کرد چون بلافاصله تا اولین رقم وارد textbox بشه رویداد fire میشه من می خوام بعد ورود کامل کد رویداد fire بشه.

با تشکر

mehdi.mousavi
سه شنبه 10 فروردین 1389, 20:59 عصر
با سلام می خوام زمانی که کد از طریق بارکد خوان وارد تکست باکس شد یه event روی بده. فرض کنید کد 4 رقمی باشه. به صورت عادی با event های textbox نمی توان این کار را کرد چون بلافاصله تا اولین رقم وارد textbox بشه رویداد fire میشه من می خوام بعد ورود کامل کد رویداد fire بشه. با تشکر

سلام.
شما دارید دو مساله رو با هم ادغام می کنید:



TextChanged باید هر وقت که Text تغییر کرد، فراخوانی بشه. شما نباید توی کارکرد این متود دست ببرید.
شما یه Event جدید می خواهید، مثلا، BarcodeReceived که از بیرون کاربر بتونه مثل TextChanged بگیرتش و هر کاری مایل بود انجام بده.

برای این کار، یک کلاس جدید بسازید و اونو از TextBox درایو کنید. Event مورد نظر رو به این کلاس اضافه کنید. سپس OnTextChanged رو override کنید و اونجا، از وارد شدن 4 کاراکتر اطمینان حاصل کنید (با استفاده از base.Text.Length). وقتی مطمئن شدید که 4 کاراکتر وارد شده، اونوقت متود virtual ای که اسمش رو OnBarcodeReceived گذاشته اید رو فراخوانی کنید. توی این متود، Event مورد نظر رو Fire کنید. در نهایت، هر جا خواستید از این TextBox خاص استفاده کنید، اونو روی Form قرار بدید و BarcodeReceived Event اش رو Listen کنید. هر وقت Fire شد، مطمئن هستید که 4 کاراکتر توی TextBox وجود داره.

موفق باشید.

ClaimAlireza
جمعه 28 خرداد 1389, 22:19 عصر
با عرض سلام

راستی اگر تعداد کاراکترها مشخص نباشد چی؟

یعنی کدهای ما لزوما چهار رقمی نباشد بعضی از آنها 12 رقمی باشد بعضی 10 رقمی و ...

mehdi.mousavi
دوشنبه 31 خرداد 1389, 20:19 عصر
با عرض سلام
راستی اگر تعداد کاراکترها مشخص نباشد چی؟
یعنی کدهای ما لزوما چهار رقمی نباشد بعضی از آنها 12 رقمی باشد بعضی 10 رقمی و ...

سلام.
کافیه یک Property جدید روی کلاستون تعریف کنید تا بتونید اونو از بیرون روی عدد مورد نظر خودتون تنظیم کنید. اگر استانداردهای متفاوتی وجود داره برای اینکار، بهتره توی یه enum نام Standard ها رو قرار بدید، و Property مزبور رو از نوع این enum تعریف کنید. بدین ترتیب، کلاس شما بر اساس فلان استاندارد کار خواهد کرد. به این ترتیب دیگه نیازی هم نیست جزییات یک استاندارد رو از بیرون به کلاس بدید.

موفق باشید.

ClaimAlireza
دوشنبه 31 خرداد 1389, 23:34 عصر
با سلام.

فرض کنید بارکدهای روی اجناس یک مغازه سوپر مارکت مد نظر باشد...

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

یکی از اجناس خارجی ممکنه باشه یکی ایرانی منظور شما از قرار دادن استاندارد چیه؟

اگه می شه با یک مثال عملی توضیح بدین.

با تشکر