Windows フォームとコントロールの国際フォント
国際アプリケーションでは、フォントを選択する推奨される方法は、可能な限りフォント フォールバックを使用することです。 フォント フォールバックは、文字が属するスクリプトがシステムによって決定されることを意味します。
フォント フォールバックの使用
この機能を利用するには、フォームやその他の要素の Font プロパティを設定しないでください。 アプリケーションでは、既定のシステム フォントが自動的に使用されます。これは、オペレーティング システムのローカライズされた言語と別の言語とは異なります。 アプリケーションを実行すると、オペレーティング システムで選択されているカルチャに適したフォントがシステムによって自動的に提供されます。
フォントスタイルを変更するためのフォントを設定しないというルールには例外があります。 これは、ユーザーがボタンをクリックしてテキスト ボックス内のテキストを太字で表示するアプリケーションにとって重要な場合があります。 そのためには、フォームのフォントに基づいてテキスト ボックスのフォント スタイルを太字に変更する関数を記述します。 この関数は、ボタンの Click イベント ハンドラーと FontChanged イベント ハンドラーの 2 つの場所で呼び出す必要があります。 関数が Click イベント ハンドラーでのみ呼び出され、他のコードによってフォーム全体のフォント ファミリが変更された場合、テキスト ボックスはフォームの残りの部分で変更されません。
Private Sub MakeBold()
' Change the TextBox to a bold version of the form font
TextBox1.Font = New Font(Me.Font, FontStyle.Bold)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Clicking this button makes the TextBox bold
MakeBold()
End Sub
Private Sub Form1_FontChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FontChanged
' If the TextBox is already bold and the form's font changes,
' change the TextBox to a bold version of the new form font
If (TextBox1.Font.Style = FontStyle.Bold) Then
MakeBold()
End If
End Sub
private void button1_Click(object sender, System.EventArgs e)
{
// Clicking this button makes the TextBox bold
MakeBold();
}
private void MakeBold()
{
// Change the TextBox to a bold version of the form's font
textBox1.Font = new Font(this.Font, FontStyle.Bold);
}
private void Form1_FontChanged(object sender, System.EventArgs e)
{
// If the TextBox is already bold and the form's font changes,
// change the TextBox to a bold version of the new form font
if (textBox1.Font.Style == FontStyle.Bold)
{
MakeBold();
}
}
ただし、アプリケーションをローカライズすると、特定の言語では太字のフォントが表示されないことがあります。 これが問題になる場合は、ローカライザーにフォントを太字から通常のテキストに切り替えるオプションを用意する必要があります。 ローカライザーは通常、開発者ではなく、ソース コードにアクセスできないため、リソース ファイルに対してのみ、このオプションをリソース ファイルで設定する必要があります。 これを行うには、Bold プロパティを true
に設定します。 これにより、フォント設定がリソース ファイルに書き込まれ、ローカライズ担当者が編集できるようになります。 その後、InitializeComponent
メソッドの後にコードを記述し、フォームのフォントに基づいてフォントをリセットしますが、リソース ファイルで指定されたフォント スタイルを使用します。
TextBox1.Font = New System.Drawing.Font(Me.Font, TextBox1.Font.Style)
textBox1.Font = new System.Drawing.Font(this.Font, textBox1.Font.Style);
関連項目
.NET Desktop feedback