惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
美团技术团队
NISL@THU
NISL@THU
C
Cisco Blogs
SecWiki News
SecWiki News
N
Netflix TechBlog - Medium
Forbes - Security
Forbes - Security
Cloudbric
Cloudbric
雷峰网
雷峰网
T
Tailwind CSS Blog
博客园 - 司徒正美
The Register - Security
The Register - Security
L
LangChain Blog
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Threat Research - Cisco Blogs
I
InfoQ
S
Schneier on Security
L
Lohrmann on Cybersecurity
量子位
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
Schneier on Security
Schneier on Security
F
Fortinet All Blogs
TaoSecurity Blog
TaoSecurity Blog
K
Kaspersky official blog
Google DeepMind News
Google DeepMind News
Cisco Talos Blog
Cisco Talos Blog
PCI Perspectives
PCI Perspectives
Attack and Defense Labs
Attack and Defense Labs
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
Project Zero
Project Zero
The GitHub Blog
The GitHub Blog
D
Docker
N
News | PayPal Newsroom
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
H
Hacker News: Front Page
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
Webroot Blog
Webroot Blog
MongoDB | Blog
MongoDB | Blog

博客园 - 群

COM 对象与其基础 RCW 分开后就不能再使用 终于解决了一个问题--如何在数据绑定时不让combox控件触发SelectedIndexChanged事件 如何在winform中子窗体提交数据后刷新父窗体中的DataGRIDVIEW数据? 关于在.net中 预览上传控件中路径的图片 的方法 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)[转] 获取新插入的数据的自增ID 漂浮窗体的实现 取得当前日期所在的星期里从星期一到星期日所有的日期列表 触发器不能读『转』 Server.MapPath介绍 Server.MapPath介绍 .NET里面取2个时间相差的天数 在static方法中调用非静态方法? label分页 使用回车代替Tab键的功能代码 绘图(包括绘坐标,图片) 很不错的传值 设置ComboBox默认 动态生成图片热点
DataGridView调整列宽及using()的用法
· 2008-05-14 · via 博客园 - 群

原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=117&id=178684

*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国  

http://www.bc-cn.net

*/ 作者: 师妃暄    E-mail:shifeixuan@yeah.com    QQ:591608560
*/ 时间: 2007-10-18  编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

最近在C#版看到有几个朋友询问DataGridView如何调整列宽的问题.我做了一个总结.发出来供大家参考

DataGridView有一个属性是AutoSizeColumnMode,他有几个枚举值:
AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格。  
AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格。  
ColumnHeader 调整列宽,以适合列标题单元格的内容。  
DisplayedCells 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,包括标题单元格。  
DisplayedCellsExceptHeader 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,不包括标题单元格。  
Fill 调整列宽,使所有列的宽度正好填充控件的显示区域,只需要水平滚动保证列宽在 DataGridViewColumn.MinimumWidth 属性值以上。相对列宽由相对 DataGridViewColumn.FillWeight 属性值决定。  
None 列宽不会自动调整。  
NotSet 列的大小调整行为从 DataGridView.AutoSizeColumnsMode 属性继承。

如果想要自动设置列宽.在这里就必须把DataGridView的值设置为Fill.

接下来,绑定数据源:this.dgvMain.DataSource = ds2.Tables[0];

然后:       this.dgvMain.Columns[0].FillWeight = 8;      //第一列的相对宽度为8%
            this.dgvMain.Columns[1].FillWeight = 22;     //第二列的相对宽度为22%
            this.dgvMain.Columns[2].FillWeight = 70;     //第三列的相对宽度为70%
注意:这里的值是相对于DataGridView当前的总宽度的.所以窗体最大化和缩小的效果是不一样的.但比例不变

顺便提下如何给每列设置标头:
            设置标题字段(先把ColumnsHeadersVisible设置为true)
            this.dgvMain.Columns[0].HeaderText = "编号";
            this.dgvMain.Columns[1].HeaderText = "日期";
            this.dgvMain.Columns[2].HeaderText = "标题";

-----------------------------

还想介绍一下using()在连接数库代码中的用法。看到很多朋友没有使用过它。我强烈建议养成使用using的习惯。它帮我们管理数据库连接,非常安全简便

private DataSet GetConn()
        {
            string connstr = ConfigurationManager.ConnectionStrings["MySqlConnection"].ConnectionString;
            string sqlstr = "SELECT * FROM UserInfo";
            DataSet ds = new DataSet();
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                SqlCommand cmd = new SqlCommand(sqlstr, conn);
                cmd.CommandType = CommandType.Text;
                SqlDataAdapter ada = new SqlDataAdapter();
                ada.SelectCommand = cmd;
                ada.Fill(ds);
            }
            return ds;
        }

这是这样的用法。它把我们连接数据库,执行SQL命令,使用适配器返回数据集的操作全部包含在内
这样。我们不需要去关心它的conn的资源是否关闭。当我们不用到它时。系统自动帮我们安全关闭

而且,注意到了吗?我没有写conn.open()
是的。可以不写这句。

但有个条件:当我们使用适配器的时候,就不用写open()。
否则就要写上。

对了,如果大家有兴趣。可以去下载微软难得的开源DLL--SQLHelper
它把所有的数据库操作的方法全部封装在内。包括增删改查。我们只需要引用,调用。
这可是官方的东东。值得一试。我看了下他的源码。里面也是采用的using()

第一次在这发主题帖,希望大家多多交流