سلام
تاخیر در جواب!اگه میشه بگید برای چی شرمنده اید ... کنجکاو شدم بدونم
شاید 25 کاراکتری که من الکی نوشتم در TextBox شما وجود نداشته!من این کد رو روی یک باتن گذاشتم ولی کار نکرد !
وقتی روی باتن کلیک میکنم خطا میده.
کدش که بود و خیلی هم کوتاه بود!!!شما دقیقا چیزی رو ساختید که من مد نظرم بود ... ولی چه جوری این کار رو کردید نمیدونم !
لطفا توضیح بدید. من سعی میکنم تا حدی بفهمم ولی شما هم لطف کنید یه توضیحی بدید
کد اصلی در خط 18 فایل Class1 قرار دارد.
این TextEditor لطف میکند و کلمه مورد نظر را استخراج میکند، اگر خودتان میخواستید این کار را انجام دهید، خودش کلی کد میطلبید.
(باید متن را از محل مشخص به عثب و جلو جستجو میکردید تا به یک کاراکتر غیر عدد-حرف برسید و اگر متن داخل تهی نبود ...)
اول word را با s1 مقایسه میکنیم، اگر برابر باشد یعنی لغت Mahdi به وجود آمده.
بعد (wordindex += 1) کلمه یا بلوک بعدی را به دست آورده و چک میکنیم و اگر ":" نباشد، پس آن را اضافه میکنیم.
طریقه اضافه کردن و تصحیح بزرگی و کوچکی هم با Replace است، یعنی mahdi را با توجه به محل شروع با :Mahdi تعویض میکنیم.
چند کد بعدی هم برسی میکند و اگر مکان نما در آخر کلمه بوده باشد، آن را یک واحد به جلو میبرد.
ساخت یک کلاسس که به ذات کاری انجام نمیدهد؟؟؟ مثل این است که یک وسیله برای خانه بخرید ولی از کارتون بازش نکنید!!!من توی پروژه م دقیقا یه کلاس ساختم و کدهای کلاس شما رو کپی کردم، ولی وقتی توی پروژه ی خودم mahdi رو میزنم کد رو اجرا نمیکنه ! مشکل از کجاس ؟
شما باید کلاسس را New کنید و به TextEditor تحویل دهید
Me.txtEditor.Document.FormattingStrategy = New Class1
به نظر من که خیلی هم کم بود و بدون این کنترلر بسیار بیشتر میشد، اصلاً رویداد TextChange یک TextBox در صورت اشتباه کوچکی در تغییر Text میتواند مدام فراخانی شود و در یک دور گرفتار شود و...کدهایی که برای این کار نوشتید دیدم، به نظر میرسید برای یه کلمه زیاد بود.
واضح است! کسی نمی آید 70 دستور If قرار دهد!من اگه بخوام همچین کاری رو برای 70 یا 80 کلمه یا شاید هم بیشتر به کار ببرم آیا راهی برای خلاصه تر شدن این کد هست ؟
ره حل حلقه For است. (در بحث رنگ بندی هم رد پایش مشهود است.)
یعنی شما باید یک قانون مشخص برای نیازهایتان پیدا کنید و یک کد مشخصی برای نیازتان بنویسید.
بعدت تمام حالات مختلف را در یک فایل xml یا آرایه ذخیره کنید تا بعداً کد شما بتواند در یک حلقه for همه موارد را چک کنید.
Ctrl+C/V کار میکند فقط منو ندارد، منو مورد نیاز و دلخواه را هم که خودتان به راحتی میتوانید اضافه کنید.سوال بعدی این که چه جوری میشه به کاربر امکان کپی، کات و پیست کردن نوشته های درون تکست ادیتور رو داد ؟
آیا امکان داره وقتی کاربر روی این کنترل داره کدها رو تایپ میکنه یه لیست هم زیر کد ظاهر بشه که تمام کد های مورد نظر رو در بر بگیره و کاربر بتونه آسون تر کد خودش رو بنویسه ؟کنترلر سیستم auocomplete (پنجره کوچکی و تکمیل کننده کمکی) هم با واسط ICompletionDataProvider و ICompletionData است