C# datagridview中上下移动当前行且能将当前行放到首行和末尾 avbc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //下移一行 private void button2_Click( object sender, EventArgs e ) { DataGridViewRow dr = dataGridView1.CurrentRow; if ( dr.Index < dataGridView1.Rows.Count - 1 ) { int index = dr.Index; dataGridView1.Rows.Remove( dr ); dataGridView1.Rows.Insert( index + 1, dr ); dr.Selected = true; dataGridView1.CurrentCell = dr.Cells[0]; } } //上移一行 private void button3_Click( object sender, EventArgs e ) { DataGridViewRow dr = dataGridView1.CurrentRow; if ( dr.Index > 0 ) { int index = dr.Index; dataGridView1.Rows.Remove( dr ); dataGridView1.Rows.Insert( index - 1, dr ); dr.Selected = true; dataGridView1.CurrentCell = dr.Cells[0]; } } //首行 private void button4_Click( object sender, EventArgs e ) { if ( dataGridView1.CurrentRow.Index != 0 ) { DataGridViewRow dr = dataGridView1.CurrentRow; dataGridView1.Rows.Remove( dr ); dataGridView1.Rows.Insert(0, dr ); dr.Selected = true; dataGridView1.CurrentCell = dr.Cells[0]; } } //末行 private void button5_Click( object sender, EventArgs e ) { if ( dataGridView1.CurrentRow.Index <dataGridView1.Rows.Count-1 ) { DataGridViewRow dr = dataGridView1.CurrentRow; dataGridView1.Rows.Remove( dr ); dataGridView1.Rows.Insert( dataGridView1.Rows.Count , dr ); dr.Selected = true; dataGridView1.CurrentCell = dr.Cells[0]; } } 你是想通过鼠标拖动实现还是自己代码实现两种方式都是定义一个DataGridViewRow row来存放CurrentRow,如果是按钮实现就简单些了,记录下来后把当前行删除,然后在指定的位置把当录下来的行填充进去.如果鼠标拖动的话只需取得当前鼠标坐标.然后当MoveUp的时候插入就行了都不复杂 为什么控件被绑定就Insert不了数据? 请教:错误信息:当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。 请教:错误信息:当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。 是怎麼回事啊 . 我執行的也是這樣 . 请教:错误信息:当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。 是怎麼回事啊 . 我執行的也是這樣 . 【求高手解惑】snk文件作用是啥? c#怎样给excel单元格赋空值? 打开一次链接好?还是多次打开链接好? winform中app.config配置问题 获取DataGrid选定行数据的问题 我希望在客户端打开页面的时候,先检查IE的版本,如果低于IE6,就自动下载IE6的安装包安装,如何实现呢? 求winform||控制台为服务端 webform||webservice为客户端 进行socket异步通信的例子 关于数据库出现的异常问题 验证码是asp的,如何获取 C#调用C++dll,返回值为结构体,结构体值转换不对 初学C#,有个关于string的问题? 如何添加“...”选择功能
//下移一行
private void button2_Click( object sender, EventArgs e )
{ DataGridViewRow dr = dataGridView1.CurrentRow;
if ( dr.Index < dataGridView1.Rows.Count - 1 )
{
int index = dr.Index;
dataGridView1.Rows.Remove( dr );
dataGridView1.Rows.Insert( index + 1, dr ); dr.Selected = true;
dataGridView1.CurrentCell = dr.Cells[0];
}
} //上移一行
private void button3_Click( object sender, EventArgs e )
{ DataGridViewRow dr = dataGridView1.CurrentRow; if ( dr.Index > 0 )
{
int index = dr.Index;
dataGridView1.Rows.Remove( dr );
dataGridView1.Rows.Insert( index - 1, dr ); dr.Selected = true;
dataGridView1.CurrentCell = dr.Cells[0];
}
} //首行
private void button4_Click( object sender, EventArgs e )
{
if ( dataGridView1.CurrentRow.Index != 0 )
{
DataGridViewRow dr = dataGridView1.CurrentRow;
dataGridView1.Rows.Remove( dr );
dataGridView1.Rows.Insert(0, dr ); dr.Selected = true;
dataGridView1.CurrentCell = dr.Cells[0];
}
} //末行
private void button5_Click( object sender, EventArgs e )
{
if ( dataGridView1.CurrentRow.Index <dataGridView1.Rows.Count-1 )
{
DataGridViewRow dr = dataGridView1.CurrentRow;
dataGridView1.Rows.Remove( dr );
dataGridView1.Rows.Insert( dataGridView1.Rows.Count , dr ); dr.Selected = true;
dataGridView1.CurrentCell = dr.Cells[0];
}
}
两种方式都是定义一个DataGridViewRow row来存放CurrentRow,如果是按钮实现就简单些了,记录下来后把当前行删除,然后在指定的位置把当录下来的行填充进去.如果鼠标拖动的话只需取得当前鼠标坐标.然后当MoveUp的时候插入就行了
都不复杂