Sau khi xem qua có thể là 30-50 bài viết về vấn đề này, tôi cuối cùng đã được thể đưa ra một giải pháp mà thực sự hoạt động! Vui lòng làm theo các bước theo thứ tự:
1.) Bao gồm tệp phông chữ (trong trường hợp của tôi là tệp ttf) trong tài nguyên ứng dụng của bạn. Để thực hiện việc này, hãy nhấp đúp vào tệp "Resources.resx".

2.) Chọn "Thêm tài nguyên" tùy chọn và nhấp vào mũi tên xuống. Chọn tùy chọn "Thêm tệp hiện có". Bây giờ, tìm kiếm tệp phông chữ của bạn, chọn tệp đó và nhấp vào OK. Lưu tệp "Resources.resx".

3.) Tạo một hàm (nói, InitCustomLabelFont()), và thêm đoạn mã sau vào nó.
//Create your private font collection object.
PrivateFontCollection pfc = new PrivateFontCollection();
//Select your font from the resources.
//My font here is "Digireu.ttf"
int fontLength = Properties.Resources.Digireu.Length;
// create a buffer to read in to
byte[] fontdata = Properties.Resources.Digireu;
// create an unsafe memory block for the font data
System.IntPtr data = Marshal.AllocCoTaskMem(fontLength);
// copy the bytes to the unsafe memory block
Marshal.Copy(fontdata, 0, data, fontLength);
// pass the font to the font collection
pfc.AddMemoryFont(data, fontLength);
Phông chữ tùy chỉnh của bạn hiện đã được thêm vào PrivateFontCollection.
4.) Tiếp theo, gán phông chữ cho Nhãn của bạn và thêm một số văn bản mặc định vào nhãn.
//After that we can create font and assign font to label
label1.Font = new Font(pfc.Families[0], label1.Font.Size);
label1.Text = "My new font";
5.) Chuyển đến bố cục biểu mẫu và chọn nhãn của bạn.Nhấp chuột phải vào nó và chọn "Thuộc tính". Tìm thuộc tính "UseCompatibleTextRendering" và đặt thành "True".
6.) Nếu cần thiết, bạn có thể nhả phông chữ sau khi chắc chắn rằng nó không bao giờ được sử dụng lại. Gọi số PrivateFontCollection.Dispose() method, sau đó bạn có thể gọi Marshal.FreeCoTaskMem (dữ liệu) một cách an toàn. Nó là khá phổ biến để không bận tâm và để lại các font tải cho cuộc sống của ứng dụng.
7.) Chạy ứng dụng của bạn. Bây giờ bạn sẽ thấy rằng bạn đã đặt phông chữ tùy chỉnh cho nhãn đã cho.
Chúc mừng!
** UseCompatibleTextRendering ** là không cần thiết nếu bạn đăng ký font với ** AddFontMemResourceEx() **. Như một phần thưởng, phông chữ cũng trở nên có thể sử dụng với TextBoxes và các điều khiển khác. Xem [câu trả lời này] (http://stackoverflow.com/a/1956043/25312) và [tài liệu MSDN] (https://msdn.microsoft.com/en-us/library/dd183325 (v = vs.85) .aspx). – SWB
Điều này có thể được thêm vào thuộc tính của điều khiển để chọn một trong các phông chữ được nhúng hoặc phông chữ thông thường không? Ví dụ: 'private Font m_FontFace = UserControl.DefaultFont; công khai Font FontFace {get {return m_FontFace; } đặt {m_FontFace = giá trị; }} ' –
Đề xuất nhỏ để sử dụng trong thế giới thực, đảm bảo FreeCoTaskMem nằm trong khối Cuối cùng, vì vậy trong trường hợp ngoại lệ, bộ nhớ đệm sẽ được giải phóng. – Rushyo