45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:如何使用C#中的DataGridView控件?

如何使用C#中的DataGridView控件?

2016-08-27 12:07:24 来源:www.45fan.com 【

如何使用C#中的DataGridView控件?

Q:如何让DataGridView 自适应内容的宽度?
A:改变AutoSizeColumnMode属性

ps:DataGridViewAutoSizeColumnsMode.Fill; 自动调整列宽,在一屏内显示所有的列(没有横向的滚动条)

DataGridViewAutoSizeColumnsMode.AllCells;自动调整列宽,适应所有单元格包括列头。

Q:我不想在DataGridView中编辑数据,我要自己控制

A:可以这样:

dgvColorGroup.ReadOnly = true;
dgvColorGroup.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Q:如何对DataGridView的数据绑定操作?
sqlCon.Open();
strSql = "SELECT Name,Amount FROM Store"
BindingSource bsCargo = new BindingSource();
SqlDataAdapter sqlDA = new SqlDataAdapter(strSql, sqlCon);
SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqlDA);
dtStock = new DataTable();
sqlDA.Fill(dtStock);
dgvStock.DataSource = dtStock;

dataGridView事件发生顺序
绑定数据,DataBindingComplete事件发生,

dataGridView无数据,设置DataSource属性(进行数据绑定),SelectionChanged发生,RowEnter发生,填充数据,CellEnter发生,第二次SelectionChanged发生,DataBindingComplete发生

dataGridView有数据,不变单元格(鼠标点击),CellClick发生;

dataGridView有数据,不变行,改变单元格(鼠标点击或键盘方向),CellEnter发生;

dataGridView有数据,改变单元格行(鼠标点击或键盘方向),
RowEnter发生(CurrentRow为原来的行),CellEnter发生(CurrentRow为原来的行),SelectionChanged发生。

所以如果想做主从表数据联动效果,最好是在SelectionChanged事件中写代码。之前要把dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Q:DataGridView 不显示最下面的新行?
A:通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * )。如果不想让用户新追加行即不想显示该新行,可以将 DataGridView 对象的 AllowUserToAddRows 属性设置为 False。

DataGridView如何马上定位到某一行
DataGridView.CurrentCell = DataGridView.Rows[你要的行索引].Cells[0];

 

Q:如何用两个dgv显示数据库主从表内容?
A:只要在显示主表的dgv1的SelectionChanged事件中写查询代码

private void dgvColorGroup_SelectionChanged(object sender, EventArgs e)
{
FillDgvColorDetail();
}

如果是窗体加载后即根据主表显示从表,则应做如下处理

if (null != dgvColorGroup.CurrentRow)
{// 如果主表中存在当前行
DataGridViewRow dgvRow = dgvColorGroup.CurrentRow; //当前行
//如果在得到主表的SQL语句中有AS转变了列名,则从表取查询关键字时要用新列名,如下:
string currentCGC = dgvRow.Cells["颜色组代码"].Value.ToString();
string sqlString = CGlobal.T_COLOR_DETAIL_SELECT + " WHERE fColorGroupCode = '" + currentCGC + "'";
DataSet myDataSetCGDetail = new DataSet();
myDataSetCGDetail = mySQLManager.GetMySqlDataSet(CommandType.Text, sqlString);
if (null != myDataSetCGDetail.Tables && 1 == myDataSetCGDetail.Tables.Count && 0 < myDataSetCGDetail.Tables[0].Rows.Count)
{// 查到了颜色组明细记录
dgvColorGroupDetail.DataSource = myDataSetCGDetail.Tables[0];
bColorGroupDetailDelete.Enabled = true;
}
else
{
bColorGroupDetailDelete.Enabled = false;
}

 

Q:如何在最后添加合计行?

A:http://www.codeproject.com/Articles/51889/Summary-DataGridView

Summary DataGridView

Q:如何删除当前行?

A: dgvCustomer.Rows.RemoveAt(dgvCustomer.CurrentRow.Index);

 


 

本文地址:http://www.45fan.com/dnjc/68385.html
Tags: 中的 控件 DataGridView
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部