关于VSFlexGrid在Win7系统上无法使用滚动条的解决历程。

原创 2011年10月28日 11:13:18

项目信息:

开发环境:WindowsXP + VC6

运行环境:WindowsXP、Widnows2003、Windows 7

皮肤套件: Xtreme ToolkitPro 2008 Vol 2 (12.1.1)

使用控件:C1 Studio for ActiveX 8.0(2004版) :使用了 C1Sizer 、C1Tab 、VSFlexGrid 8.0

数据访问:ADO(OLEDB)

 

现象:

    1:整个软件在WindowsXP、Windows2003上运行正常,Vista没测试过。

    2:公司很多的笔记本系统为Win7,有部分台式机也为Win7,软件能正常启动,VSFlexGrid表格也能正常显示,但是表格的滚动条无法滚动,只能通过在表格上按键盘的方向键来滚动数据。

 

解决历程:

    1:一开始以为是C1Sizer的问题,但经测试,发现没有使用C1Sizer的窗体也同样出现此问题,排除了。

    2:网上搜索相关问题,在Component One的论坛上发现VSFlexGrid8在win7上确实无法使用滚动条,但最新的C1 Studio for ActiveX 2011版本解决了此问题

    3:下载最新的2011版本,同时在CSDN下载频道里下载了2011版本的注册机。一开始由于没有卸载掉原来的2004版本,所以导致无法安装成功。后来也解决了。

    4:安装后建立一个对话框的工程测试,在对话框中加入VSFlexGrid的2011版本,然后在Win7上运行测试,发现能正常使用滚动条

    5:于是乎我用自己的项目软件在Win7上注册VSFlexGrid的2011版本,启动软件,发现仍然无法使用表格的滚动条,难道不是VSFlexGrid的版本问题?

    6:但我发现,明明刚刚建立用来测试的小例子就能正常滚动,为什么原来项目的就不行呢?那就是排除了VSFlexGrid的版本过旧的问题。

    7:最后发现,除了表格控件外,测试例子和项目唯一不同的地方是项目使用了皮肤套件,难道是套件问题?我把项目的皮肤(Office2007.cjstyles)加载去除后做了测试,竟然VSFlexGrid能正常在Win7上使用滚动条了,一切正常。

    8:原来是Xtreme ToolkitPro 2008 的皮肤不兼容Win7造成的,后来尝试不使用皮肤而且加载2004版本的VSFlexGrid,也能正常滚动。加载其它皮肤一律不行,证实了问题所在。

 

最后解决办法:

    判断操作系统版本(http://blog.csdn.net/jhkdiy/article/details/6913465),如果是win7则不加载皮肤,其它操作系统正常加载。

下面是加载皮肤的代码:

 

BOOL CTopdayERPApp::LoadSkinFile()
{
	// --------------------------------------
	// 日期:2010/06/12 17:23:14
	// 作者:申志远
	// 动作:下列代码加载office2007的皮肤,会影响整个
	//  	 应用程序的界面。
	// --------------------------------------

	// --------------------------------------
	// 日期:2011/10/28 11:10:53
	// 作者:申志远
	// 动作:因为皮肤在win7下会导致VSFlexGrid无法使用滚动条,所以
	//       判断操作系统版本,如果是win7则不加载皮肤。
	// --------------------------------------
	if (isWin7())
	{
		return TRUE;
	}

	CString m_strStylePath;
	getAppPath(m_strStylePath);
	m_strStylePath += _T("\\Styles\\Office2007.cjstyles");

	// 文件存在才开启总体皮肤效果
	CFileFind fs;
	if (fs.FindFile(m_strStylePath) == FALSE)
	{
		AfxMessageBox(_T("警告: 未能找到皮肤文件:\n") + m_strStylePath);
	}
	else
	{
		//XTPSkinManager()->SetApplyOptions(XTPSkinManager()->GetApplyOptions() | xtpSkinApplyMetrics);
		XTPSkinManager()->LoadSkin(m_strStylePath);
	}
	fs.Close();

	return TRUE;
}


 

VSFlexGrid使用技巧

如何实现将vsflexgrid中修改的数据反馈到数据库中? Private Sub vsflexgrid1_AfterEdit(ByVal Row As Long, ByVal Col As Lon...
  • km_afei
  • km_afei
  • 2016年11月18日 16:53
  • 1352

VSFlexGrid 控件属性方法一览表(带()为方法)

VSFlexGrid 控件属性方法一览表(带()为方法) 属性/方法名称        功能                           示例语法 AddItem()           ...
  • youfulan
  • youfulan
  • 2014年08月08日 16:15
  • 1358

vsflexgrid+打印整理后的方法

目录 合计功能放在表格里面... 2 合计功能赋值给文本框... 3 选择单元格变色,设置下拉框... 3 控制只能输入数字... 4 设置列不可编辑+设置数据库下拉框... 5 ...
  • u014700906
  • u014700906
  • 2017年02月27日 09:22
  • 358

VSFlexGrid使用技巧

如何实现将vsflexgrid中修改的数据反馈到数据库中? Private Sub vsflexgrid1_AfterEdit(ByVal Row As Long, ByVal Col As Lon...
  • u010803748
  • u010803748
  • 2016年04月08日 15:39
  • 1674

标准ie8下,出现滚动条,但是没有滚动块的解决方法

Html代码 全称 简称 地址 销售量 ...
  • qadada
  • qadada
  • 2014年02月25日 23:09
  • 5953

python中selenium操作下拉滚动条方法汇总

UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等;但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了。 比如下面这样一个网...
  • qq_36482772
  • qq_36482772
  • 2016年11月25日 00:09
  • 1253

MFC中ScrollBar滚动条控件的使用

在MFC需要有时需要用到混动条拖动屏幕和显示。现将滚动条控件ScrollBar的相关用法总结如下。 一、使用的步骤 1、在对话框中拖入CScrollBar控件,并修改ID, 2、在对话框的Ini...
  • u012273127
  • u012273127
  • 2017年03月14日 14:59
  • 1656

解决Winform中鼠标滚轮无法操作Panel滚动条的问题

C# - 解决Winform中鼠标滚轮无法操作Panel滚动条的问题  收藏 北风其凉   发表于 1年前 阅读 1718 收藏 3 点赞 0 评论 0 ...
  • mosangbike
  • mosangbike
  • 2017年06月23日 17:41
  • 1236

easyui datagrid 没数据时显示滚动条的解决方法

今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不...
  • xiayingping
  • xiayingping
  • 2013年09月24日 23:33
  • 12586

easyui frozen column的垂直滚动条不出现的问题及原因

最近在做eaysui的时候,datagrid滚动条忽然不出现了,然后使用firebug调试了半天了,发现是frozen column导致了,easyui的垂直滚动条是设置在column中,所以当只设置...
  • weu135
  • weu135
  • 2015年04月20日 11:38
  • 1556
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于VSFlexGrid在Win7系统上无法使用滚动条的解决历程。
举报原因:
原因补充:

(最多只允许输入30个字)