PDA

نسخه کامل مشاهده نسخه کامل : نحوه گذاشتن Undo ؟؟؟؟؟



Rishter
16-04-2010, 21:27
با عرض سلام

ميخواستم بدونم چه جوري ميتونم گزينه Undo و Redo رو ايجاد كنم كه با زدن Undo نوشته هاي پاك شده در ريچ

تكست باكس برگردانده شوند و با زدن دكمه Redo عكس اين عمل انجام شود ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

:40::11:

M i L @ D
16-04-2010, 22:29
برای اینکار به دو متغیر نیاز دارید که مقادیر مختلف تکست رو بگیرند !

1- پس اول دو متغیر در بخش جنرال از نوع String تعریف میکنید !

2- در Form و رویداد Load کد زیر را مینوسید تا مقدار اولیه ی تکست وارد متغیر a شود :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


3- در TextBox و رویداد KeyUp کد زیر را مینوسید تا آخرین عبارتی که وارد کردید به b منتقل شود :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


4- حالا در دکمه های Undo و Redo به ترتیب کدهای زیر را مینوسید :




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


* با استفاده از Clipboard هم میشه اینکار رو انجام داد ولی فقط برای نگهداری یک مقدار . واسه همین استفاده از متغیر بهتره !

Kalanon
18-04-2010, 14:17
خب این ماله یه حرفه ، نه ؟
یعنی Undo آخرین حرف رو بر می گردونه .

M i L @ D
19-04-2010, 22:10
خب این ماله یه حرفه ، نه ؟
یعنی Undo آخرین حرف رو بر می گردونه .

Undo اولین مقدار که در تکست باکس با شروع فرم نمایش داده بشه رو برمیگردونه !

Dark.Lord
20-04-2010, 13:34
به نظر من اگر ترتیب کد های بالا رو یکم تغییر بدهید بهتر نتیجه می گیرید،
همان طور که دوستمون گفتند:
در TextBox و رویداد KeyUp کد زیر را مینوسید تا آخرین عبارتی که وارد کردید به b منتقل شود :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا برای دکمه Undo کد زیر رو بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو در ادامه اش این کد را بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا برای دکمه Redo این کد را بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید اگر کد ها را به این شکل دنبال کنید دیگر مشکل Form Load نخواهید داشت و Undo و Redo همیشه کار خواهند کرد،
برای Undo و Redo کردن چند باره هم می بایست از آرایه استفاده کنید که اگر لازم شد توضیح می دهم.
با تشکر از توضیحات مفید Lee_Young_Ae2027L،
موفق باشید.

پی نوشت: البته این کد کار نمی کند چون زمانی که عمل Undo صورت می گیرد متن فرقی با متن حاضر ندارد، برای جلوگیری از این امر به عنوان مثال اولین کد را (کد مربوط به Keyup) فقط برای کلید SPACE بنویسید تا بتوان کلمه قبلی را Undo کرد.

SMVV
24-04-2010, 21:29
به نظر من اگر ترتیب کد های بالا رو یکم تغییر بدهید بهتر نتیجه می گیرید،
همان طور که دوستمون گفتند:
در TextBox و رویداد KeyUp کد زیر را مینوسید تا آخرین عبارتی که وارد کردید به b منتقل شود :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا برای دکمه Undo کد زیر رو بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو در ادامه اش این کد را بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا برای دکمه Redo این کد را بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید اگر کد ها را به این شکل دنبال کنید دیگر مشکل Form Load نخواهید داشت و Undo و Redo همیشه کار خواهند کرد،
برای Undo و Redo کردن چند باره هم می بایست از آرایه استفاده کنید که اگر لازم شد توضیح می دهم.
با تشکر از توضیحات مفید Lee_Young_Ae2027L،
موفق باشید.

پی نوشت: البته این کد کار نمی کند چون زمانی که عمل Undo صورت می گیرد متن فرقی با متن حاضر ندارد، برای جلوگیری از این امر به عنوان مثال اولین کد را (کد مربوط به Keyup) فقط برای کلید SPACE بنویسید تا بتوان کلمه قبلی را Undo کرد.

دوست من اگه برنامتو درست نگا کنی اشتباهاتی توشه گلم.

Dark.Lord
24-04-2010, 22:28
دوست من اگه برنامتو درست نگا کنی اشتباهاتی توشه گلم.

این کد کاملش است،
مشکلی ندیدم :46:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید