- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的数据网格,其中列出了 SQLSERVER 表中的一堆记录。数据网格填充没有任何问题。我想单击一行并将相应的数据加载到我在它旁边创建的文本框中。到目前为止这么简单。
这是我的 cellclick 事件代码
private void dataGridVieworderitems_CellClick(object sender, DataGridViewCellEventArgs e)
{
{
//try
//{
//if (dataGridVieworderitems.SelectedRows.Count > 0) // make sure user select at least 1 row
{
string jobId = dataGridVieworderitems.SelectedRows[0].Cells[0].Value + string.Empty;
string standpack = dataGridVieworderitems.SelectedRows[0].Cells[1].Value + string.Empty;
string description = dataGridVieworderitems.SelectedRows[0].Cells[2].Value + string.Empty;
string price = dataGridVieworderitems.SelectedRows[0].Cells[3].Value + string.Empty;
string itemType = dataGridVieworderitems.SelectedRows[0].Cells[4].Value + string.Empty;
string notes = dataGridVieworderitems.SelectedRows[0].Cells[5].Value + string.Empty;
labelidvalue.Text = jobId;
labelstandpackvalue.Text = standpack;
labeldescriptionvalue.Text = description;
textBoxprice.Text = price;
labeltypevalue.Text = itemType;
textBoxnotes.Text = notes;
}
//}
//catch (Exception)
//{
// MessageBox.Show("something went wrong!");
//}
}
}
我特意注释掉了 If 语句和 try catch block 来生成错误..我收到以下错误..
System.ArgumentOutOfRangeException was unhandled HResult=-2146233086 Message=Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index ParamName=index .... ...
它是 WINFORM 和 c#.. 数据 GridView 有数据.. 但它说索引超出范围。有人可以指出我正确的方向吗?
这就是我填充网格的方式
public DataTable GetStaffCurrentOrderItems()
{
try
{
DataTable dtstaffcurrentorderlist = new DataTable();
string connString = System.Configuration.ConfigurationManager.ConnectionStrings["nav"].ConnectionString;
using (SqlConnection con = new SqlConnection(connString))
{
using (SqlCommand cmd = new SqlCommand("select [ID],standpack as [Item], item_description as [Description], '$'+convert(varchar(5),price) as Price,item_type as [Item Type],notes as [Notes] from tbl_staff_orders_items", con))
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
dtstaffcurrentorderlist.Load(reader);
}
con.Close();
}
return dtstaffcurrentorderlist;
}
catch (Exception)
{
return null;
}
}
最佳答案
在您的 cellClick
事件处理程序中检查是否像这样处理空值
if (dataGridVieworderitems.CurrentCell == null ||
dataGridVieworderitems.CurrentCell.Value == null ||
e.RowIndex == -1) return;
这将解决您的问题,因为它会在单击 GridView
的单元格时检查所有可能的空值。如果有除 null 之外的任何内容,则 else 部分将为您获取数据。
希望对您有所帮助!
关于c# - Winform Datagridview cellclick 错误 - 索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42990943/
我是 ExtJS 的新手,尝试使用 Grid 在 tabPanel 的每个选项卡内显示一些数据。已完成,但是当我尝试使用“cellClick”事件触发“警报”弹出窗口以显示单击的任何单元格的数据时,我
//FormLoad dgvTable.CellClick += new DataGridViewCellEventHandler(getValues); //somwhere in FormC
我是 c# 和 Visual Studio 的新手,我计划使用 datagridview 开发库存系统。当我测试它并使用 cellclick 事件时,它像 cellcontentclick 事件一样工
即使我们单击 DataGridView 的标题,单元格单击事件也会被触发。如何阻止它发射? 最佳答案 比较 RowIndex 和 ColIndex,如果它们的值为 -1(标题列/行索引),则忽略。 t
我正在尝试制作一个简单的文件应用程序(或文件资源管理器应用程序),并且我正在使用 QTableWidget 来显示文件和目录。当用户单击某个目录时,我希望程序跳转到该目录。我已经使用了 QTableW
我有一个包含多个列的 GridView。我的专栏之一是包含超链接的 TemplateField。 如果用户单击相应行中的任意位置,我希望“单击”该超链接。如果用户单击 Row1 的 Column2,我
我有一个简单的数据网格,其中列出了 SQLSERVER 表中的一堆记录。数据网格填充没有任何问题。我想单击一行并将相应的数据加载到我在它旁边创建的文本框中。到目前为止这么简单。 这是我的 cellcl
Windows Froms DataGridView 控件中的 CellClick 事件和 SelectionChanged 事件有什么区别? 选择更改事件究竟何时运行:在表单加载事件之前还是之后?
我是一名优秀的程序员,十分优秀!