2011-02-08 3 views
15

ラベルと[オプション]ボタンがあるフォーム。ボタンをクリックすると、新しいフォームが2つのラジオボタン 'Font1'と 'Font2'と2つのボタン 'Apply'と 'Cancel'で開きます。ラジオボタンの1つを選択して[適用]をクリックすると、最初のフォームのラベルがフォントフェイスを変更します。問題は、TahomaからArialや他のフォントのフォントのようにフォントをどのように変更するかです。その最初のフォーム上のラベルのC#ラベルのフォントを変更する方法

private void btnApply_Click(object sender, EventArgs e) 
{ 
    if (radioFont1.Checked) 
    { 
     mainForm.lblName.Font.Name = "Arial"; 'wrong attempt 
    } 
    this.DialogResult = DialogResult.OK; 
} 

宣言:

オプションがあればがクリックされた適用ボタン、用のコード==真dialogresult.okを返し、最初のフォーム上のラベルのフォントを変更しますを形成します...

public static Label lblName = new Label(); 

private void mainForm_Load(object sender, EventArgs e) 
{ 
    lblName = lblBarName; 
} 

答えて

31

:それは第二の形式に表示されますFontは不変オブジェクトであるとしてなど、Font.XYZPropertyは、読み取り専用なので、あなたはそれを置き換えるために新しいFontオブジェクトを指定する必要があります。

mainForm.lblName.Font = new Font("Arial", mainForm.lblName.Font.Size); 

は、さらにオプションのため Fontクラスのコンストラクタを確認してください。

それが作成されています一度あなたがフォントを変更することはできません
+0

フォント「Arialの」をしませんサポートスタイルは「Regular」です。どういう意味ですか? – TheEnd

+0

フォント全体が不変です。 Nameプロパティだけでなく、 –

+0

@Aaron - すべてのプロパティを推論するために 'Font.XYZProperty'と答えました。私はそれを説明する言葉を忘れていたので、私に思い出させるために感謝します:)。 – GenericTypeTea

8

- あなたは新しいものを作成する必要があります。

mainForm.lblName.Font = new Font("Arial", mainForm.lblName.Font.Size); 
+0

私の質問に答える時間をとってくれてありがとう。 – TheEnd

4

あなたは新しいフォントを作成する必要が

mainForm.lblName.Font = new Font("Arial", mainForm.lblName.Font.Size); 
+0

私の質問に答える時間をとってくれてありがとう。 – TheEnd

関連する問題