重写datagrid的模板列,,然后写一列dropdownlist;将你的dropdownlist与数据库中需绑定的表绑定;赋datagrid的mapping;

解决方案 »

  1.   

    private ComboBox comTxt;
    private void dgrBz_TextCellGotFocus(object sender, System.EventArgs e)
    {
    try
    {

    txtBox=(DataGridTextBox)sender;
    txtBox.ReadOnly=false;
    txtBox.Controls.Clear();
    txtBox.DataBindings.Clear();
    txtBox.DataBindings.Add("Text",dgrBz.Source,txtBox.Tag.ToString().Trim());

    if(txtBox.Tag.ToString().Trim()=="是否使用")
    {
    InitComListTxt(txtBox,new string[]{"是","否"});
    return;
    }

    txtBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D ;
    txtBox.BringToFront ();
    txtBox.Focus();
    }
    catch(Exception ex)
    {
    Eric.Common.YHJMessage.ErrorMsg(ex.Message+"--"+ex.Source);
    }
    }
    private void InitComListTxt(DataGridTextBox txt,string[] Items)
    {
    comTxt = new System.Windows.Forms.ComboBox();
    comTxt.Cursor = System.Windows.Forms.Cursors.Arrow;
    comTxt.Dock = DockStyle.Fill;
    comTxt.DropDownStyle = ComboBoxStyle.DropDownList;
    comTxt.Items.Clear();
    comTxt.Items.AddRange(Items);
    txt.Controls.Add(comTxt);
    txt.BorderStyle = BorderStyle.None;
    comTxt.Text = txt.Text.Trim();
    comTxt.BringToFront();
    comTxt.Validated += new EventHandler(this.comListTxt_Validated);
    comTxt.Focus();
    }



    private void comListTxt_Validated(object sender,EventArgs e)
    {
    try
    {
    txtBox.Text = comTxt.Text;
    }
    catch{}
    }
      

  2.   

    第一步  用FindCtrols  找到datagrid 中的dropdownlist
    第二步  榜定dropdownlist