WinForm方面的 急!!!!!

Sam萨姆 2011-07-27 03:16:46
DataGridView绑定XML数据,并实现行的上下移动。
现在用XML绑定已经做到了。但如何实现在DataGridView中让选中的行上移或下移?
...全文
104 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
楠木大叔 2011-07-27
  • 打赏
  • 举报
回复
使用bingNavigator控件好像可以
validtimes 2011-07-27
  • 打赏
  • 举报
回复
只显示代码的行号,不过复制下来还是OK的。

[Quote=引用 10 楼 wangyong0921 的回复:]
引用 9 楼 zzzzzzzert 的回复:

引用 8 楼 wxm3630478 的回复:
以前写的:
http://blog.csdn.net/wxm3630478/article/details/4256851

没看明白。全是数字啊


写的很详细啊
[/Quote]
validtimes 2011-07-27
  • 打赏
  • 举报
回复
不就是相邻行调个位置么?但愿我的理解是对的。

假使你选中第n行,那么:

SwitchDataGridViewRow(n-1, n);//上移
SwitchDataGridViewRow(n, n+1);//下移


[Quote=引用 7 楼 zzzzzzzert 的回复:]
引用 4 楼 validtimes 的回复:
C# code
//Call SwitchDataGridViewRow Method
private void button1_Click(object sender, EventArgs e)
{
SwitchDataGridViewRow(0, 1);
}

//Switch……


这短代码能实现对DataGridView……
[/Quote]
Just4life 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zzzzzzzert 的回复:]

引用 8 楼 wxm3630478 的回复:
以前写的:
http://blog.csdn.net/wxm3630478/article/details/4256851

没看明白。全是数字啊
[/Quote]

写的很详细啊
Sam萨姆 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wxm3630478 的回复:]
以前写的:
http://blog.csdn.net/wxm3630478/article/details/4256851
[/Quote]
没看明白。全是数字啊
wxm3630478 2011-07-27
  • 打赏
  • 举报
回复
Sam萨姆 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 validtimes 的回复:]
C# code
//Call SwitchDataGridViewRow Method
private void button1_Click(object sender, EventArgs e)
{
SwitchDataGridViewRow(0, 1);
}

//Switch……
[/Quote]

这短代码能实现对DataGridView 上下移动吗?麻烦下能不能把上调和下调的代码分别写下啊?上调用button4 下调用button5表示
validtimes 2011-07-27
  • 打赏
  • 举报
回复
那你面对的问题其实只是把datagridview的数据写到xml里而已

[Quote=引用 2 楼 zzzzzzzert 的回复:]
引用 1 楼 validtimes 的回复:
只是在DataGridView中移动,要不要反映在数据库里呢?


数据是用XML绑定的。也需要改XML里的顺序
[/Quote]
validtimes 2011-07-27
  • 打赏
  • 举报
回复
用变通的方法实现吧。
validtimes 2011-07-27
  • 打赏
  • 举报
回复
        //Call SwitchDataGridViewRow Method
private void button1_Click(object sender, EventArgs e)
{
SwitchDataGridViewRow(0, 1);
}

//Switch DataGridViewRow
private void SwitchDataGridViewRow(int nRow1, int nRow2)
{
DataGridViewRow tmp = new DataGridViewRow();
tmp.CreateCells(dgv_main);
for (int i = 0; i < dgv_main.Columns.Count; i++)
{
tmp.Cells[i].Value = dgv_main.Rows[nRow1].Cells[i].Value;
dgv_main.Rows[nRow1].Cells[i].Value = dgv_main.Rows[nRow2].Cells[i].Value;
dgv_main.Rows[nRow2].Cells[i].Value = tmp.Cells[i].Value;
}
}
Sam萨姆 2011-07-27
  • 打赏
  • 举报
回复

//向上移动
private void button4_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0)
{
return;
}
DataTable dt =(DataTable) this.dataGridView1.DataSource;

int i = this.dataGridView1.Rows.IndexOf(dataGridView1.SelectedRows[0]);
object [] ot = dt.Rows[i].ItemArray;
DataRow dr = dt.Rows[i];
dt.Rows.Remove(dr);
DataRow drs = dt.NewRow();
drs.ItemArray = ot;
dt.Rows.InsertAt(drs, i - 1);
foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
{
dgvr.Selected = false;
}

dataGridView1.Rows[i - 1].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[i - 1].Cells[0];
}

在网上学的,但是提示错误。
无法将类型为“System.Data.DataSet”的对象强制转换为类型“System.Data.DataTable”。
Sam萨姆 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 validtimes 的回复:]
只是在DataGridView中移动,要不要反映在数据库里呢?
[/Quote]

数据是用XML绑定的。也需要改XML里的顺序
validtimes 2011-07-27
  • 打赏
  • 举报
回复
只是在DataGridView中移动,要不要反映在数据库里呢?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧