c#datagirdviewコントロール組み込みcomboxメソッドと埋め込みcomboxは、データベースデータをドロップダウンして編集し、comboxにロードできます

まず、ツールバーから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

おすすめ

転載: blog.csdn.net/hello_mr_anan/article/details/81448103
おすすめ