CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

百思不解的问题

楼主zwbs(雕牌洗衣皂)2001-05-22 15:02:00 在 VB / 基础类 提问

谁能让DATAGRID   的列宽自动随记录的宽度变化。  
   
   
  It   is   very   important   for   me   .  
   
  Thank   a   lot.  
  问题点数:20、回复次数:13Top

1 楼leonnet(里奥下的天空)回复于 2001-05-22 15:05:00 得分 0

关注Top

2 楼ouyangke(欧阳克)回复于 2001-05-22 15:06:00 得分 0

gzTop

3 楼kevin_gao(困了!累了!睡觉了!)回复于 2001-05-22 16:29:00 得分 3

With   Me.DBGrid1  
          .Columns(i).Width=len(某条记录)*(每个字符的点数)  
  End   with  
   
  其中i是你要改变的列号Top

4 楼liu_feng_fly(笑看风云 搏击苍穹 衔日月)回复于 2001-05-22 16:40:00 得分 1

有field(i).widthTop

5 楼zwbs(雕牌洗衣皂)回复于 2001-06-04 15:43:00 得分 0

请问,每个字符的点数是固定的还是变化的,是多少?  
  Top

6 楼OLD_VB_FAN(蓝星)回复于 2001-06-04 16:26:00 得分 0

GZTop

7 楼liu_feng_fly(笑看风云 搏击苍穹 衔日月)回复于 2001-06-04 18:09:00 得分 0

什么意思?Top

8 楼unruledboy(六月飞霜!)回复于 2001-06-04 19:29:00 得分 1

基本同意kevin_gao(天堂的耗子) 的说法Top

9 楼zwbs(雕牌洗衣皂)回复于 2001-06-05 16:04:00 得分 0

据我所知,在   Windows   中字符的点数(横向宽度)是不同的Top

10 楼l_you()回复于 2001-06-05 18:13:00 得分 0

zwbs(傻大胆)说的不完全正确。  
  应该是中文占两个屏幕的单位,英文占一个。可做如下判断。  
  dim   i   as   integer  
  dim   j   as   integer  
  dim   intLen   as   integer  
  dim   strTemp   as   string  
  strTemp="abcd发法"  
  j=len(strTemp)  
  for   i=1   to   j  
          if   asc(mid(strTemp,i,1))<0   then           '或者       Len(Hex(Ascmid(strTemp,i,1))))=4  
                  intLen=intLen   +   2  
          else  
                  intLen=intLen   +   1  
          end   if  
  next                  
   
   
  这样,intLen为混合长度。  
   
   
  With   Me.DBGrid1  
          .Columns(i).Width=intLen*(每个字符的点数)  
  End   with  
   
   
   
  Top

11 楼l_you()回复于 2001-06-05 18:13:00 得分 5

zwbs(傻大胆)说的不完全正确。  
  应该是中文占两个屏幕的单位,英文占一个。可做如下判断。  
  dim   i   as   integer  
  dim   j   as   integer  
  dim   intLen   as   integer  
  dim   strTemp   as   string  
  strTemp="abcd发法"  
  j=len(strTemp)  
  for   i=1   to   j  
          if   asc(mid(strTemp,i,1))<0   then           '或者       Len(Hex(Ascmid(strTemp,i,1))))=4  
                  intLen=intLen   +   2  
          else  
                  intLen=intLen   +   1  
          end   if  
  next                  
   
   
  这样,intLen为混合长度。  
   
   
  With   Me.DBGrid1  
          .Columns(i).Width=intLen*(每个字符的点数)  
  End   with  
   
   
   
  Top

12 楼zwbs(雕牌洗衣皂)回复于 2001-06-16 03:07:00 得分 0

请问:字符   L   and   1   占的列宽是一样的吗?Top

13 楼LiuJunjiang(蓝精灵)回复于 2001-06-16 07:53:00 得分 10

哈哈,这次没来晚  
  可以用Textwidth函数取得i列所有行字符串中宽度的最大值  
  然后赋给DataGrid.Columns(i).width  
   
  根据经验可能稍微要窄一些,只要价格常量给他就行  
  BTW:宽度单位只能是Tips  
  Top

相关问题

  • 百思不解的问题
  • 百思不解,JBuider是怎样了?
  • 百思不解,请指点迷津
  • 百思不解的问题(菜).
  • 一个百思不解的问题
  • 今天遇到很奇怪的事,百思不解。。。
  • 百思不解的存储过程问题?
  • 是有关临时内存的事情吗?百思不解?
  • 读文本文件,哪错了?百思不解!
  • 这是怎么了?百思不解中......100分求救啊!!!

关键词

  • 字符
  • me
  • strtemp
  • 宽度
  • 变化
  • as integerdim
  • len

得分解答快速导航

  • 帖主:zwbs
  • kevin_gao
  • liu_feng_fly
  • unruledboy
  • l_you
  • LiuJunjiang

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo