WinForm中如何设置DataGrid其中某一列为只读

evafly920 2004-11-25 03:32:57
1.WinForm中如何设置DataGrid其中某一列为只读
2.用DataSet绑定DataGrid时,如何设置DataGrid的表头,比如数据库中字段名称是Field1,那么默认
DataGrid中的列名是Field1,当然可以用“Select Field1 As 中文名...”语句,但是字段很多的话这就有点烦琐,WinForm中能否像WebForm中的DataGrid一样定制要显示的字段以及样式?
...全文
401 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wellshddelphi 2004-12-02
  • 打赏
  • 举报
回复
sz
evafly920 2004-11-25
  • 打赏
  • 举报
回复
非常感谢
水如烟 2004-11-25
  • 打赏
  • 举报
回复
奇怪,BLOG这两天不大正常
水如烟 2004-11-25
  • 打赏
  • 举报
回复
一个通用的DataGridTableStyle的做法
可以实现自适应列宽、只读、时分显示、事件、任意位置加列、单击单元格背景色设置等等,操作简便
http://dev.csdn.net/develop/article/47/47863.shtm
evafly920 2004-11-25
  • 打赏
  • 举报
回复
UP
evafly920 2004-11-25
  • 打赏
  • 举报
回复
非常感谢Eddie005(♂) 暴赱 (︶﹏︶)
我用了行不通
改为VB.Net代码也是一样的结果
Eddie005 2004-11-25
  • 打赏
  • 举报
回复
再罗嗦一句: 上面的方法copy过去编译不通过是因为调用了我自己的类Common.MySettings,去掉这些就可以了
landlordh 2004-11-25
  • 打赏
  • 举报
回复
哇,時間一樣哦
landlordh 2004-11-25
  • 打赏
  • 举报
回复
1.在樣式是中改
dg.ReadOnly = true;

2.也可以在數據源中設為
ds_rec.Tables("rec").DefaultView.AllowEdit = False
Eddie005 2004-11-25
  • 打赏
  • 举报
回复
1.WinForm中如何设置DataGrid其中某一列为只读
------------
注意我上面给出的方法,
注释掉dg.ReadOnly = true;

可以单独设置每一列
tmpColumn.ReadOnly
Eddie005 2004-11-25
  • 打赏
  • 举报
回复
/// <summary>
/// 【方法01】:设置DataGrid样式
/// </summary>
public static void InitDataGridHeader(DataGrid dg,string[] mColumnsName,string[] mColumnsHeader,float[] mColumnsWidth)
{
if(mColumnsName.Length != mColumnsHeader.Length || mColumnsHeader.Length != mColumnsWidth.Length)
{
Common.ShowMsg("系统错误:输入参数不正确,请联系系统开发人员");
return;
}

bool canSort = dg.AllowSorting;

dg.TableStyles.Clear();
DataGridTableStyle myStyle = new DataGridTableStyle();
dg.TableStyles.AddRange(new DataGridTableStyle[]{myStyle});
myStyle.DataGrid = dg;

for(int i=0;i<mColumnsName.Length;i++)
{
DataGridTextBoxColumn tmpColumn = new DataGridTextBoxColumn();
tmpColumn.Format = "";
tmpColumn.FormatInfo = null;
tmpColumn.HeaderText = mColumnsHeader[i];
tmpColumn.MappingName = mColumnsName[i];
tmpColumn.Width = Convert.ToInt32(mColumnsWidth[i] * Common.MySettings.myFontSize / 10.5F);
myStyle.GridColumnStyles.Add(tmpColumn);
}//end of for(int i=0;i<mColumnsName.Length;i++)

myStyle.HeaderForeColor = SystemColors.ControlText;
myStyle.MappingName = dg.DataMember;
myStyle.AlternatingBackColor = Color.Azure;//Color.SeaShell;
myStyle.GridLineStyle = DataGridLineStyle.Solid;
myStyle.GridLineColor = SystemColors.Control;
myStyle.HeaderBackColor = SystemColors.ControlLight;
myStyle.HeaderFont = new Font(Common.MySettings.myFontName,9F,FontStyle.Bold, GraphicsUnit.Point, ((System.Byte)(134)));

dg.Font = Common.MySettings.myFont;
dg.AllowSorting = canSort;
dg.TableStyles[0].AllowSorting = canSort;
dg.ReadOnly = true;
//dg.CaptionVisible = false;

}

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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