C# 如何在一個Datagridview 的 某一個cell裡面 綁定一個自訂的combobox

來源:互聯網
上載者:User

用CellEndEdit事件觸發函數去響應cell值的改變.
combbox綁定的問題,我把datagridview的那一列定義成DataGridViewComboBoxColumn,然後再把指定cell強制轉換為datagridviewcomboboxcell就可以綁定資料了.

 

// 你可以在DataGridView的EditingControlShowing事件中加入如下代碼,來給你的ComboxBox加一個事件,在這個事件中處理綁定的問題。
private void variousCostDgv3_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control.GetType().Equals(typeof(DataGridViewComboBoxEditingControl)))
{
DataGridViewComboBoxEditingControl editingControl = e.Control as DataGridViewComboBoxEditingControl;
editingControl.DropDownClosed += new EventHandler(editingControl_DropDownClosed);
}
}

// 然後,在這個事件處理函數中做綁定的處理,我這段代碼是動態改變一個cell的值,並修改對齊。你可以改成綁定新Cell的操作。

private void editingControl_DropDownClosed(object sender, EventArgs e)
{
DataGridViewComboBoxEditingControl ctl = sender as DataGridViewComboBoxEditingControl;
DataRowView drv = this.variousCostDgv3.Rows[ctl.EditingControlRowIndex].DataBoundItem as DataRowView;
drv["unit_name"] = ctl.Text;
drv["VARIOUS_COST_UNIT"] = CommonDataManager.GetChargeUnitData().GetCD(ctl.Text);
if (CommonDataManager.GetChargeUnitData().GetCD(ctl.Text).Equals(EstimateCommon.CHARGE_UNIT_ALL))
{
drv["number"] = "-";
drv["PEOPLE_NUM"] = 1;
this.variousCostDgv3["numberCol3", ctl.EditingControlRowIndex].ReadOnly = true;
this.variousCostDgv3["numberCol3", ctl.EditingControlRowIndex].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
else
{
drv["number"] = drv["PEOPLE_NUM"];
if (EstimateCommon.ESTIMATE_TYPE_REAL.Equals(mDsForInternal.Tables["CZ_ESTIMATE"].Rows[0]["ESTIMATE_TYPE"].ToString()))
{
this.variousCostDgv3["numberCol3", ctl.EditingControlRowIndex].ReadOnly = false;
}
this.variousCostDgv3["numberCol3", ctl.EditingControlRowIndex].Style.Alignment = DataGridViewContentAlignment.MiddleRight;
}
this.variousCostDgv3.Refresh();
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.