Thay đổi thuộc tính phông chữ trong VB.NET

Thay đổi thuộc tính phông chữ trong VB.NET

In đậm là "chỉ đọc" trong VB.NET. Bài viết này cho bạn biết làm thế nào để thay đổi điều đó.

Trong VB6, thật dễ dàng để thay đổi một phông chữ thành đậm. Bạn chỉ đơn giản là mã hóa một cái gì đó như Nhãn1.FontBold, nhưng trong VB.NET, thuộc tính Bold của đối tượng Phông chữ cho Nhãn là chỉ đọc. Vậy làm thế nào để bạn thay đổi nó?

Thay đổi thuộc tính phông chữ trong VB.NET với Windows Forms

Đây là mẫu mã cơ bản cho Windows Forms.

Riêng phụ BoldCheckbox_CheckedChanged (_
Người gửi ByVal là System.Object, _
ByVal e As System.EventArss) _
Xử lý BoldCheckbox.Checked Thay đổi
Nếu BoldCheckbox.CheckState = CheckState.Checked thì
TextToBeBold.Font = _
Phông chữ mới (TextToBeBold.Font, FontStyle.Bold)
Khác
TextToBeBold.Font = _
Phông chữ mới (TextToBeBold.Font, FontStyle.Regular)
Kết thúc nếu
Kết thúc phụ

Có nhiều hơn Nhãn1.FontBold, chắc chắn rồi. Trong .NET, phông chữ là bất biến. Điều đó có nghĩa là một khi chúng được tạo ra, chúng không thể được cập nhật.

VB.NET cung cấp cho bạn nhiều quyền kiểm soát hơn so với VB6 về những gì chương trình của bạn đang làm, nhưng chi phí là bạn phải viết mã để có được quyền kiểm soát đó. VB6 sẽ bỏ nội bộ một tài nguyên phông chữ GDI và tạo một tài nguyên mới. Với VB.NET, bạn phải tự làm điều đó.

Bạn có thể làm mọi thứ toàn cầu hơn một chút bằng cách thêm một tuyên bố toàn cầu ở đầu biểu mẫu của bạn:

Private fBold As New Font ("Arial", FontStyle.Bold)
Riêng tư không bình thường như phông chữ mới ("Arial", FontStyle.Regular)

Sau đó, bạn có thể mã:

TextToBeBold.Font = fBold

Lưu ý rằng khai báo toàn cầu hiện chỉ định họ phông chữ, Arial, thay vì chỉ sử dụng họ phông chữ hiện có của một điều khiển cụ thể.

Sử dụng WPF

Còn WPF thì sao? WPF là một hệ thống con đồ họa mà bạn có thể sử dụng với .NET Framework để xây dựng các ứng dụng trong đó giao diện người dùng dựa trên ngôn ngữ XML có tên XAML và mã này tách biệt với thiết kế và dựa trên ngôn ngữ .NET như Visual Basic. Trong WPF, Microsoft đã thay đổi quy trình một lần nữa. Đây là cách bạn làm điều tương tự trong WPF.

Riêng phụ BoldCheckbox_Checked (_
Người gửi ByVal là System.Object, _
ByVal e As System.Windows.RoutedEventArss) _
Xử lý BoldCheckbox. Kiểm tra
Nếu BoldCheckbox.IsChecked = True thì
TextToBeBold.Font WEight = Fontweights.Bold
Khác
TextToBeBold.Font WEight = Fontweights. Bình thường
Kết thúc nếu
Kết thúc phụ

Những thay đổi là:

  • Sự kiện CheckBox được kiểm tra thay vì CheckedChanged
  • Thuộc tính CheckBox là IsChecked thay vì CheckState
  • Giá trị thuộc tính là Boolean Đúng / Sai thay vì Enum CheckState. (Windows Forms cung cấp thuộc tính Đã kiểm tra Đúng / Sai ngoài CheckState, nhưng WPF không có cả hai.)
  • Fontweight là thuộc tính phụ thuộc của Nhãn thay vì FontStyle là thuộc tính của đối tượng Font.
  • Fontweights là một lớp Không thể thay thế và Bold là một giá trị tĩnh trong lớp đó

Phù !! Bạn có nghĩ rằng Microsoft thực sự đã cố gắng để làm cho nó khó hiểu hơn?