1、声明 ComboBox ComBoxPsMode;
2、绑定配送模式下拉框
/// <summary>
/// 绑定配送模式下拉框
/// </summary>
private void BindComPsMode()
{
dataPSModeType = eCMyModule.eCMyData.SimpleExecuteDataSet("select PSMODEID,PSMODEMC from eCWMPSModeType ORDER BY PSModeID");//ComboBox数据源
ComBoxPsMode.Items.Clear();
for (int i = 0; i < dataPSModeType.Tables[0].Rows.Count; i++)
{
ComBoxPsMode.Items.Add(dataPSModeType.Tables[0].Rows[i]["PSMODEID"].ToString().Trim() + ":" + dataPSModeType.Tables[0].Rows[i]["PSMODEMC"].ToString().Trim());
}
}
3、ComBox的项改变后赋给单元格
private void ComBoxPsMode_SelectedIndexChanged(object sender, EventArgs e)
{
int k = ComBoxPsMode.SelectedIndex;
if (k > -1)
{
dGVeCSpYWXX.CurrentCell.Value = ComBoxPsMode.Items[k].ToString().Trim();
}
}
4、点datagridview后执行
if ((this.dGVeCSpYWXX.CurrentCell.ReadOnly == false) && (this.dGVeCSpYWXX.Columns[dGVeCSpYWXX.CurrentCell.ColumnIndex].Name.Trim() == "PSModeType"))
{
this.ComBoxPsMode.SelectedIndex = this.ComBoxPsMode.Items.IndexOf(dGVeCSpYWXX.Rows[dGVeCSpYWXX.CurrentCell.RowIndex].Cells["ColPsModeID"].Value.ToString().Trim() + ":" + dGVeCSpYWXX.Rows[dGVeCSpYWXX.CurrentCell.RowIndex].Cells["PSModeType"].Value.ToString().Trim()); //对combobox赋值
Rectangle R = dGVeCSpYWXX.GetCellDisplayRectangle(dGVeCSpYWXX.CurrentCell.ColumnIndex, dGVeCSpYWXX.CurrentCell.RowIndex, false); //获取单元格位置
ComBoxPsMode.SetBounds( R.X + dGVeCSpYWXX.Location.X-5 , R.Y + dGVeCSpYWXX.Location.Y-5 , R.Width, R.Height); //重新定位combobox.中间有坐标位置的转换
ComBoxPsMode.Visible = true;
ComBoxPsMode.Focus();
}
else
{
ComBoxPsMode.Visible = false;
}
5、窗体构造
public RevisionGoodsInfo()
{
InitializeComponent();
ComBoxPsMode = new ComboBox();
ComBoxPsMode.Name = "ComBoxPsMode";
ComBoxPsMode.SelectedIndexChanged+=new EventHandler(ComBoxPsMode_SelectedIndexChanged);
ComBoxPsMode.Visible = false;
ComBoxPsMode.DropDownStyle = ComboBoxStyle.DropDownList;
dGVeCSpYWXX.Controls.Add(ComBoxPsMode);
}
这篇博客详细介绍了如何在.NET Windows Forms的DataGridView控件中实现特定单元格显示ComboBox的功能。作者首先声明了一个ComboBox对象,然后绑定数据源并设置其在单元格中的显示和交互。当用户选择ComboBox的项时,会更新对应单元格的值。当用户点击dataGridView的特定列时,ComboBox会显示在单元格上方,并根据已选值进行定位和赋值。在窗体构造时,初始化ComboBox并设置其事件处理程序。

7708

被折叠的 条评论
为什么被折叠?



