DataGridView
実行時にいくつかの列が取り込まれる がありますComboBoxColumn
。例えば、
var newCountryColumn = new DataGridViewComboBoxColumn();
newCountryColumn.HeaderText = "Country";
newCountryColumn.DataSource = CountryListArray.ToArray();
newCountryColumn.DisplayMember = "Name";
newCountryColumn.ValueMember = "Code";
等々。ここで、実行時にユーザーが開くファイルを選択すると、ファイルは行ごとに配列に解析されます。
var lines = File.ReadAllLines(path + "\\" + choosenFile);
foreach (string line in lines) {
numOfRecords++;
errorCounter = 0;
string[] items = line.Split('\t').ToArray();
int billState = headerIndex[0] - 1;
int billCountry = headerIndex[1] - 1;
int shipState = headerIndex[2] - 1;
int shipCountry = headerIndex[3] - 1;
for (int i = 0; i < headerIndex.Count; i++) {
int index = headerIndex[i];
/*Get the state and country codes from the files using the correct indices*/
Globals.Code = items[index - 1].ToUpper();
//If the code can't be found in either list
if (!CountryList.ContainsKey(Globals.Code) && !StateList.ContainsKey(Globals.Code)) {
errorCounter++;
if (errorCounter == 1){
dataGridView1.Rows.Add(items);
}
}
}
}
DataGridView
これで、コンボボックスがある場所までスクロールするときを除いて、うまく機能します。どうやらコードは、項目配列の値が既存のコンボボックス列に追加されるのを好まないようです。エラーダイアログが表示されます:
DataGridView で次の例外が発生しました: System.ArguementException: DataGridViewComboBoxCell 値が無効です。
項目配列の項目をコンボ ボックス列に表示できますか?