ورود

View Full Version : راه حلی برای فهمیدن تغییرات کنترل ها در یک فرم



bigham
یک شنبه 03 تیر 1386, 11:37 صبح
سلام.
من دارم یک برنامه تحت وب می نویسم .
در این برنامه من یک سری فرم دارم که در هر فرم چند تا کنترل مثل textbox,radiobox,checkbox,grid,غیره دارم.
کاربران می توانند کنترل ها را ادیت کنند و مقادیر آنها را تغییر بدهند و سرانجام فرم را save کند.
من می خواهم یک آیکونی داشته باشم که به محض اینکه کاربری مقدار یک کنترل را تغییر داد رنگ یا شکل این آیکون عوض شود .
این به کاربر نشان میدهد که در فرم تغییراتی ایجاد شده که هنوز ذخیره نشده اند.
همانطور که می دانید خیلی از نرم افزارها مثل MsWord و Pspad و Visual Studio این قابلیت را دارند.
به دنبال راه حلی برای این کار می گردم .
اولین راهی که به ذهنم رسید این بود که روی' on key down event ' کد بنویسم، یعنی اینکه وقتی کاربر کلیدهای حروفی و عددی را فشار داد تابعی فراخوانی شود که اون تابع کارش این است که شکل یا رنگ آیکون را تغییر دهد. این کار عملی نشد چون که ممکن بود کاربر مقداری را past کند و من این تغییر مقدار را نمی دیدم.
راه حل دوم این بود که روی on Change event هر کنترل تابع مورد نظر را فراخوانی کنم تا شکل یا رنگ آیکون مورد نظر را تغییر دهد.
این راه حل ظاهراً بد نبود چون که هر نوع تغییری را چه از طریق keyboard و چه از طریق mouse می گرفت. اما بدی این روش این بود که
به محض اینکه کاربر شروع به ویرایش کردن یک textbox می کرد این تابع فراخوانی نمی شد بلکه وقتی که کنترل focus را از دست
می داد تابع فراخوانی می شود .
حالا دنبال راه حلی می گردم که به محض اینکه کاربر شروع به ویرایش یک متن کرد شکل آیکون عوض شود.
کسی می تونه به من کمک کنه؟

zaerymoghaddam
یک شنبه 03 تیر 1386, 16:13 عصر
با سلام

شما می توانید همان روش اول را استفاده کنید، و برای Paste کردن هم event هایی که برای همین منظور طراحی شده، مانند oncut, onpaste را به کار ببرید.

Bahram0110
یک شنبه 03 تیر 1386, 19:38 عصر
نظرت درباره استفاده همزمان از دو روشی که گفتید چیه؟