winform下面datagridview的下拉菜单加载问题。
有一个datagridview,里面只有2列,都是下菜单。而且根据第一列下拉菜单选项加载第二列的下拉菜单,现在问题如何获得第二列的这个下拉控件。
谢谢
[解决办法]
你把第二列加个RowCommand,比如RowCommand = "GetCommand"
然后在GridView_RowCommand事件中这样获取第二列的下拉控件:
GridView.Rows[Int32.Parse(e.CommandArgument.ToString())].Cells[1];
[解决办法]
可以在dataGridView 的EditingControlShwoing事件中写
- C# code
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (sender != null) { if(((DataGridView)sender).SelectedCells[0].ColumnIndex==0) //编辑的是第0列 { //设置第一列的数据源 //((ComboBox)e.Control).DataSource = ds.Tables[0]; //((ComboBox)e.Control).DisplayMember = "Display"; //((ComboBox)e.Control).ValueMember = "Value"; ////当DataGridView中的ComboBox值变化时,生成如下事件 ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(DataGridViewCombox_SelectedIndexChanged); } } }/// <summary> /// ////当DataGridView中的ComboBox值变化时触发如下事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataGridViewCombox_SelectedIndexChanged(object sender, EventArgs e) { if (sender != null&&dataGridView1.SelectedCells[0].ColumnIndex==0)//确定发生值变化的是第0列。可根据实际情况调整。 { int rowIndex =dataGridView1.SelectedCells[0].RowIndex; //获取第rowIndex行,第1列的Cell DataGridViewComboBoxCell dgvcbc=(DataGridViewComboBoxCell) dataGridView1.Rows[rowIndex].Cells[1]; dgvcbc.Items.Clear();//清空DataGridViewComboxCell ///////////////////往里填充新的数值。 for (int i = 0; i < 10; i++) { dgvcbc.Items.Add(((ComboBox)sender).SelectedItem.ToString() + i.ToString()); } } }