问题描述
剪切是先对选中的单元格的值进行复制privatevoid剪切toolStripMenuItem4_Click(objectsender,EventArgse){Clipboard.SetDataObject(this.dataGridView1.CurrentCell.Value.ToString());}然后要删除选中的单元格的内容,可是不知道怎么删除,希望高手能够帮忙一下,谢谢!
解决方案
解决方案二:
理解错误!DataGridView是需要和虚拟数据库捆绑起来的吧(DataSet)你把DataGridView只需看作是一个容器就好,直接删除DataSet中的数据.就可以删除DataGridView中的数据了.你要是看不明白我给你写一段代码.usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;//引入和数据库连接的命名空间usingSystem.Data.SqlClient;namespaceDateBookForm{publicpartialclassTest:Form{publicTest(){InitializeComponent();}//刷新次数privateintLoadNum=2;//创建SqlConnection对象SqlConnectioncon=newSqlConnection("Server=.;DataBase=Test;uid=sa;pwd=sa");//创建DataSetDataSetds=newDataSet();//引入SqlDataAdapter;SqlDataAdapteradapter;///<summary>///窗体加载时///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidTest_Load(objectsender,EventArgse){FillSet();}///<summary>///DataSet填充方法///</summary>privatevoidFillSet(){//在刷新次数是第一次的时候访问数据库并且添加到DataSet中if(LoadNum==0){con.Open();//使用SqlDataAdapteradapteradapter=newSqlDataAdapter("select*fromusers",con);adapter.Fill(ds);adapter.Update(ds);//给DataGirdView捆绑数据dataGridView1.DataSource=ds.Tables[0];//判断是否有数据if(dataGridView1.Rows.Count>=1){MessageBox.Show("填充成功!");}con.Close();}}///<summary>///点击删除按钮///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidbutton1_Click(objectsender,EventArgse){try{//选中的行是1的时候if(dataGridView1.SelectedRows.Count==1){//删除数据dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);///////////////////////////////////////////////////////////////////////////////以下为附加代码,可用可不用,作用是根据DataGirdView的现有数据,更新数据库.SqlCommandBuilderbuilder=newSqlCommandBuilder(adapter);adapter.Update(ds);}else{MessageBox.Show("请从新选择!");}}catch(Exceptionex){MessageBox.Show(ex.Message);}}}}
完美实现你要的功能,注意注释.我写的很详细了.
解决方案三:
privateintLoadNum=2;//改成privateintLoadNum=0;//Load方法最后一段LoadNum++;
抱歉,刚才测试的时候忘记了~~现在纠错来了...
解决方案四:
复制好后,将相应内容从DataGridView中Remove掉(行或某[些]单元格若要与数据库同步,可考虑使用CommandBuilder(与sql结合较好)
解决方案五:
回复一楼的朋友:我知道DataGridView是和数据集绑定的,我已经绑定填充好了的。数据已经在DataGridView控件上显示了。我的意思是我在单元格中选中了一个值,然后利用菜单项里的‘剪切’把单元格里的值给剪掉,这一个功能的实现。//删除数据dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);你这不是把整个选中的行给删掉了吗?我要删的是单元格的值不是整个数据行,谢谢!三楼的朋友:你能告诉我DataGridView怎么定位到我随意选中的一个单元格吗?
解决方案六:
那就改为.dataGridView1.SelectedCells[0].Value=null;
解决方案七:
谢谢你的回复,但是dataGridView.selectedCells[intindex]index表示说选单元格的索引号可是剪切是随便的选择单元格,根本就没有固定单元格的索引号的。我甚至用这个算法都报错privatevoid剪切toolStripMenuItem4_Click(objectsender,EventArgse){Clipboard.SetDataObject(this.dataGridView1.CurrentCell.Value.ToString());//先复制for(intcounter=0;counter<dataGridView.SelectedCells.count;counter++)//然后删除{if(ClipBoard.GetText()==dataGridView.SelectedCells[i].Value.ToString()){this.BindingSource.Remove(dataGridView.SelectedCells.Value)}}}
解决方案八:
有没有人有解决的方法啊~帮忙一下吧!谢谢了!