日期:2014-05-20  浏览次数:20845 次

DataGridView使用问题
有个销售表如下所示:

产品名称 销售数量

现在一个DataGridView控件与这个表关联,产品名称这一列希望做成下拉列表形式,与另一产品表关联,从产品表中读取所有的项目)

请问怎么做方便?谢谢!

------解决方案--------------------
可以把产品名称放在一个控件中 如:Combox 然后把根据产品名称查询出来的数据在DataGridView上显示
------解决方案--------------------
探讨
可以把产品名称放在一个控件中 如:Combox 然后把根据产品名称查询出来的数据在DataGridView上显示

------解决方案--------------------
另外一个表记录产品的详细信息,当查询某个产品时,把所有的信息都显示在DataGridView上
------解决方案--------------------
什么效果? 上图
------解决方案--------------------
在我的空间中 可以上传图片
------解决方案--------------------
UP, 有没有人知道啊,比较简单方便一点的方法,谢谢!
------解决方案--------------------
http://blog.csdn.net/denqh/article/details/7016534
------解决方案--------------------
ls正解 预先做好一个下拉框 放在DataGridView内 this.dgData.Controls.Add(cmbName);

//单击cell时触发 下拉框弹出
private void dgData_CellClick(object sender, DataGridViewCellEventArgs e)
{
//MessageBox.Show(e.ColumnIndex.ToString());
if ((bAdd == true || bModify == true) && (e.RowIndex == this.dgData.Rows.Count - 1 && e.ColumnIndex >= 0))
{
//把下拉框放到DataGridView中
try
{
if (this.dgData.Columns[e.ColumnIndex].Name == "InsName")
{

if ((e.RowIndex == (dgData.Rows.Count - 1) && bAdd == true) || (iModifyIndex == e.RowIndex && bModify ==true ))
{
Rectangle rect = dgData.GetCellDisplayRectangle(dgData.CurrentCell.ColumnIndex, dgData.CurrentCell.RowIndex, false);
cmbName.Text = dgData.CurrentCell.Value.ToString();
cmbName.Left = rect.Left;
cmbName.Top = rect.Top;
cmbName.Width = rect.Width;
cmbName.Height = rect.Height;
cmbName.Visible = true;
}

}
else
{
cmbName.Visible = false;
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
}
------解决方案--------------------
楼上都说的很清楚了,帮顶。
------解决方案--------------------
Combox 然后把根据产品名称查询出来的数据在DataGridView上显示
保存名称的ID 保证能回传的 !