Vb6 重画上的欧洲数字转换

Vb6 重画上的欧洲数字转换,vb6,region,msflexgrid,Vb6,Region,Msflexgrid,我有一个flexgrid单元格,它不能按照我的要求处理欧洲数字格式。代码中的一些细节可能会从我这里抽象出来 目前,我的控制面板“本地区”设置为目标位置(丹麦/丹麦) 我可以成功地键入十进制值,例如丹麦格式的12,36(美国格式,当然是12.36) 该值被正确处理,并在传递给SQL并使用时进行处理 之后,我假设在下面和这条线上会发生各种检查 .Redraw=flexRDDirect 当网格试图重新绘制时, 我在这间牢房里的号码经过一些转换 示例 如果我输入12,36,我相信逗号会直接转换成小数点,

我有一个flexgrid单元格,它不能按照我的要求处理欧洲数字格式。代码中的一些细节可能会从我这里抽象出来

目前,我的控制面板“本地区”设置为目标位置(丹麦/丹麦)

我可以成功地键入十进制值,例如丹麦格式的12,36(美国格式,当然是12.36)

该值被正确处理,并在传递给SQL并使用时进行处理

之后,我假设在下面和这条线上会发生各种检查

.Redraw=flexRDDirect

当网格试图重新绘制时, 我在这间牢房里的号码经过一些转换

示例

如果我输入12,36,我相信逗号会直接转换成小数点,并且没有正确地从丹麦语格式转换成US格式(反之亦然),先使用内置函数。然后,在某个时刻,单元格被重新验证,并且它假设该值12.36仍然是丹麦格式,相当于一千二百三十六(但是写得很差,因为千位分隔符位于错误的位置)

所以现在我的值12,36(或美国的12.36),在丹麦语中变成了12.36,如果格式正确(千位分隔符位置正确),它实际上是1.236,00(丹麦语),现在是我原来值12,36的100倍

那么在vb6/flexgrid中是否有什么东西可以显式地将逗号转换为小数点,然后尝试进行本地格式化(实际上是将我的值乘以100)?在我看到值更改的
.Redraw=flexRDDirect
行中是否调用了某些内容?我怀疑某个地方有一些自定义代码试图适应本地区域格式本身,而不使用提供的函数。但也许不是


所有这些都不是我的编码专业领域。如果需要更多详细信息,请告诉我。

我发现了问题,正如我所怀疑的那样;其他程序正在尝试转换数值并格式化它。出错的过程试图将0和小数点添加到数字中。因此,当VB+区域设置(正确地)处理它时,它被弄糟了。

我已经编辑了你的标题。请参见“”,其中的共识是“不,他们不应该”。@JohnSaunders欢呼,错过了这一点。旧的VB5 MSFlexGrid及其VB6替代品MSHFlexGrid都有一个刷新属性,但它是布尔值。这真的是VB.Net吗?或者某些第三方控件大多数人不会有任何经验或文档?@Bob77我想他只是使用了比VB6附带的更新版本的flexgrid控件。嗯,这会很有趣。据我所知,除了.Net框架中的版本外,微软从未生产过更新的版本。