-2

このコード:

private void comboBoxFontSize_SelectedIndexChanged(object sender, EventArgs e) {
    rtbResults.Font.Size = Convert.ToInt32(comboBoxFontSize.SelectedItem);
}

...このエラーメッセージを生成します:"プロパティまたはインデクサー'System.Drawing.Font.Size'を割り当てることはできません-読み取り専用です"

アップデート

提案された修正を試みた後、実行時にこれを取得します。

System.FormatExceptionが処理されませんでしたMessage=入力文字列が正しい形式ではありませんでした。Source = mscorlib StackTrace:at System.Number.StringToNumber(String str、..。

わかりました。Convert.ToInt32()を使用していましたが、コンボボックスの最初の値は「8.25」でした。これは明らかにintではありません。

そこで、Convert.ToDouble()を試しましたが、コンパイルされません。

次に、インテリセンスのヒントで、「このメソッドを呼び出すと、常に'System.InvalidCastException'がスローされます」*

  • Convert.ToSingle()と同様に

では、コンボボックスの値を8.25から8に変更する必要がありますか?8.25がデフォルト値です...???

もう一度更新

私は週末に(PetzoldのWP7の本で)8.25が11に対応することを読みました。したがって、ここで参照される8.25は、フォントサイズ11に対応するピクセルであると思います。それでもかなり過度に誤解を招く/混乱させる)。

4

1 に答える 1

5

フォントが不変である原因...

フォントが不変なのはなぜですか?

使用する

rtbResults.Font = new Font(rtbResults.Font.FontFamily, Convert.ToInt32(comboBoxFontSize.SelectedItem), 
rtbResults.Font.Style)

または必要に応じて別のフォントコンストラクタ。

于 2012-06-01T16:03:54.770 に答える