まず、ツールバーからdatagirdviewをドラッグアンドドロップし、画像の選択に従って操作します。
選択が完了すると、ドロップダウンボックス付きのdatagirdviewが正常に追加され、データがバックグラウンドで読み込まれてバインドされます。ここでは、サーバーデータベースからドロップダウンデータを取得するサービスを作成しました。
現時点では、合計3つのボックスがあります。最初のボックスはサービスからデータを取得し、データテーブルを返します。
次に、this.Analy.ValueMemberが値フィールドを設定し、表示フィールドが下に設定されます。
以下は、データテーブルから2つのフィールドのみを取得するためのものです。これは別の方法でも実行できますが、理解したいだけです。
次に、comboxに割り当てられたデータビュータイプに変換されます。comboxが連続して見つかったので、このタイプはdataviewrowです。次に、テーブルから行を取得し、comboxに割り当ててから、ドロップダウンして
、この1つのキーワードを編集して追加します。 .dataGridView1.EditingControlShowing + = new System.Windows.Forms.DataGridViewEditingControlShowingEventHandler(this.EnabledComboBoxWrite);
次に、2つのメソッドにコードがあり、
自分で追加および変更できます。privatevoid EnabledComboBoxWrite(object sender、DataGridViewEditingControlShowingEventArgs e)
{
ComboBox cb = e。 ComboBoxとして制御;
if(cb!= null)
{
cb.DropDownStyle = ComboBoxStyle.DropDown;
cb.Validating + = new System.ComponentModel.CancelEventHandler(cb_Validating);
}
}
void cb_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
DataGridViewComboBoxEditingControl cbo = (DataGridViewComboBoxEditingControl)sender;
if (cbo.Text.Trim() == string.Empty) return;
DataGridView grid = cbo.EditingControlDataGridView;
object value = cbo.Text;
if (cbo.Items.IndexOf(value) == -1)
{
DataRow[] drs = Dtb_KYData3.Select("V_1_10000005='" + value+"'");
if (drs.Length > 0) return;
DataGridViewComboBoxColumn cboCol = (DataGridViewComboBoxColumn)grid.Columns[grid.CurrentCell.ColumnIndex];
DataTable dtv=Dtb_KYData3.Clone();
DataRow drv = dtv.NewRow();
DataRow drv3 = Dtb_KYData3.NewRow();
drv["V_1_10000005"] = value;
drv3["V_1_10000005"] = value;
drv["ID"] = value;
Dtb_KYData3.Rows.Add(drv3);
dtv.Rows.Add(drv);
DataView dv = new DataView(dtv);
foreach (DataRowView drvo in dv)
{
cbo.Items.Add(drvo);
cboCol.Items.Add(drvo);
grid.CurrentCell.Value = drvo;
}
}
}
}ドロップダウンを入力すると、この機能が完了し、入力したデータが自動的に追加されます。
プログラムのソースコードをダウンロード:https://download.csdn.net/download/hello_mr_anan/10633390