C#新手的问题:怎么删除datagridview里面的一列

yty8000 2009-04-17 08:57:14
如题。
注意,是删除datagridview里面的一列,不删除dataset里面的内容。
...全文
2514 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
herott632482577 2010-12-14
  • 打赏
  • 举报
回复
int index3 = 0;//dataGridView1中ID列的索引
string temp2 = string.Format("delete from 材料大类表 where 材料大类号='" + dataGridView1[index3, dataGridView1.SelectedCells[0].RowIndex].Value.ToString() + "'");//删除
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedCells[0].RowIndex);
DCC.SqlDC.SDC.GetTable(temp2);//移除
dataGridView1.DataSource = DCC.SqlDC.SDC.GetTable("select 材料大类号,材料大类名,备注 from 材料大类表");
zlairui111 2010-12-07
  • 打赏
  • 举报
回复
白说呢!
aile1125 2010-11-27
  • 打赏
  • 举报
回复
dataGridView1.Rows.RemoveAt(行索引);
dataGridView1.Rows.Remove(行名);
Maybe_1947 2010-11-24
  • 打赏
  • 举报
回复
创建datagridview之后,在设计视图的右上角有一个类似“》”的地方,点击“模板”,里边就可以删除列了。
guwanqin 2010-11-24
  • 打赏
  • 举报
回复
string str = this.dataGridView1.CurrentRow.Cells[i].Value.ToString();
Mr_graceless 2010-11-24
  • 打赏
  • 举报
回复
一列。。不是一行。。
hao123luoxin 2010-11-21
  • 打赏
  • 举报
回复
一列不好删除吧,你的数据应该是一行是一个对象,要是删的话会清空所有的数据,只能用隐藏。
this.DataGirdView.Columns["列名"].Visible = false;把该行隐藏
zhanlang9075 2009-09-05
  • 打赏
  • 举报
回复
^_^同意15楼
ykandyp 2009-09-02
  • 打赏
  • 举报
回复
先取出你选中的行:
DataRow nRow = ((DataTable)dataGridView.DataSource).Rows[this.dataGridView.CurrentRow.Index];

string str = nRow[x].Tostring();//把数据主键取出来

最后写Delete 语句,where 条件就是Str
vvvwww521 2009-08-31
  • 打赏
  • 举报
回复
隐藏起来就可以了
sensexia 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 super0208 的回复:]
关注中
[/Quote]
呵呵
十八道胡同 2009-05-26
  • 打赏
  • 举报
回复
msdn很全额
xh_mlj 2009-05-19
  • 打赏
  • 举报
回复
是在设计的时候要删除呢,还是在程序里动态删除?
jest850615 2009-05-04
  • 打赏
  • 举报
回复
续...

private void CustomizeCellsInThirdColumn()
{
int thirdColumn = 2;
DataGridViewColumn column =
dataGridView.Columns[thirdColumn];
DataGridViewCell cell = new DataGridViewTextBoxCell();

cell.Style.BackColor = Color.Wheat;
column.CellTemplate = cell;
}

ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();

private void AddContextMenu()
{
toolStripItem1.Text = "Redden";
toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
ContextMenuStrip strip = new ContextMenuStrip();
foreach (DataGridViewColumn column in dataGridView.Columns)
{

column.ContextMenuStrip = strip;
column.ContextMenuStrip.Items.Add(toolStripItem1);
}
}

private DataGridViewCellEventArgs mouseLocation;

// Change the cell's color.
private void toolStripItem1_Click(object sender, EventArgs args)
{
dataGridView.Rows[mouseLocation.RowIndex]
.Cells[mouseLocation.ColumnIndex].Style.BackColor
= Color.Red;
}

// Deal with hovering over a cell.
private void dataGridView_CellMouseEnter(object sender,
DataGridViewCellEventArgs location)
{
mouseLocation = location;
}

private void SetDefaultCellInFirstColumn()
{
DataGridViewColumn firstColumn = dataGridView.Columns[0];
DataGridViewCellStyle cellStyle =
new DataGridViewCellStyle();
cellStyle.BackColor = Color.Thistle;

firstColumn.DefaultCellStyle = cellStyle;
}


private void ToolTips()
{
DataGridViewColumn firstColumn = dataGridView.Columns[0];
DataGridViewColumn thirdColumn = dataGridView.Columns[2];
firstColumn.ToolTipText =
"This column uses a default cell.";
thirdColumn.ToolTipText =
"This column uses a template cell." +
" Style changes to one cell apply to all cells.";
}

private void AddAdditionalButtons()
{
AddButton(Button4, "Set Minimum Width of Column Two",
new EventHandler(Button4_Click));
AddButton(Button5, "Set Width of Column One",
new EventHandler(Button5_Click));
AddButton(Button6, "Autosize Third Column",
new EventHandler(Button6_Click));
AddButton(Button7, "Add Thick Vertical Edge",
new EventHandler(Button7_Click));
AddButton(Button8, "Style and Number Columns",
new EventHandler(Button8_Click));
AddButton(Button9, "Change Column Header Text",
new EventHandler(Button9_Click));
AddButton(Button10, "Swap First and Last Columns",
new EventHandler(Button10_Click));
}

private void AdjustDataGridViewSizing()
{
dataGridView.ColumnHeadersHeightSizeMode =
DataGridViewColumnHeadersHeightSizeMode.AutoSize;
}

//Set the minimum width.
private void Button4_Click(object sender,
System.EventArgs e)
{
DataGridViewColumn column = dataGridView.Columns[1];
column.MinimumWidth = 40;
}

// Set the width.
private void Button5_Click(object sender, System.EventArgs e)
{
DataGridViewColumn column = dataGridView.Columns[0];
column.Width = 60;
}


// AutoSize the third column.
private void Button6_Click(object sender,
System.EventArgs e)
{
DataGridViewColumn column = dataGridView.Columns[2];
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
}

// Set the vertical edge.
private void Button7_Click(object sender,
System.EventArgs e)
{
int thirdColumn = 2;
DataGridViewColumn column =
dataGridView.Columns[thirdColumn];
column.DividerWidth = 10;
}

// Style and number columns.
private void Button8_Click(object sender,
EventArgs args)
{
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.Alignment =
DataGridViewContentAlignment.MiddleCenter;
style.ForeColor = Color.IndianRed;
style.BackColor = Color.Ivory;

foreach (DataGridViewColumn column in dataGridView.Columns)
{
column.HeaderCell.Value = column.Index.ToString();
column.HeaderCell.Style = style;
}
}

// Change the text in the column header.
private void Button9_Click(object sender,
EventArgs args)
{
foreach (DataGridViewColumn column in dataGridView.Columns)
{

column.HeaderText = String.Concat("Column ",
column.Index.ToString());
}
}

// Swap the last column with the first.
private void Button10_Click(object sender, EventArgs args)
{
DataGridViewColumnCollection columnCollection = dataGridView.Columns;

DataGridViewColumn firstVisibleColumn =
columnCollection.GetFirstColumn(DataGridViewElementStates.Visible);
DataGridViewColumn lastVisibleColumn =
columnCollection.GetLastColumn(
DataGridViewElementStates.Visible, DataGridViewElementStates.None);

int firstColumn_sIndex = firstVisibleColumn.DisplayIndex;
firstVisibleColumn.DisplayIndex = lastVisibleColumn.DisplayIndex;
lastVisibleColumn.DisplayIndex = firstColumn_sIndex;
}

// Updated the criteria label.
private void dataGridView_AutoSizeColumnModeChanged(object sender,
DataGridViewAutoSizeColumnModeEventArgs args)
{
args.Column.DataGridView.Parent.
Controls["flowlayoutpanel"].Controls[criteriaLabel].
Text = criteriaLabel
+ args.Column.AutoSizeMode.ToString();
}
#endregion

[STAThreadAttribute()]
public static void Main()
{
Application.Run(new DataGridViewColumnDemo());
}

}
jest850615 2009-05-04
  • 打赏
  • 举报
回复
最全的例子,所有datagridview相关操作(msdn上拷下来的,^_^):

using System.Windows.Forms;
using System;
using System.Drawing;

public class DataGridViewColumnDemo : Form
{
#region "set up form"
public DataGridViewColumnDemo()
{
InitializeComponent();

AddButton(Button1, "Reset",
new EventHandler(ResetToDisorder));
AddButton(Button2, "Change Column 3 Header",
new EventHandler(ChangeColumn3Header));
AddButton(Button3, "Change Meatloaf Recipe",
new EventHandler(ChangeMeatloafRecipe));
AddAdditionalButtons();

InitializeDataGridView();
}

DataGridView dataGridView;
Button Button1 = new Button();
Button Button2 = new Button();
Button Button3 = new Button();
Button Button4 = new Button();
Button Button5 = new Button();
Button Button6 = new Button();
Button Button7 = new Button();
Button Button8 = new Button();
Button Button9 = new Button();
Button Button10 = new Button();
FlowLayoutPanel FlowLayoutPanel1 = new FlowLayoutPanel();

private void InitializeComponent()
{
FlowLayoutPanel1.Location = new Point(454, 0);
FlowLayoutPanel1.AutoSize = true;
FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
FlowLayoutPanel1.Name = "flowlayoutpanel";
ClientSize = new System.Drawing.Size(614, 360);
Controls.Add(this.FlowLayoutPanel1);
Text = this.GetType().Name;
AutoSize = true;
}
#endregion

#region "set up DataGridView"

private string thirdColumnHeader = "Main Ingredients";
private string boringMeatloaf = "ground beef";
private string boringMeatloafRanking = "*";
private bool boringRecipe;
private bool shortMode;

private void InitializeDataGridView()
{
dataGridView = new System.Windows.Forms.DataGridView();
Controls.Add(dataGridView);
dataGridView.Size = new Size(300, 200);

// Create an unbound DataGridView by declaring a
// column count.
dataGridView.ColumnCount = 4;
AdjustDataGridViewSizing();

// Set the column header style.
DataGridViewCellStyle columnHeaderStyle =
new DataGridViewCellStyle();
columnHeaderStyle.BackColor = Color.Aqua;
columnHeaderStyle.Font =
new Font("Verdana", 10, FontStyle.Bold);
dataGridView.ColumnHeadersDefaultCellStyle =
columnHeaderStyle;

// Set the column header names.
dataGridView.Columns[0].Name = "Recipe";
dataGridView.Columns[1].Name = "Category";
dataGridView.Columns[2].Name = thirdColumnHeader;
dataGridView.Columns[3].Name = "Rating";

PostColumnCreation();

// Populate the rows.
string[] row1 = new string[]{"Meatloaf",
"Main Dish", boringMeatloaf, boringMeatloafRanking};
string[] row2 = new string[]{"Key Lime Pie",
"Dessert", "lime juice, evaporated milk", "****"};
string[] row3 = new string[]{"Orange-Salsa Pork Chops",
"Main Dish", "pork chops, salsa, orange juice", "****"};
string[] row4 = new string[]{"Black Bean and Rice Salad",
"Salad", "black beans, brown rice", "****"};
string[] row5 = new string[]{"Chocolate Cheesecake",
"Dessert", "cream cheese", "***"};
string[] row6 = new string[]{"Black Bean Dip", "Appetizer",
"black beans, sour cream", "***"};
object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };

foreach (string[] rowArray in rows)
{
dataGridView.Rows.Add(rowArray);
}

shortMode = false;
boringRecipe = true;
}

private void AddButton(Button button, string buttonLabel,
EventHandler handler)
{
FlowLayoutPanel1.Controls.Add(button);
button.TabIndex = FlowLayoutPanel1.Controls.Count;
button.Text = buttonLabel;
button.AutoSize = true;
button.Click += handler;
}

private void ResetToDisorder(object sender, System.EventArgs e)
{
Controls.Remove(dataGridView);
dataGridView.Dispose();
InitializeDataGridView();
}

private void ChangeColumn3Header(object sender,
System.EventArgs e)
{
Toggle(ref shortMode);
if (shortMode)
{ dataGridView.Columns[2].HeaderText = "S"; }
else
{ dataGridView.Columns[2].HeaderText = thirdColumnHeader; }
}

private static void Toggle(ref bool toggleThis)
{
toggleThis = !toggleThis;
}

private void ChangeMeatloafRecipe(object sender,
System.EventArgs e)
{
Toggle(ref boringRecipe);
if (boringRecipe)
{
SetMeatloaf(boringMeatloaf, boringMeatloafRanking);
}
else
{
string greatMeatloafRecipe =
"1 lb. lean ground beef, " +
"1/2 cup bread crumbs, 1/4 cup ketchup," +
"1/3 tsp onion powder, " +
"1 clove of garlic, 1/2 pack onion soup mix " +
" dash of your favorite BBQ Sauce";
SetMeatloaf(greatMeatloafRecipe, "***");
}
}

private void SetMeatloaf(string recipe, string rating)
{
dataGridView.Rows[0].Cells[2].Value = recipe;
dataGridView.Rows[0].Cells[3].Value = rating;
}
#endregion

#region "demonstration code"
private void PostColumnCreation()
{
AddContextLabel();
AddCriteriaLabel();
CustomizeCellsInThirdColumn();
AddContextMenu();
SetDefaultCellInFirstColumn();
ToolTips();

dataGridView.CellMouseEnter +=
dataGridView_CellMouseEnter;
dataGridView.AutoSizeColumnModeChanged +=
dataGridView_AutoSizeColumnModeChanged;
}

private string criteriaLabel = "Column 3 sizing criteria: ";
private void AddCriteriaLabel()
{
AddLabelToPanelIfNotAlreadyThere(criteriaLabel,
criteriaLabel +
dataGridView.Columns[2].AutoSizeMode.ToString() +
".");
}

private void AddContextLabel()
{
string labelName = "label";
AddLabelToPanelIfNotAlreadyThere(labelName,
"Use shortcut menu to change cell color.");
}

private void AddLabelToPanelIfNotAlreadyThere(
string labelName, string labelText)
{
Label label;
if (FlowLayoutPanel1.Controls[labelName] == null)
{
label = new Label();
label.AutoSize = true;
label.Name = labelName;
label.BackColor = Color.Bisque;
FlowLayoutPanel1.Controls.Add(label);
}
else
{
label = (Label)FlowLayoutPanel1.Controls[labelName];
}
label.Text = labelText;
}


shjx00000 2009-05-04
  • 打赏
  • 举报
回复
最好用隐藏,this.DataGirdView.Columns["列名"].Visible = false
kongdelu2008 2009-04-27
  • 打赏
  • 举报
回复
两种写法:

ds.Tables["maintable"].Rows[0].Delete();
//----另外一种写法-------
ds.Tables["maintable"].Rows.RemoveAt(0);

"0" 代表删除的索引号,这地方是删除的第一行
zgke 2009-04-25
  • 打赏
  • 举报
回复 1
dataGridView1.Columns.RemoveAt(0);
dataGridView1.Columns.Remove("列名");

jiajiaping 2009-04-25
  • 打赏
  • 举报
回复
this.GridView1.Columns[i].Visible = false;
我用的是隐藏改列!
陌上花花 2009-04-17
  • 打赏
  • 举报
回复
关注中
加载更多回复(2)

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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