我有一个鼠标单击事件处理程序,它在我第一次选择时起作用但是..?
Posted
技术标签:
【中文标题】我有一个鼠标单击事件处理程序,它在我第一次选择时起作用但是..?【英文标题】:I have a Mouse Click Event handler which works when i select the first time but..? 【发布时间】:2013-04-23 13:22:08 【问题描述】:我在 C# 中有一个 DataGridView
,它与我的 Access 数据库连接。我在DataGridView
上看到了所有的书。我创建了一个鼠标单击事件处理程序来选择一行,而不是保存该行,如下所示:
private void Mouse_Click(object sender, MouseEventArgs e)
try
temp = dataGridView1.SelectedRows[0].Index.ToSt…
//This one is selecting the row. To do that select panel>event> on MouseClick write name and double click:
MessageBox.Show("You have selected the row " + temp);
catch
当我打开表单时它可以工作。但是,在将所选行保存到另一个数据库后,鼠标单击事件处理程序停止工作。换句话说,在保存第一个选定行后,当我回来选择另一行并保存到数据库时,鼠标单击事件处理程序不起作用。消息说行超出范围。
【问题讨论】:
Mouse Click Event handler does not work properly的可能重复 【参考方案1】:您没有提供太多与连接类型、事件处理程序以及更重要的是您保存/更新记录的方式相关的信息,所以我只是在这里猜测:您不会不小心覆盖了网格的 DataSource 吗?这是我唯一能想象到的这种行为(“行超出范围” - 这也假设事件仍然按预期工作,但函数中的代码无法再看到数据)。
【讨论】:
选择行后,我单击 SaveButton 将所选行保存到另一个有效的数据库中,但是当我想从我的 dataGridView1 中选择不同的书时,MouseClick 事件不起作用。下面是保存按钮的代码。 选择行后,我单击 SaveButton 将所选行保存到另一个有效的数据库中,但是当我想从我的 dataGridView1 中选择不同的书时,MouseClick 事件不起作用。下面是 SaveButton 的代码。我正在尝试发布代码,但它没有让我在这里发布部分代码:private void SaveButton(object sender, EventArgs e) InitializeComponent(); mycode = new leDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Desktop\data.accdb;Persist Security Info=False;");OleDbCommand command = new OleDbCommand();跨度> OleDbCommand command = new OleDbCommand(); command.CommandType = CommandType.Text; command.CommandText = "INSERT INTO Copy(BookName, AuthorName, ISBN, Quantity, Price) Values ('" + bookNameVariable[Convert.ToInt16(temp)] + "', '" + authorName[Convert.ToUInt32(temp)] + "','" + ISBN[Convert.ToInt16(temp)] + "','" + 数量[Convert.ToInt16(temp)] + "','" + 价格[Convert.ToInt16(temp)] + "' )";命令。连接=我的代码; mycode.Open(); command.ExecuteNonQuery();mycode.Close(); 在 SaveButton 中执行所有代码后尝试刷新/重新查询您的网格。最好将它添加为“Mouse_Click”中的最后一行代码(用于测试目的)。我唯一的猜测是,正如我在上面写的那样,网格的数据/数据源无效。以上是关于我有一个鼠标单击事件处理程序,它在我第一次选择时起作用但是..?的主要内容,如果未能解决你的问题,请参考以下文章
将 jqueryui 手风琴事件处理程序从“单击”动态更改为“鼠标悬停”
用于ComboBox项目选择的事件处理程序(选定项目未必更改)