1

Arrowユーザーがビューに新しい行を作成し、新しいArrowプロパティを入力することでクラスの新しいインスタンスを追加できるDataGridViewを含むGUIアプリケーションを作成しました。それらのプロパティの1つが呼び出されtransferType、文字列です。

ユーザーがtransferType設定フォームで有効なのリストを設定できるようにします。Properties.SettingsVisual Studioに組み込まれているconventツールを使用してアプリケーション設定を作成および管理し、設定を保存するために使用しています。

ユーザーがtransferType手動でフィールドに入力し、有効なのいずれにも一致しない場合にDataGridViewにエントリを拒否させるのではなくtransferTypes、有効なオプションが入力されたドロップダウンメニューを使用するようにDataGridViewの列を設定しようとしています。 。これを行うには、(GUIの構築に使用された)Visual Studios GUIデザインツールを使用して、列を編集し、[列の種類]をからDataGridViewTextBoxColumnに変更しましたDataGridViewComboBoxColumn。この変更によりDataSource、コンボボックスの選択項目にデータを入力するように選択できるので、[その他のデータソース]で設定を保存する[プロパティ]を選択しようとしましProperties.Settings.Defaultたが()、何らかの理由でVisualStudioで許可されませんそれを選択します。

DataSource次に、GUIの初期化後に、「」(転送タイプは4列目)という行を使用して、コードでコンボボックスの設定を試みまし((DataGridViewComboBoxColumn)arrowView.Columns[3]).DataSource = Properties.Settings.Default.validTransferTypes;たが、プログラムを実行すると、コンボボックスをクリックして試してみると、このエラーが発生します。 「ドロップダウン」するには:

DataGridVIewで次の例外が発生しました:System.ArgumentException:DataGridViewComboBoxCell値が無効です。このデフォルトのダイアログを置き換えるには、DataErrorイベントを処理してください。

OKを押すかウィンドウを終了するとすぐに、エラーがループして再表示されます。

設定を使用してコンボボックスにデータを入力するための合理的な方法が必要だと思いますが、その方法を理解できません。DataSourceまた、VisualStudioでusingを作成できない理由もわかりませんProperties。どんな助けでもいただければ幸いです。

(これも私の最初の投稿された質問ですので、批判に優しくしてください:))

更新:を使用((DataGridViewComboBoxColumn)arrowView.Columns[3]).DataSource = Properties.Settings.Default.validTransferTypes;するとコンボボックスに正しく入力されることがわかりましたが、コンボボックスをマウスで押すと、前述のエラーが発生します。

4

1 に答える 1

0

Properties.Settings.validTransferTypes を文字列として使用している場合、そのコンボボックスの値は単一の文字列値になります。コンボボックスに入力したい設定値が他にもありますか? コンボボックスが読み込んでいる単一の文字列以外に何も読み取ることができないため、エラーが発生しているようです。配列。

于 2012-07-19T14:03:29.947 に答える