我采用了这样的绑定下拉事件 /// <summary>
/// 给指定列的下拉框添加SelectedIndexChanged事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvPrinter_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
//给指定列的下拉框添加SelectedIndexChanged事件
if (dgvPrinter.CurrentCell.RowIndex != -1 && dgvPrinter.CurrentCell.ColumnIndex == 0)
{
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(v2_SelectedIndexChanged);
}
} /// <summary>
/// 分道号下拉事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void v2_SelectedIndexChanged(object sender, EventArgs e)
{
// 遍历出所选的行
DataRow[] rows = XmlInfoManager.GetPrintDate().Select("Id = '" + ((ComboBox)sender).SelectedValue.ToString() + "'"); // 设置在选择行的下拉框上
dgvPrinter.Rows[dgvPrinter.CurrentCell.RowIndex].Cells["PrinterNumber"].Style.NullValue = rows[0].ItemArray[1].ToString(); //这里写要处理的代码最后要把事件删除,不然会出问题
((ComboBox)sender).SelectedIndexChanged -= new EventHandler(v2_SelectedIndexChanged);
}
但是这样选的第一次可以起到作用然后把事件删除了 而现在焦点还在下拉框上再次点击没有激发dgvPrinter_EditingControlShowing这个事件,所以就没有下拉事件了 。。这个应该怎么办呢?
/// 给指定列的下拉框添加SelectedIndexChanged事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvPrinter_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
//给指定列的下拉框添加SelectedIndexChanged事件
if (dgvPrinter.CurrentCell.RowIndex != -1 && dgvPrinter.CurrentCell.ColumnIndex == 0)
{
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(v2_SelectedIndexChanged);
}
} /// <summary>
/// 分道号下拉事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void v2_SelectedIndexChanged(object sender, EventArgs e)
{
// 遍历出所选的行
DataRow[] rows = XmlInfoManager.GetPrintDate().Select("Id = '" + ((ComboBox)sender).SelectedValue.ToString() + "'"); // 设置在选择行的下拉框上
dgvPrinter.Rows[dgvPrinter.CurrentCell.RowIndex].Cells["PrinterNumber"].Style.NullValue = rows[0].ItemArray[1].ToString(); //这里写要处理的代码最后要把事件删除,不然会出问题
((ComboBox)sender).SelectedIndexChanged -= new EventHandler(v2_SelectedIndexChanged);
}
但是这样选的第一次可以起到作用然后把事件删除了 而现在焦点还在下拉框上再次点击没有激发dgvPrinter_EditingControlShowing这个事件,所以就没有下拉事件了 。。这个应该怎么办呢?
解决方案 »
- C#如何解析WORD文件把内容显示到richtextbox上
- 本地数据SQL Server Compact Edition 是不是可以不安装配置sql?
- ***如何修改文件夹图标?
- 请问静态类中的静态成员变量和非静态类中的静态成员变量有何区别
- c# 多个窗体release生成的exe不可用 求教
- 线程结束后如何自动通知主线程?
- .net急救问题
- 高分求学校财务预算或者财务软件的源代码(c#.vb皆可)分不够可以再加~~
- 我想实现textbox控件不能输入内容,但又想设它的readonly及enable属性,因为那样他们的颜色就成灰色的了。有什么方法能实现。
- 关于IIS一问
- linq中异常问题...
- C# Thread问题急求!!
我不是很了解winform 请能讲解的详细点不 感激不尽
winform 真的不是很熟悉。。哎。。帮帮我吧
dataGridView1.EndEdit();
if (dgvPrinter.CurrentCell.RowIndex != -1 && dgvPrinter.CurrentCell.ColumnIndex == 0)
{
((ComboBox)e.Control).SelectedIndexChanged -= new EventHandler(v2_SelectedIndexChanged);
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(v2_SelectedIndexChanged);
}