私はComboBox
のフォームを持っています。私はこれをシステム上の利用可能なフォントで埋めて、これらのオプションの1つを選択させたいと思います。 データソースを使用したC#コンボボックスとVisual Studio 2013
ComboBox
をロードするために、この質問と回答を使用する:これは、現在、私のコードをある
Fill ComboBox with List of available Fonts
作品:
form.comboBox2.Items.Clear();
System.Drawing.Text.FontCollection fontcoll = new System.Drawing.Text.InstalledFontCollection();
foreach (FontFamily font in fontcoll.Families)
{
form.comboBox2.Items.Add(font.Name);
}
をしかし、今私は代わりにDataSourceプロパティを使用しようとしており、System.Drawing.Text.InstalledFontCollection
をプロジェクトにデータソースとしてインポートしました。ここで
は、デザイナーのコードです:
form.comboBox2.Text = "Times New Roman"
:
//
// comboBox2
//
this.comboBox2.DataSource = this.installedFontCollectionBindingSource;
this.comboBox2.FormattingEnabled = true;
this.comboBox2.Location = new System.Drawing.Point(16, 44);
this.comboBox2.Name = "comboBox2";
this.comboBox2.Size = new System.Drawing.Size(144, 21);
this.comboBox2.TabIndex = 9;
this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged);
は、その後、フォームの私の初期設定では、私はこのデフォルトとしてのTimes New Romanにフォント名を選択し設定することがあります私はこれがComboBox
を記入し、Times New Romanを選択するのに十分だと思ったが、明らかに十分ではない。 Times New Romanは表示されますが、ボックスは空です。コンボボックスを移入するデータソースの作り方)
1:私は助けを得るしたいと思いますどのような
?
2)ユーザーがボックスからエントリの1つを選択し、リストにない他の値を入力しないようにする簡単な方法はありますか(VBAユーザーフォームの「MatchRequired」プロパティと同様)?
ありがとうございます。
グレート! 2つの質問:1) 'System.Drawing.Text.InstalledFontCollection'コレクションをコンボボックスの' DataSource'プロパティにインポートすることもオプションではありませんか? 2)「Times New Roman」の代わりに「Timesが悲しい時」のように、ユーザーが新しい何かを入力しないようにする方法がありますか... – ib11
その間に私は第2の質問に本当に答えました。 ComboBoxStyle.DropDownList'これにより、リストがロックされ、セレクタとしてのみ表示されます。 – ib11
** 1)**新しいInstalledFontCollection()から 'Families'を使うべきです。Families' ** 2)**コンボボックスの 'DropDownStyle'を' DropDownList'に設定すると 'ComboBox'に入力できなくなります –