请问DataGrid控件显示的数据内容都是一行显示,如何让他按列宽自动换行显示?

利而不害 2003-07-25 02:55:23
如果不调整列宽的话,内容一长就看不见了,我需要让他换行显示,如何做到?那个属性可以控制?谢谢大家
...全文
147 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
利而不害 2003-08-11
  • 打赏
  • 举报
回复
楼上几位,我用的是DataSet绑定的,不是用System.Windows.Forms.DataGridTextBoxColumn类的属性来贴数据的。
hq1305018 2003-08-04
  • 打赏
  • 举报
回复
To: lsfyfan(Jackfan)
就是继承System.Windows.Forms.DataGridTextBoxColumn类,重载paint方法啊,这不用再详细说了吧?自已动手试试比别人把代码贴给你不是更好。
Dragonraja 2003-08-04
  • 打赏
  • 举报
回复
是不是因为你输入的字符是"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"这样的
如果是这样,那DataGrid是不会换行的,他认为是一个单词,如果是"wwwwwwww wwwwwwww wwwwwwwww wwww www ww ww www ww ww"这样应该会自己换行的~~~
lsfyfan 2003-07-29
  • 打赏
  • 举报
回复
我最痛恨那些所谓的高手在那说自己已经实现, 但是却不肯多下笔墨告诉大家的.
sbzb 2003-07-29
  • 打赏
  • 举报
回复
jcaomao(草帽) 说的很正确!我就是这么做的
  • 打赏
  • 举报
回复
我这有个根据此列所有行中最长字符串作为此行的宽度,能满足你的要求吗?
helloqiner 2003-07-29
  • 打赏
  • 举报
回复
设置列宽
<asp:BoundColumn DataField="Area" HeaderText="Area"> <HeaderStyle Width="50px"></HeaderStyle>
</asp:BoundColumn>
lsfyfan 2003-07-29
  • 打赏
  • 举报
回复
有没有详细一些的例子呢? 多谢各位大侠.
利而不害 2003-07-29
  • 打赏
  • 举报
回复
说了半天,原来这个问题是有人知道答案的,难道没有高手愿意告诉大家吗?
利而不害 2003-07-28
  • 打赏
  • 举报
回复
To jcaomao(草帽)
你能给解释一下paint方法吗?或者告诉我哪里可以看到相关资料?谢谢!!

在paint方法里
string s = this.GetColumnValueAtRow(source, rowNum).ToString();
SizeF sz=g.MeasureString(s,parent.Font,bounds.Width);

其中source 是什么?SizeF 是什么类型?bounds又是什么?
cgsw12345 2003-07-27
  • 打赏
  • 举报
回复
很簡單﹐上面說對了﹗我就是那樣做的﹗
qingleo 2003-07-27
  • 打赏
  • 举报
回复
定义该列的宽度,并设置其为允许换行,这样可以达到的你目的吗?
jcaomao 2003-07-27
  • 打赏
  • 举报
回复
你重载System.Windows.Forms.DataGridTextBoxColumn,我就是这样做的

在paint方法里
string s = this.GetColumnValueAtRow(source, rowNum).ToString();
SizeF sz=g.MeasureString(s,parent.Font,bounds.Width);

这样算出了这各字符串所所占的面积,然后根据bounds的大小居中向里面画就行了
lsfyfan 2003-07-26
  • 打赏
  • 举报
回复
呵呵, 这个问题我早就问过了. 没人告诉我解决方案, 好像有人成功过的, 但是没告诉我:(
他称重载Paint, 你试试看.
bobxu2003 2003-07-26
  • 打赏
  • 举报
回复
我也为这个发愁,知道的请进来赐教,谢谢!
利而不害 2003-07-25
  • 打赏
  • 举报
回复
大家帮帮忙啊,跟贴的都有分,不知道的帮我顶一下也好啊,也给分,谢谢!!
derek 2003-07-25
  • 打赏
  • 举报
回复
up
名称 类型 描述 默认值 columns(列) array(数组) 数据表格列配置对象,查看列属性以获取更多细节。 null frozenColumns(固定列) array(数组) 跟列属性一样,但是这些列固定在左边,不会滚动。 null fitColumns(自适应列) boolean(布尔型) 设置为true将自动使列适应表格度以防止出现水平滚动。 false striped(显示条纹) boolean(布尔型) 设置为true将交替显示行背景。 false method(方法) string(字符串) 请求远程数据的方法类型。 post nowrap(截取) boolean(布尔型) 设置为true,当数据长度超出列时将会自动截取。 true idField(id字段) string(字符串) 表明该列是一个唯一列。 null url(超链接) string(字符串) 一个用以从远程站点请求数据的超链接地址。 null loadMsg(载入时信息) string(字符串) 当从远程站点载入数据时,显示的一条快捷信息。 Processing, please wait … pagination(分页) boolean(布尔型) 设置true将在数据表格底部显示分页工具栏。 false rownumbers(行数) boolean(布尔型) 设置为true将显示行数。 false singleSelect(单选模式) boolean(布尔型) 设置为true将只允许选择一行。 false pageNumber(当前页码) number(数字) 当设置分页属性时,初始化分页码。 1 pageSize(每页记录数) number(数字) 当设置分页属性时,初始化每页记录数。 10 pageList(可选择的每页记录数) array 当设置分页属性时,初始化每页记录数列表。 [10,20,30,40,50] queryParams(查询参数) object(对象) 当请求远程数据时,发送的额外参数。 {} sortName(默认排序) string(字符串) 当数据表格初始化时以哪一列来排序。 null sortOrder(排序顺序) string(字符串) 定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。 asc remoteSort(远程排序) boolean(布尔型) 定义是否通过远程服务器对数据排序。 true showFooter(显示行底) boolean(布尔型) 定义是否显示行底(如果是做统计表格,这里可以显示总计等)。 false rowStyler(行样式) function(函数) 返回样式,如:'background:red',function有2个参数: index:行索引,从0开始. row:对应于该行记录的对象。 loadFilter(载入过滤器) function(函数) 返回用以显示的已过滤数据,function有一个参数'data'表示原始数据,你可以将原始数据改变为规范的数据格式,该函数必须返回包含 'total'和'rows'属性的标准数据对象。 editors(编辑模式) object(对象) 定义当编辑一行时的编辑模式。 predefined editors view(视图) object(对象) 定义数据表格的视图。 default view
表格控件总览:   在VB开发环境中,表格控件在界面开发元素中占有重要的地位。它不仅有外观整洁、表达形式规范的优点,而且更重要的是它较高的信息表现率(就是相对于其他控件来说能够表达更多的信息),随着信息时代的到来,它的应用将更加的广泛。    那么在VB平台下,如何操作这一功能强大的控件元素呢?事实上我们知道,VB平台下面的表格控件是相当丰富的,总结下来提供了4种类型:Microsoft Data Bound grid Control、Microsoft Datagrid Control、Microsoft Flexgrid Control、Microsoft Hierarchial Flexgrid Control. 这四种表格各有其特点,下面我们一一讨论。   1. Microsoft Data Bound grid Control   此控件主要用于数据绑定(可以不绑定,但是因为不提供对单个cell的控制支持,所以实际上这样做是不经济的)。具体说来,就是数据源比较固定的情况下可以使用这种控件。   具体使用方法是设定此控件的datasource属性,就可以不用编写任何代码就可以显示数据源所指向的记录数据。比如可以将datasource设置为一个data控件,而data控件又指向数据库"成绩"的 一个"语文"表,那么当程序运行时,它就自动显示此"语文"表的数据。 基本步骤如下: 1、向工程上添加Microsoft Data Bound Grid Control控件,即DBGrid控件。 2、在窗体上添加DBGrid控件DBGrid1和Data控件Data1。 3、设置Data1的DatabaseName属性为你要看的数据库的名字。 4、设置Data1的RecordSource属性为表的名字或合法的SQL Select语句。 5、设置DBGrid1的DataSource属性为Data1。   从上面的分析看得出来,这个控件虽然操作方便,但是它也有局限性,就是不能对显示数据进行灵活的控制操作,比如有些数据允许用户修改,有些数据却不允许用户修改,而此控件却只能提供全部数据源的原子操作:即要么全部允许修改,要么就全部不允许。还有另外此控件也不提供对单个单元格(cell)进行操作,所以提供不了更为个性化的界面风格。   2. Microsoft Datagrid Control   此控件跟前面介绍的Data Bound grid Control控件很相似,也是主要进行绑定操作,而缺点和Data Bound grid Control完全一样。但是它跟Data Bound grid Control不一样的是其数据源的驱动引擎只能是OLEDB形式的,不能是DAO,比如就可以使用ADO数据控件,不能使用DATA控件。而Data Bound grid Control却刚好和它相反,这一点在开发中一定要注意。   3. Microsoft Flexgrid Control与Microsoft Hierarchial Flexgrid Control.   这里重点介绍这两种控件,因为在实际开发中,这两种控件应用的场合更多一些,它不仅能够反映数据,而且也能把数据的修改信息反映到数据库中去,所以弥补了上述两种控件的不足。   如果数据不需要修改,那么可以进行绑定操作,其方法跟前面介绍的完全一样,就是通过设置DataSource属性来完成数据显示工作。但是实际开发中,需要对整个表格控件更为灵活的显示控制。   在给出例程之前,有必要对这一控件进行比较详尽的认识:这种控件允许将文本或者图象放置于每个单元格之中,控件的Row与Col属性允许用户在代码中指定当前行和列,当然也可通过操作鼠标和键盘来改变这两个属性,而text属性指明当前单元格的文本。如果单元格的文本太长而不能完全显示出来的话,可以通过将WordWrap属性设置为true来达到显示的目的。下面将比较重要的属性小结如下:   DataSource---------用来指定需要绑定的数据源,比如data控件。   Cellpicture----------用来设定当前单元格的图象,便于显示该图象。此属性不能在设计时使用。   Col,Row---------------设定当前列和当前行,注意它们均是从0开始的,如果同时设定它们,可以指定当前的单元格。设计时也不能使用。   Cols,Rows---------------设置表格控件总的列数和行数。   Hwnd---------------表格句柄,可以结合Windows API对表格控件进行更高级的控制。   Text---------------指定当前的单元格的文本内容。   TextMatrix(i,j)-------此属性比较重要,它用来指定第I行和第j列所确定的单元格的文本内容。它等价于下面的代码: MSHFlexGrid1.Rows =i MSHFlexGrid1.Cols =j MSHFlexGrid1.Text =指定的字符串   WordWrap-------为ture时可以在当前单元格换行显示,否则如果要显示的字符的长度超过列,那么就不能显示完全。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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