PDA

View Full Version : سوال: ادیتور سفارشی



immortalsoull
چهارشنبه 30 مرداد 1392, 17:29 عصر
سلام دوستان عزیز من می خواستم یک راهنمایی از همه بچه های گل این سایت بگیرم .
من تو فکر ساخت یک ایدتور حرفه ای بودم اما تو یکجا به مشکل بر خوردم !
اونم این که ... مثلا من می خواستم وقتی هر جای ادیتورم کاربر وارد کرد : program این نوشته یعنی program به رنگ آبی در بیاد یعنی تنها و تنها همین به رنگ آبی در بیاد بقیه سیاه باشند و فقط همین program نیست زیاده ولی اگه کسی طرحی داره بگه ممنون میشم تقریبا مثل ادیتور رvisual studio که مثلا وقتی وارد می کنی string این رشته به رنگ آبی در میاد ممنون میشم کمک کنید با تشکر ...

arefba
چهارشنبه 30 مرداد 1392, 19:09 عصر
خدمت شما
http://www.codeproject.com/Articles/37668/Multiple-Colored-Texts-in-RichTextBox-using-C

mousa1992
چهارشنبه 30 مرداد 1392, 20:13 عصر
myRichTextBox.Select( 0, 5 ); myRichTextBox.SelectionColor = Color.Green;

قسمت مورد نظرت رو select میکنی و با استفاده از خاصیت SelectionColor میتونی رنگ قسمت انتخابی رو تغییر بدی و یا با استفاده از SelectionFont فونت قسمت انتخابی رو تغییر بدی

immortalsoull
جمعه 01 شهریور 1392, 14:50 عصر
doostane aziz mamnon az pasokh shoma ama man hameye in haro emtehan karde boodam va in on chizi nist ke man mikham ! man mikham dar hal type in etefagh biyofte na ba zadane yek button mamnon misham ke komak konin

aliagamon
جمعه 01 شهریور 1392, 15:03 عصر
دستورو تو رویداد text_changed بنویس...

immortalsoull
جمعه 01 شهریور 1392, 17:24 عصر
aziz haminkaro kardam fkr kardi be aghle khodam nemirese ke to textchange benevisam ? vali bazam nashod khaheshan rahe hal begin

aliagamon
جمعه 01 شهریور 1392, 17:37 عصر
والا من یه کد ادیتور نوشته بودم تو از این تابع استفاده میکردم:

private void highlight()
{
string tokens = "(auto|double|int|struct|break|else|long|switch|cas e|" +
"enum|register|typedef|char|extern|return|union|con st|" +
"float|short|unsigned|continue|for|signed|void|defa ult|" +
" goto|sizeof|volatile|do|if|static|while|" +
"using|foreach|object|EventArgs|string|Console|Read |Write|Line|public|namespace|class|In|" +
"new)";
Regex rex = new Regex(tokens);
MatchCollection mc = rex.Matches(richTextBox1.Text);
int StartCursorPosition = richTextBox1.SelectionStart;
foreach (Match m in mc)
{
int startIndex = m.Index;
int StopIndex = m.Length;
richTextBox1.Select(startIndex, StopIndex);
richTextBox1.SelectionColor = Color.Blue;
richTextBox1.SelectionStart = StartCursorPosition;
richTextBox1.SelectionColor = Color.Black;
richTextBox1.Select(StartCursorPosition, 0);
richTextBox1.SelectionColor = Color.Black;

}
}

البته خیلی باگ داره(باگ اجرایی نه .... خطا هم نمیده اما یه باز استفاده کنین میفهمین چی میگم)....اینو تو رویداد text_chenged فراخوانی کن .....
میتونی با استفاده از همین یه چیز درست و حسابی بنویسی ....

immortalsoull
دوشنبه 04 شهریور 1392, 13:51 عصر
using khasi nabayad anjam dad ? age hast esmesho baram benevis ...

aliagamon
دوشنبه 04 شهریور 1392, 14:01 عصر
فکر کنم فقط using System.Text.RegularExpressions رو میخواد

immortalsoull
دوشنبه 04 شهریور 1392, 14:02 عصر
دادش دمت گرم ممنون از این طرحت خوشحال شدم ممنون :لبخند:

immortalsoull
دوشنبه 04 شهریور 1392, 14:07 عصر
؟داداش میشه کار با foreach را برام توضیح بدی

aliagamon
دوشنبه 04 شهریور 1392, 14:19 عصر
حلقه ای هست که بیشتر واسه حرکت تو اعضای یک ارایه .....یا یه چیزی تو این مایه استفاده میشه

immortalsoull
دوشنبه 04 شهریور 1392, 14:22 عصر
داداش می دونی چجوری می شه لاین نامبر درست کرد ؟ همین که شماره خط هارا می نویسه

aliagamon
دوشنبه 04 شهریور 1392, 14:31 عصر
این کارتو راه میندازه ....اما میتونی تو اینترنت بگردی دنبالش (قشنگ تر از این هم باید باشه )

immortalsoull
دوشنبه 04 شهریور 1392, 14:35 عصر
damet garm dadash

immortalsoull
دوشنبه 04 شهریور 1392, 14:36 عصر
ye tozihe kochiki rajebe estefadash mitoni bedi ?

aliagamon
دوشنبه 04 شهریور 1392, 14:39 عصر
تو پروژه از منوی add و add existing item اضافش کنین یه بار برنامه رو build کنین بعد میتونید ازش استفاده کنین...میاد تو toolbox بخش custom components ....با اسم(فکر کنم)linenumber for richtextbox

immortalsoull
دوشنبه 04 شهریور 1392, 14:45 عصر
chand ta error dare vasat mizaram bebin bayad chikar konam ?
in name haro nemishnase ...
constans
DateAndTime
Strings
bayad che konam ?

error kamel ine :

the name "constans" does not exist in the current context

aliagamon
دوشنبه 04 شهریور 1392, 14:57 عصر
والا اینا که هیچ کدوم تو کد من نیستن...
اما اولی احتمالا const ans بوده چسبیده ....
دومی هم معلوم نیست ... سومی هم معلوم نیست...
یا ارور ها و اون قسمت کد رو بزارین یا پروژه رو...

immortalsoull
دوشنبه 04 شهریور 1392, 15:02 عصر
code project ro baraton mizaram be tartip error :

string[] zSplit = zParent.Text.Split(Constants.vbCrLf.ToCharArray()) ;

TimeSpan zTimeSpan = new TimeSpan(DateAndTime.Now.Ticks);

zStartIndex = Math.Max(0, Math.Min(zParent.Text.Length - 1, zParent.Text.Substring(0, zStartIndex).LastIndexOf(Strings.Chr(10)) + 1))

aliagamon
دوشنبه 04 شهریور 1392, 15:10 عصر
code project ro baraton mizaram be tartip error :

string[] zSplit = zParent.Text.Split(Constants.vbCrLf.ToCharArray()) ;

TimeSpan zTimeSpan = new TimeSpan(DateAndTime.Now.Ticks);

zStartIndex = Math.Max(0, Math.Min(zParent.Text.Length - 1, zParent.Text.Substring(0, zStartIndex).LastIndexOf(Strings.Chr(10)) + 1))
فکر میکنم خط دوم این باید باشه... DateTime.Now.Ticks بازم معلوم نیست ممکنه یه جای دیگه یه DateTime تعریف کرده باشه ولی احتمالا همینه...

immortalsoull
دوشنبه 04 شهریور 1392, 15:14 عصر
DateTime Dorost Shod Ama Hanooz Strings.chr dorost nashode va constants

immortalsoull
دوشنبه 04 شهریور 1392, 15:19 عصر
dadash dorost shod moshkel az shoma nabod moshkel az yeki refrencs ha bood khob alan drag&drop kardam ro form bayad chikar konam ?

immortalsoull
دوشنبه 04 شهریور 1392, 15:20 عصر
dadash ensafan damet garm kheyli khoshhalam kardi damet garm age komaki bood dar khedmatam :)

aliagamon
دوشنبه 04 شهریور 1392, 15:24 عصر
خواهش میکنم...-_^
اون دوتا مورد دیگه رو نمیشه از یه خط فهمید ...

immortalsoull
دوشنبه 04 شهریور 1392, 18:14 عصر
na dadash kolan dorost shod on 2ta irad az yek refrenc bood ke khodam add kardam bad dorost shod binazir sakhti damet garm vaghean khoshgel bood
Dar harsorat damet garm komaki khasti ke az daste man bar miyomad dar khedmatam :لبخندساده: