Datagridview文本框事件处理程序

时间:2014-06-01 09:04:46

标签: c# datagridview

我陷入了这个烦人的问题,我很乐意为你提供帮助。

我有一个包含六列的DataGridView(一个是组合框,其他是文本框)。 我想处理textChange(文本框)事件和SelectedIndexChange事件(组合框), 但我一直得到这个错误,我不知道为什么。 这是错误: mscorlib.dll中出现“System.FormatException”类型的异常,但未在用户代码中处理 附加信息:输入字符串的格式不正确。

这是代码

        dataGridView1.EditingControlShowing += (sender, e) =>
            {

                if (dataGridView1.CurrentCell.ColumnIndex == 0)
                {
                    ComboBox cb = (ComboBox)e.Control;
                    cb.SelectedIndexChanged += (sender2, e2) =>
                        {
                            this.client.roaming[dataGridView1.CurrentCell.RowIndex].country = cb.Text;
                            //dictionaries.getTypeDict()[country.Name + dataGridView1.CurrentCell.RowIndex.ToString()].Invoke(Convert.ToString(cb.Text));
                        };
                }
                else
                {
                    TextBox tb = (TextBox)e.Control;
                    tb.TextChanged += (sender1, e1) =>
                    {
                        if (dataGridView1.CurrentCell.ColumnIndex == 1)
                        {
                            this.client.roaming[dataGridView1.CurrentCell.RowIndex].minutesIncomingAndOutcomingFromAbroadToIsrael = Convert.ToDouble(tb.Text);
                            //dictionaries.getTypeDict()[minutesIncomingAndOutcomingFromAbroadToIsrael.Name + dataGridView1.CurrentCell.RowIndex.ToString()].Invoke(Convert.ToDouble(tb.Text));
                        }
                        if (dataGridView1.CurrentCell.ColumnIndex == 2)
                        {
                            this.client.roaming[dataGridView1.CurrentCell.RowIndex].minutesLocalAbroad = Convert.ToDouble(tb.Text);
                            //dictionaries.getTypeDict()[minutesLocalAbroad.Name + dataGridView1.CurrentCell.RowIndex.ToString()].Invoke(Convert.ToDouble(tb.Text));
                        }
                        if (dataGridView1.CurrentCell.ColumnIndex == 3)
                        {
                            this.client.roaming[dataGridView1.CurrentCell.RowIndex].minutesAbroadToAbroad = Convert.ToDouble(tb.Text);
                            //dictionaries.getTypeDict()[minutesAbroadToAbroad.Name + dataGridView1.CurrentCell.RowIndex.ToString()].Invoke(Convert.ToDouble(tb.Text));
                        }
                        if (dataGridView1.CurrentCell.ColumnIndex == 4)
                        {
                            this.client.roaming[dataGridView1.CurrentCell.RowIndex].smsFee = Convert.ToDouble(tb.Text);
                            //dictionaries.getTypeDict()[smsFee.Name + dataGridView1.CurrentCell.RowIndex.ToString()].Invoke(Convert.ToDouble(tb.Text));
                        }
                        if (dataGridView1.CurrentCell.ColumnIndex == 5)
                        {
                            this.client.roaming[dataGridView1.CurrentCell.RowIndex].internetFee = Convert.ToDouble(tb.Text);
                            //dictionaries.getTypeDict()[internetFee.Name + dataGridView1.CurrentCell.RowIndex.ToString()].Invoke(Convert.ToDouble(tb.Text));
                        }


                    };
                }
            };

1 个答案:

答案 0 :(得分:1)

选项1:您尝试转换为double的字符串格式不正确。

选项2:此处描述:Input string was not in a correct format #2