PDA

View Full Version : پیدا کردن محل مکان نما در تکست باکس c#



miladfcb
دوشنبه 29 دی 1393, 22:31 عصر
سام دوستان ببخشید از ایجاد تاپیک جدید
من می خوام یه پروزه کوچیک بنویسم (مبتدیم)
ویرایشگر متن
1-پیدا کردن محل مکان نما در تکست باکس کدروش رو می خوام تکست با کسم مولتی لا ینه (محل افقی وعمودی)(x,y)
2-پیدا کردن سایز و نوع فونتی که کاربر در حال استفاده از اونه
3-رنگی که کاربر در حال نوشتن با اونه (نام رنگ) (ویا کد رنگ)
اگه می شه به صورت ساده توضیح بدین

rezayeman
سه شنبه 30 دی 1393, 10:19 صبح
از RichTextBox استفاده کن

miladfcb
سه شنبه 30 دی 1393, 21:22 عصر
از RichTextBox استفاده کن
میشه یکم بیشتر توضیح بدین باید چه کدهایی بزنم

بیتا حکمت
سه شنبه 30 دی 1393, 21:37 عصر
میشه یکم بیشتر توضیح بدین باید چه کدهایی بزنم

RichTextBox هم مث Textbox تو خود سی شارپ یک کنترل آماده است . کارش مث تکست باکس گرفتن متن هست اما امکانات بیشتری داره مثلا" می تونید باهاش متن دلخواه اتون رو رنگی کنید .
اما در مورد سوال اتون اینو بگم که متوجه نشدم چی میخواین .
وقتی کاربر تو ریچ باکس تایپ می کنه با همون فونتی تایپ میشه که برنامه نویس تعیین کرده . مگر اینکه کاربر قبل از اینکه تایپ کنه توسط FontDialog فونت دلخواهش رو انتخاب کنه
در این صورت هم خیلی راحت می تونید تشخیص بدین که از چه فونتی استفاده شده .

miladfcb
سه شنبه 30 دی 1393, 21:57 عصر
RichTextBox هم مث Textbox تو خود سی شارپ یک کنترل آماده است . کارش مث تکست باکس گرفتن متن هست اما امکانات بیشتری داره مثلا" می تونید باهاش متن دلخواه اتون رو رنگی کنید .
اما در مورد سوال اتون اینو بگم که متوجه نشدم چی میخواین .
وقتی کاربر تو ریچ باکس تایپ می کنه با همون فونتی تایپ میشه که برنامه نویس تعیین کرده . مگر اینکه کاربر قبل از اینکه تایپ کنه توسط FontDialog فونت دلخواهش رو انتخاب کنه
در این صورت هم خیلی راحت می تونید تشخیص بدین که از چه فونتی استفاده شده .



یعنی مثلا تو یه لیبل بزنه شما در حال تایپ با فونت...هستید
یا مثلا بزنه Cursor(ون علامت چشمک زنه تسکت باکس)ستون5خط2است

بیتا حکمت
سه شنبه 30 دی 1393, 22:26 عصر
فکر کنم منظورمو متوجه نشدین ، فرض کنید شما یه ریچ باکس به فرم اضافه کردین برنامه هم اجرا شد . چون کاربر هیچ فونتی انتخاب نکرده همیشه یه جور فونت هست ، یعنی همون فونت پیش فرض ریچ باکس ، به خاطر همین شما اول بگین که کاربر چطوری فونت اشو انتخاب می کنه ؟

miladfcb
سه شنبه 30 دی 1393, 22:36 عصر
فکر کنم منظورمو متوجه نشدین ، فرض کنید شما یه ریچ باکس به فرم اضافه کردین برنامه هم اجرا شد . چون کاربر هیچ فونتی انتخاب نکرده همیشه یه جور فونت هست ، یعنی همون فونت پیش فرض ریچ باکس ، به خاطر همین شما اول بگین که کاربر چطوری فونت اشو انتخاب می کنه ؟

توسط پنجره FontDialog

Saman_12
سه شنبه 30 دی 1393, 22:51 عصر
هر چند مطمئنم بحث شده ولی چون مورد اولش برای خودم جالب بود :


Int32 crpos = rtb.SelectionStart;
Int32 y = rtb.GetLineFromCharIndex(crpos);
Int32 linepos = rtb.GetFirstCharIndexFromLine(y);
Int32 x = (crpos - linepos);


Console.WriteLine(x.ToString() + " , " + y.ToString());


Font cfont = rtb.Font;
string fname = cfont.Name;
float fsize = cfont.Size;


Console.WriteLine(fname + " , " + fsize.ToString());



Color ccolor = rtb.ForeColor;
string cname = ccolor.Name;


Console.WriteLine(cname);


رویداد SelectionChanged هم به کار میاد.
اینا متودها برای تکست باکس هم همینطور هستند.

بیتا حکمت
چهارشنبه 01 بهمن 1393, 01:22 صبح
هر چند مطمئنم بحث شده ولی چون مورد اولش برای خودم جالب بود :


Int32 crpos = rtb.SelectionStart;
Int32 y = rtb.GetLineFromCharIndex(crpos);
Int32 linepos = rtb.GetFirstCharIndexFromLine(y);
Int32 x = (crpos - linepos);


Console.WriteLine(x.ToString() + " , " + y.ToString());


Font cfont = rtb.Font; string fname = cfont.Name;
float fsize = cfont.Size;


Console.WriteLine(fname + " , " + fsize.ToString());



Color ccolor = rtb.ForeColor;
string cname = ccolor.Name;


Console.WriteLine(cname);


رویداد SelectionChanged هم به کار میاد.
اینا متودها برای تکست باکس هم همینطور هستند.

سلام دوست عزیز ، امیدوارم از این گلایه ام ناراحت نشین ، کدهای مفیدی بودند اما این دوستمون که کد خواستند خودشون اشاره کردند که مبتدی ان ، مشکلی که حرفه های سایت در برخورد با ما مبتدی ها دارند اینکه کلی وقت و انرژی می زارن اما به این دقت نمی کنن که چیزی رو میگن در نهایت ما به خاطر دانش کافی نمی تونیم استفاده کنیم . بازم معذرت میخوام

بیتا حکمت
چهارشنبه 01 بهمن 1393, 01:30 صبح
اقا میلاد

1- یک عدد کنترل richTextBox رو به پروژه ات اضافه کن ، دو تا Label هم تو پروژه ات قرار بده ، یک button اضافه کن و یک fontDialog
2- روی باتن کلیک کن و این کد رو تو رویداد کلیک کپی کن


Font cfont = richTextBox1.Font; string fname = cfont.Name;
Color color = richTextBox1.ForeColor; string colorname = color.Name;
float fsize = cfont.Size;
label1.Text = "سایز فونت شما " + fsize.ToString();
label2.Text = "رنگی که استفاده می کنید : " + color.Name;




3- همونطور که اقا سامان گفتند روی رویداد richTextBox1_SelectionChanged این کدها رو بنویس



Font cfont = richTextBox1.Font; string fname = cfont.Name;
Color color = richTextBox1.ForeColor; string colorname = color.Name;
float fsize = cfont.Size;
label1.Text = "سایز فونت شما " + fsize.ToString();
label2.Text = "رنگی که استفاده می کنید : " + color.Name;





و نتیجه رو ببین .

miladfcb
چهارشنبه 01 بهمن 1393, 11:37 صبح
باتشکر از دوستانی که جواب دادند