Enable を false にするのもなんだかな..ということで調べてみたら
AutoCheck を False
で解決。名前が分かりにくい..おしごとのびぼうろくだったり...
AutoCheck を False
で解決。名前が分かりにくい..select COUNT(Field_Example) from TABLE_A where Field_Example is NULL
これだと0しかかえってこない。正しくは
select COUNT(Field_ID) from TABLE_A where Field_Example is NULL
(※ Field_ID の部分には主キーのフィールドをいれておけば大丈夫)
Object.Style.BackColor = Color.Gray
RGBで指定したいときに、以下のように指定することもできるObject.Style.BackColor = Color.FromArgb(224, 224, 224)
DataGridView1.Rows.Add()
だと、データグリッドの末尾に行が追加されるが、DataGridView1.Rows.Insert(iIndex)
で iIndex で指定した行の直前に行を挿入することができる。このとき、TALBE_A からデータを取得してコンボボックスには以下のように「Field_NAME」の項目を表示させつつも、項目を選択時には「Field_ID」の値を取得するようにしたい。TABLE_A: | Field_ID | Field_NAME | | 0001 | あああ | | 0002 | いいい | | 0003 | ううう | | 0004 | えええ | ...
このとき、TABLE_A からSELECTしたデータを直接コンボボックスに渡して、かつ表示する値と、コンボボックス選択時に取得する値を以下のように設定することができる。コンボボックスのアイテム: | あああ | | いいい | | ううう | | えええ | ...
データを取得する際は、以下のようになる。TABLE_A: Dim dt As DataTable 'データの取得 'SelectFromDB ...SQLを実行してDataTableを返す関数をどこかで定義 dt = SelectFromDB("select Field_ID, Field_NAME from TABLE_A order by Field_ID") 'ここでは、DataGridView1 の"ComboCell"という名前の列がコンボボックスになっている Dim comboCol As DataGridViewComboBoxColumn = Me.DataGridView1.Columns("ComboCell") 'データグリッドビューのコンボボックスにデータをバインド comboCol.DataSource = dt 'コンボボックスに表示されるのはTABLE_Aの「Field_NAME」のデータ comboCol.DisplayMember = "Field_NAME" 'コンボボックスの値として扱われるのは「Field_ID」のデータ comboCol.ValueMember = "Field_ID"
valueとFormattedValueを利用する点に注意。Dim dgvComboBox As DataGridViewComboBoxCell = _ DataGridView1.Rows(iRowNo).Cells("ComboCell") Dim iID As Integer = dgvComboBox.Value Dim strNAME As String = dgvComboBox.FormattedValue