تغییر استایل لاین اول RichTextBox
#1
Note 
از زبان c#.net برای ساخت برنامه نوت پد استفاده کردم این برنامه شبیه به word هست تقریباً تمام امکانات قابل استفاده نوشته ام ،ولی مشکل اساسی این نیست.
مشکل من تیتر وپاراگراف هست که باید بطور خودکار بعد از اینتر زدن و رفتن به خط بعد خود برنامه نوع خط بالا که نوشته شده را تشخیص دهد که این کلمات نوشته شده عنوان است(بصورت توپر یا ضخیم عنوان را نمایش دهد) یا پاراگراف (اندازه فونت مثلا 13 و نوع فونت نازنین باشد) است ،هموطنان عزیزم میخوام به من کمک کنند!!!
یه دنیا ازشون ممنون میشم تا عمر دارم براشون دعا میکنم


پاسخ
#2
Note 
[CSHARP]
private void Capitalize_Bold_FirstLine(object sender, EventArgs e)
{
RichTextBox box = sender as RichTextBox;
if (box != null && box.Text != "")
{
// get the current selection text of the textbox
int ss = box.SelectionStart;
int sl = box.SelectionLength;
// get the position where the first line ends
int firstLineEnd = box.Text.IndexOf('\n');
if (firstLineEnd < 0)
firstLineEnd = box.Text.Length;

// split the lines
string[] lines = box.Text.Split('\n');
// capitalize the first line
lines[0] = lines[0].ToUpper();
// join them back and set the new text
box.Text = String.Join("\n", lines);
// select the first line and make it bold
box.SelectionStart = 0;
box.SelectionLength = firstLineEnd;
box.SelectionFont = new Font(box.Font, FontStyle.Bold);
// select the rest and make it regular
box.SelectionStart = firstLineEnd;
box.SelectionLength = box.Text.Length - firstLineEnd;
box.SelectionFont = new Font(box.Font, FontStyle.Regular);
// go back to what the user had selected
box.SelectionStart = ss;
box.SelectionLength = sl;
}
}

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
richTextBox1.TextChanged += Capitalize_Bold_FirstLine;
}
}[/CSHARP]

پاسخ
#3
Note 
MeeGo عزیز خیلی ممنون
میشه برنامه نوت پد با همین دستور بنویسی آپلود کنی؟؟؟؟؟؟

پاسخ
#4
Note 
کد کامل:

[CSHARP]
using System;
using System.Drawing;
using System.Windows.Forms;

namespace RTBFL
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Capitalize_Bold_FirstLine(object sender, EventArgs e)
{
RichTextBox box = sender as RichTextBox;
if (box != null && box.Text != "")
{
// get the current selection text of the textbox
int ss = box.SelectionStart;
int sl = box.SelectionLength;
// get the position where the first line ends
int firstLineEnd = box.Text.IndexOf('\n');
if (firstLineEnd < 0)
firstLineEnd = box.Text.Length;
// split the lines
string[] lines = box.Text.Split('\n');
// capitalize the first line
lines[0] = lines[0].ToUpper();
// join them back and set the new text
box.Text = String.Join("\n", lines);
// select the first line and make it bold
box.SelectionStart = 0;
box.SelectionLength = firstLineEnd;
box.SelectionFont = new Font(box.Font, FontStyle.Bold);
// select the rest and make it regular
box.SelectionStart = firstLineEnd;
box.SelectionLength = box.Text.Length - firstLineEnd;
box.SelectionFont = new Font(box.Font, FontStyle.Regular);
// go back to what the user had selected
box.SelectionStart = ss;
box.SelectionLength = sl;
}
}

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Capitalize_Bold_FirstLine(richTextBox1, e);
}
}
}
}

[/CSHARP]

پاسخ
#5
Note 
MeeGo نوشته است:کد کامل:

[CSHARP]
using System;
using System.Drawing;
using System.Windows.Forms;

namespace RTBFL
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Capitalize_Bold_FirstLine(object sender, EventArgs e)
{
RichTextBox box = sender as RichTextBox;
if (box != null && box.Text != "")
{
// get the current selection text of the textbox
int ss = box.SelectionStart;
int sl = box.SelectionLength;
// get the position where the first line ends
int firstLineEnd = box.Text.IndexOf('\n');
if (firstLineEnd < 0)
firstLineEnd = box.Text.Length;
// split the lines
string[] lines = box.Text.Split('\n');
// capitalize the first line
lines[0] = lines[0].ToUpper();
// join them back and set the new text
box.Text = String.Join("\n", lines);
// select the first line and make it bold
box.SelectionStart = 0;
box.SelectionLength = firstLineEnd;
box.SelectionFont = new Font(box.Font, FontStyle.Bold);
// select the rest and make it regular
box.SelectionStart = firstLineEnd;
box.SelectionLength = box.Text.Length - firstLineEnd;
box.SelectionFont = new Font(box.Font, FontStyle.Regular);
// go back to what the user had selected
box.SelectionStart = ss;
box.SelectionLength = sl;
}
}

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Capitalize_Bold_FirstLine(richTextBox1, e);
}
}
}
}

[/CSHARP]

کد بالا رو به برنامه اضافه کردم
ولی خط اول ما bold نمیشه و همنطور پارگراف ،مشکل از کجاست؟؟

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note جستجو در یک متن در سی شارپ arfanz 12 2,236 16-07-2014 ساعت 09:32
آخرین ارسال: Stack OverFlow
Note تغییر دایرکتوری reference The Arrow 1 367 02-05-2014 ساعت 08:28
آخرین ارسال: Daniel
Note دسترسی به هاست و تغییر یک فایل The Arrow 4 637 12-02-2014 ساعت 15:53
آخرین ارسال: xMAN
Note جستجو در متن The Arrow 0 339 08-01-2014 ساعت 18:53
آخرین ارسال: The Arrow
Note تغییر زبان پیشفرض ویندوز xMAN 0 318 10-12-2013 ساعت 19:28
آخرین ارسال: xMAN
Note سوال در مورد ساخت UserControl برای تغییر شکل فرم در سی شارپ The Arrow 5 1,106 22-09-2013 ساعت 10:07
آخرین ارسال: SOFTAFZAR
Note سوال : مبنای تغییر ورژن یک برنامه یا یک کتابخانه در چیست؟ The Arrow 1 383 16-09-2013 ساعت 13:25
آخرین ارسال: SAMAN ELITE
Note سوال : جستجوی یک کلمه در متن در سی شارپ The Arrow 1 704 16-06-2013 ساعت 20:03
آخرین ارسال: ScarFace
Note سوال : استفاده API های گوگل در جستجو در بقیه سایت - سی شارپ The Arrow 5 961 15-06-2013 ساعت 21:26
آخرین ارسال: The Arrow
Note سوال : نشان دادن عکس به جای متن در RichTextBox در سی شارپ The Arrow 5 810 14-05-2013 ساعت 19:12
آخرین ارسال: SOFTAFZAR

کاربرانِ درحال بازدید از این موضوع:   1 مهمان