2011-10-28 41 views
10

Tôi muốn làm một trình soạn thảo văn bản, nơi tôi có thể đậm, thay đổi màu sắc vv vvLàm thế nào để làm cho một số văn bản in đậm trong một hộp văn bản giàu C#

Tôi tìm thấy mã này để làm việc khoảng:

public static void BoldSelectedText(RichTextBox control) 
{ 
    control.SelectionFont = new Font(control.Font.FontFamily, control.Font.Size,   FontStyle.Bold); 
} 

Nhưng khi tôi cố gắng nhập nhiều chữ cái hơn vào rtf, nó vẫn in đậm ..

Làm cách nào để chỉ văn bản được chọn sẽ in đậm và dòng tiếp theo sẽ không trừ khi tôi chọn văn bản và nhấn "Make Nút "đậm".

Trả lời

14

Bạn nên đặt phông chữ sau khi chọn phông chữ gốc.

Nếu bạn muốn, bạn có thể lưu SelectionStartSelectionLength và gọi phương thức Select để chọn lại văn bản.

// Remember selection 
int selstart = control.SelectionStart; 
int sellength = control.SelectionLength; 

// Set font of selected text 
// You can use FontStyle.Bold | FontStyle.Italic to apply more than one style 
control.SelectionFont = new Font(control.Font, FontStyle.Bold); 

// Set cursor after selected text 
control.SelectionStart = control.SelectionStart + control.SelectionLength; 
control.SelectionLength = 0; 
// Set font immediately after selection 
control.SelectionFont = control.Font; 

// Reselect previous text 
control.Select(selstart, sellength); 

cách này văn bản vẫn được chọn và phông chữ sau đó vẫn đúng.

+0

thx, đã hoạt động :) – chrs

+0

Bạn có biết tôi có thể in đậm và in nghiêng văn bản không? – chrs

+1

http://stackoverflow.com/questions/4198429/substract-flag-from-fontstyle-toggling-fontstyles-c đã giúp – chrs

Các vấn đề liên quan