首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VsFlexGrid控件的有关问题

2012-03-09 
VsFlexGrid控件的问题在控件中要显示一日期列,而且日期格式也是可以自定义的,我现在的做法是:grid.ColData

VsFlexGrid控件的问题
在控件中要显示一日期列,而且日期格式也是可以自定义的,我现在的做法是:

  grid.ColDataType(1) = flexDTDate
  grid.ColFormat(1) = "dd/mm/yyyy hh:mm:ss"

使用时发现日期的显示格式受区域设置里面的日期格式设置的影响,不能按照指定的格式显示。
如果将列类型设为 String 类型然后自己格式化日期则显示没问题,但在此列上排序又出现问题。

遇到过此问题的朋友帮帮忙。

[解决办法]
能否修改系统日期格式?
记得以前学Dbase、FoxBase、FoxPro的时候,修改系统日期格式,以后在数据库中显示就会变。Excel表中也可以修改。
[解决办法]
不知道API有没有这样的功能?
[解决办法]
将第一行改为grid.ColDataType(1)= flexDTString即可
[解决办法]

VBScript code
Private   Const   LOCALE_STIMEFORMAT   =   &H1003     Private   Const   LOCALE_SSHORTDATE   =   &H1F     Private   Const   WM_SETTINGCHANGE   =   &H1A     Private   Const   HWND_BROADCAST   =   &HFFFF&     Private   Declare   Function   SetLocaleInfo   Lib   "kernel32"   Alias   "SetLocaleInfoA"   (ByVal   Locale   As   Long,   ByVal   LCType   As   Long,   ByVal   lpLCData   As   String)   As   Boolean     Private   Declare   Function   PostMessage   Lib   "user32"   Alias   "PostMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   ByVal   lParam   As   Long)   As   Long     Private   Declare   Function   GetSystemDefaultLCID   Lib   "kernel32"   ()   As   Long     Private   Declare   Function   GetLocaleInfo   Lib   "kernel32"   Alias   "GetLocaleInfoA"   (ByVal   Locale   As   Long,   ByVal   LCType   As   Long,   ByVal   lpLCData   As   String,   ByVal   cchData   As   Long)   As   Long         Private   Sub   setdateformat()             Dim   dwLCID   As   Long,   i   As   Long             Dim   lpLCData   As   String   *   255,   cchData             cchData   =   Len(lpLCData)             dwLCID   =   GetSystemDefaultLCID()             i   =   SetLocaleInfo(dwLCID,   LOCALE_SSHORTDATE,   "YYYY/dd/mm")   '设置短日期格式             PostMessage   HWND_BROADCAST,   WM_SETTINGCHANGE,   0,   0             i   =   SetLocaleInfo(dwLCID,   32,   "YYYY/dd/mm")   '设置长日期格式             PostMessage   HWND_BROADCAST,   WM_SETTINGCHANGE,   0,   0             i   =   SetLocaleInfo(dwLCID,   LOCALE_STIMEFORMAT,   "HH:mm:ss")   '设置时间格式             PostMessage   HWND_BROADCAST,   WM_SETTINGCHANGE,   0,   0     End   Sub         Private   Sub   Form_Load()             Call   setdateformat     End   Sub 

热点排行