Làm cách nào để đặt văn bản của hộp văn bản thành in đậm khi chạy?


98

Tôi đang sử dụng biểu mẫu Windows và tôi có một hộp văn bản mà tôi thường muốn làm cho văn bản được in đậm nếu nó là một giá trị nhất định.

Làm cách nào để thay đổi đặc điểm phông chữ tại thời điểm chạy?

Tôi thấy rằng có một thuộc tính được gọi là textbox1.Font.Bold nhưng đây là một thuộc tính Chỉ nhận.

Câu trả lời:


181

Thuộc tính đậm của phông chữ chính nó là chỉ đọc, nhưng thuộc tính phông chữ thực tế của hộp văn bản thì không. Bạn có thể thay đổi phông chữ của hộp văn bản thành in đậm như sau:

  textBox1.Font = new Font(textBox1.Font, FontStyle.Bold);

Và sau đó quay lại một lần nữa:

  textBox1.Font = new Font(textBox1.Font, FontStyle.Regular);

1
cảm ơn! wow, điều đó dễ dàng hơn nhiều so với tôi tưởng tượng. Vì vậy, tôi đoán điều đó có nghĩa là một phông chữ giống như một chuỗi, một khi bạn tạo ra nó, bạn không thể thay đổi nó. bạn chỉ có thể khai báo một phiên bản mới của nó.
Diskdrive

2
Có, nó dường như hoạt động giống như chuỗi trong điều kiện không thể thay đổi trạng thái của nó sau khi được tạo, tức là nó không thay đổi được . Tuy nhiên, mặc dù có những bài báo MSDN đề cập đến việc Phông chữ là bất biến, tài liệu tham khảo thực tế về Phông chữ bản thân nó không nêu rõ điều này.
Tim Lloyd

cho một nút liên kết, điều này đã làm việc cho tôi: button.Font.Bold = true
deebs

Điều tương tự có thể được thực hiện cho một phần văn bản không? Ý tôi là tôi muốn chỉ làm nổi bật một phần của văn bản.
Anil

3

Tùy thuộc vào ứng dụng của bạn, bạn có thể muốn sử dụng chỉ định Phông chữ đó khi thay đổi văn bản hoặc tiêu điểm / không tập trung của hộp văn bản được đề cập.

Dưới đây là một ví dụ nhanh về những gì nó có thể trông như thế nào (dạng trống, chỉ với một hộp văn bản. Phông chữ chuyển sang đậm khi văn bản đọc 'đậm', không phân biệt chữ hoa chữ thường):

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

    private void RegisterEvents()
    {
        _tboTest.TextChanged += new EventHandler(TboTest_TextChanged);
    }

    private void TboTest_TextChanged(object sender, EventArgs e)
    {
        // Change the text to bold on specified condition
        if (_tboTest.Text.Equals("Bold", StringComparison.OrdinalIgnoreCase))
        {
            _tboTest.Font = new Font(_tboTest.Font, FontStyle.Bold);
        }
        else
        {
            _tboTest.Font = new Font(_tboTest.Font, FontStyle.Regular);
        }
    }
}

1

Bạn có thể sử dụng Extensionphương pháp để chuyển đổi giữa Kiểu thông thườngKiểu đậm như sau:

static class Helper
    {
        public static void SwtichToBoldRegular(this TextBox c)
        {
            if (c.Font.Style!= FontStyle.Bold)
                c.Font = new Font(c.Font, FontStyle.Bold);
            else
                c.Font = new Font(c.Font, FontStyle.Regular);
        }
    }

Và cách sử dụng:

textBox1.SwtichToBoldRegular();

0
 txtText.Font = new Font("Segoe UI", 8,FontStyle.Bold);
 //Font(Font Name,Font Size,Font.Style)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.