dataGridView选中一行为起点,另外在选中一行为终点,怎么获取起点到终点的所有数据 ?(winform))
dataGridView选中一行为起点,另外在选中一行为终点,怎么获取起点到终点的所有数据 ?求求代码?private void 终点ToolStripMenuItem1_Click(object sender, EventArgs e)
{
int end = dataGridView1.CurrentRow.Index; //获取索引
int begin = Convert.ToInt32(txtIndex.Text);
ArrayList index = new ArrayList();
DataTable table = new DataTable();
for(int i = begin; i <= end; i++)
{
table.Rows.Add(new object[]{ dataGridView1.Rows[i].Cells[0].Value, dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[4].Value });
}
index.Add(table);
dataGridView1.DataSource = index;
}这样写实在有问题。求高手帮帮忙 --------------------编程问答-------------------- 将dataGridView1设为可多选,选好开始位置后,在结束位置按Shift + 点击 --------------------编程问答-------------------- 你的数据如果有排序过的那就好办了,
假如按照 ID排序的 你选择了一行 获取他的ID1,然后再选择终点 同样获得ID2
然后 datagridview 的数据源 dt.select(ID 在 ID1 和ID2 之间就可以啦 ) --------------------编程问答-------------------- int begin = Convert.ToInt32(txtIndex.Text);
//这是选择开始的我把它放到txtbox里面了。在这里取出来 --------------------编程问答-------------------- dataGridView1.selectrows就是选中的行 --------------------编程问答--------------------
这我知道是选中的行。你们应该没听清楚我要实现的效果吧。
效果如下:dataGridView1有很多数据,我选中一行用ContextMenuStrip有2个选项第一是设为起点,第二是终点,我选中一行设为起点,然后再选中一行设为终点,我现在需要的得到起点到终点的数据,我现在的做法是:获得起点的行的索引,在获取终点的索引,然后for循环这里面起点到终点的数据。然后我又想把数据从新添加到dataGridView1,对我来说这个是难点。求各位求助。 代码已给出。
--------------------编程问答-------------------- 数据取得的思路没错啊,最后重新绑定的时候用dataGridView1.DataSource = table;? --------------------编程问答--------------------
但是这个会出错的。
table.Rows.Add(new object[]{ dataGridView1.Rows[i].Cells[0].Value, dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[4].Value });
输入数组长度大于此表中的列数。 --------------------编程问答-------------------- for(int i = begin; i <= end; i++)
{
table.Rows.Add(new object[]{ dataGridView1.Rows[i].Cells[0].Value, dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[4].Value });
}
这个会出错的:输入数组长度大于此表中的列数 --------------------编程问答-------------------- 你不能直接新增数据到你选择的集合里,因为你的集合内容已经固定,有没有先新增容量? --------------------编程问答--------------------
你能帮我改下代码,不会出现这个错误。 --------------------编程问答-------------------- 有两种可能:
1、Cells[4],多半是超出列范围了,你有dataGridView1有几列?
2、table.Rows.Add,这个表是几列的,你传入的是三个值? --------------------编程问答--------------------
1.dataGridView1 5列
2.第二不懂你说什么的 --------------------编程问答-------------------- table这个表总有个来源吧,你设个断点,跟踪调试,看看table.Columns.Count值是多少
补充:.NET技术 , C#