勇哥注:
这个问题勇哥在网上找了许久。
假设A、B单元格都是下拉DataGridViewComboBoxColumn。
我想A单元格选中一个内容,B单元格进行刷新列表。
如果是DataGridView默认设置下,你会发现:CellEndEdit、CellClick、CellMouseDown、CellMouseUp这些都做不到完美的效果。
最多是能做到点A后,然后点击一下B单元格,才能看到刷新效果。
本文主题困难的原因是:
单元格编辑完成内容后,这个单元格仍然是“正在编辑状态”,并没有进入“单元格编辑完成状态”你得点击另一个单元格,或者按一下回车、F4(依EditMode设定)等等,才能把状态切换到“单元格编辑完成状态”
另外,如果你的单元格处于“正在编辑状态”,那么取它的value,得到的是之前的值,而不是当前你填写的值。
控件并没有一个事件是 “combox完成选择”。你得自己动手创造它。
以上这些艰难的地方也只有研究过的人才能秒懂的。。。。它还真不简单。。。
勇哥参考了网上的资料,编写了下面的代码:
源码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
ComboBox _dgv;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
for(int i=0;i<6;i++)
{
dataGridView1.Rows.Add();
dataGridView1[0, i].Value = i + 1;
}
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if(dataGridView1.CurrentCell.ColumnIndex==1 && dataGridView1.CurrentCell.RowIndex!=-1)
{
_dgv = e.Control as ComboBox;
_dgv.SelectedIndexChanged -= new EventHandler(dgv_selectIndexChanged);
_dgv.SelectedIndexChanged += new EventHandler(dgv_selectIndexChanged);
}
}
private void dgv_selectIndexChanged(object sender,EventArgs e)
{
switch(_dgv.Text)
{
case "计算机01班":
dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value = "李少华";
dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value = "第1名";
break;
case "计算机02班":
dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value = "张妙音";
dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value = "第2名";
break;
case "计算机03班":
dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value = "罗辑";
dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value = "第3名";
break;
case "计算机04班":
dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value = "无名";
dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value = "第4名";
break;
}
}
}
}
源码下载:
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

