c# datagridview 删除行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# datagridview 删除行相关的知识,希望对你有一定的参考价值。
如下图:
我点击删除 的时候 ,提示我选择要删除 哪一行, 请高手指教一下代码 怎么实现?
在删除行的时候设置indexid为删除的当前行的index:
indexid = dataGridView1.CurrentRow.Index;
在更新数据的时候可以如下设置,这些设置是为了防止指定的当前行出错
if (indexid < 0)
if (indexid > dataGridView1.Rows.Count - 1)
下面这句是指定datagridview的当前行
dataGridView1.CurrentCell = dataGridView1.Rows[indexid].Cells[0];
下面是datagridview的一个方法selectionchanged,当列表选中的行发生变化时调用这个函数
dataGridView1_SelectionChanged(sender, e);
具体示例如下:
int indexid=0;
///删除的函数
private void btnDel_Click(object sender, EventArgs e)
DataGridViewCell cell = dataGridView1.CurrentRow.Cells[0]; //要被删除的当前行
indexid = dataGridView1.CurrentRow.Index;//得到被删除那行的索引
DataUpdate(sender, e); //具体函数如下
///DataUpdate函数
private void DataUpdate(object sender, EventArgs e)
///////////////这个地方可以是数据的更新///////////////
if (indexid < 0)
if (indexid > dataGridView1.Rows.Count - 1)
dataGridView1.CurrentCell = dataGridView1.Rows[indexid].Cells[0];//这里注意Cells中的索引必须是可见的列
dataGridView1_SelectionChanged(sender, e);
///dataGridView1_SelectionChanged函数,这个函数是datagridveiw控件自带的方法
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
if (dataGridView1.CurrentRow== null)
return;
/////////////这里是每一行的某一列对应着你的控件的显示///////////
如:textbox1.Text=dataGridView1.CurrentRow.Cell[0].Value.ToString();
参考技术A 在删除按钮事件里写:
if (dataGridViewX1.Focus() == true)
eTaskDialogButton button = new eTaskDialogButton();
button |= eTaskDialogButton.Yes;
button |= eTaskDialogButton.No;
TaskDialogInfo info = new TaskDialogInfo("提示", eTaskDialogIcon.Delete, "确定删除吗?", "删除后不能恢复,请慎重考虑", button, eTaskDialogBackgroundColor.Blue);
eTaskDialogResult result = TaskDialog.Show(info);
//上面这些是我第三方控件的messagebox,你可以不用在 意,就是弹出对话框点是否
if (result == eTaskDialogResult.Yes)
dataGridViewX1.Rows.Remove(dataGridViewX1.CurrentRow);
//删除光标所在行
else
TaskDialogInfo info = new TaskDialogInfo("提示", eTaskDialogIcon.Information, "请选择", "点击表格中的任何一行即可选中",eTaskDialogButton.Ok,eTaskDialogBackgroundColor.Blue);
TaskDialog.Show(info);
我想用C#中的datagrid控件做一个删除行(点击按钮删除datagrid中的所指定的任意一行)
谢谢咯……
基本数据绑定熟悉 DATAGRIDVIEW 的最佳方法就是实际尝试一下,无需配置任何属性。就像 DATAGRID 一样,您可以使用 DATASOURCE 属性来绑定 DATATABLE 对象(或从 DATATABLE 派生的对象)。
DIM DS AS DATASET = GETDATASET()DATAGRIDVIEW1.DATASOURCE = DS.TABLES("CUSTOMERS")
与 DATAGRID 不同的是,DATAGRIDVIEW 一次只能显示一个表。绑定整个 DATASET,则不会显示任何数据,除非您使用要显示的表名设置了 DATAMEMBER 属性。
DATAGRIDVIEW1.DATASOURCE = DSDATAGRIDVIEW1.DATAMEMBER = "CUSTOMERS"
美化 DATAGRIDVIEW
DATAGRIDVIEW 的默认外观仅仅比 DATAGRID 略有改进,但是使用几项快速调整功能,您可以将其显著改进。
其中的一个问题就是列无法自动展开以适合其包含的数据。您可以使用 DATAGRIDVIEW.AUTOSIZECOLUMNS() 方法以及 DATAGRIDVIEWAUTOSIZECOLUMNCRITERIA 枚举中的某个值来解决此问题。您可以选择根据标题文本、当前显示的行或表中的所有行的的宽度来调整列宽。
' 根据标题或此列的某一行中' 最长一段文本的宽度调整' 列宽。DATAGRIDVIEW1.AUTOSIZECOLUMNS( _DATAGRIDVIEWAUTOSIZECOLUMNCRITERIA.HEADERANDROWS)
请记住,此方法必须在绑定数据后调用,否则不会产生任何效果。你可能还需要在用户编辑数据后使用它(可能在响应 DATAGRIDVIEW.CELLVALUECHANGED 等事件时)。
不增加列宽,则可以更改行高。默认情况下,列中的文本会跨越多行。您使用 DATAGRIDVIEW.AUTOSIZEROWS() 方法,则行会根据其中的内容调整高度。使用此方法前,您可能希望增加列宽,尤其是在字段包含大量文本时。例如,以下代码片段使“说明”列的列宽增加为原列宽的四倍,调整行高以容纳其内容。
DATAGRIDVIEW.COLUMNS("DESCRIPTION").WIDTH *= 4DATAGRIDVIEW.AUTOSIZEROWS( _DATAGRIDVIEWAUTOSIZEROWSMODE.HEADERANDCOLUMNSALLROWS)
比较了自动调整 DATAGRIDVIEW 大小的各种方法。
另一个合理的更改是清理每一列中显示的标题文本。例如,标题“ORDER DATE”比字段名称“ORDERDATE”看上去更为专业。这项更改很容易进行。您只需从 DATAGRIDVIEW.COLUMNS 集合中检索相应的 DATAGRIDVIEWCOLUMN,并修改其 HEADERTEXT 属性:
DATAGRIDVIEW.COLUMNS("ORDERID").HEADERTEXT = "ORDER ID"
使用 DATAGRIDVIEW 选择单元格
默认情况下,DATAGRIDVIEW 允许自由选择。用户可以突出显示单元格或单元格组,可以一次突出显示所有单元格(通过单击网格右上角的方块),还可以突出显示一行或多行(通过在行标题列中单击)。根据选择模式,用户甚至能够通过选择列标题来选择一列或多列。通过使用 DATAGRIDVIEWSELECTIONMODE 枚举中的某个值来设置 DATAGRIDVIEW.SELECTIONMODE 属性,可以控制此行为,如下所述:
通过 DATAGRIDVIEW,可以使用以下三个属性方便地检索选定的单元格:SELECTEDCELLS、SELECTEDROWS 和 SELECTEDCOLUMNS。无论使用的是哪种选择模式,SELECTEDCELLS 都始终返回 DATAGRIDVIEWCELL 对象的集合。另一方面,使用行标题选择了整个行,则 SELECTEDROWS 只返回信息,而使用列标题选择了整个列,则 SELECTEDCOLUMNS 也只返回信息。 参考技术A 你要把这行从数据库中删除还是从这个控件中删除?
用dataGrid1.CurrentRowIndex获取当前选中的行的索引,下面的操作你自己应该可以做了把。 参考技术B 先用SQL语句
string strSQL = "delete from 表名 where 列名=值";
DBHelper.connection.Open();
SqlCommand command = new SqlCommand(strSQL, DBHelper.connection);
int num=command.ExecuteNonQuery();
if (num > 0)
MessageBox.Show("删除成功!", "信息提示");
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Update(ds.Tables[0]);
在这里也说不明白!我QQ153348664,或者你发你的邮箱来,我发给你! 参考技术C 在它的删除事件中写代码
只能说这么多了
以上是关于c# datagridview 删除行的主要内容,如果未能解决你的问题,请参考以下文章