如果想在程序中修改系统对数字设置,我要怎么写语句呢?而且在程序关闭时恢复原设置。

解决方案 »

  1.   

    如:
    ?FormatNumber(.123, 2,vbTrue )
    0.12
      

  2.   

    修改注册表HKEY_CURRENT_USER\Control Panel\International下的iLZero值,0和1
      

  3.   

    写一个对数字处理各种方式的方法,在你需要处理数字的地方都调用一下,再返回处理后的数字
    修改系统的设置就直接对这个方法进行修改
    public strPZ as string '配置值public function AAA(byval dblNum as double) as double 
        select case strPZ
            case: 配置1
               formatnumber....
            case: 配置2 
               formatnumber....
            .....
    end function
    在程序需要对数字进行处理的地方调用一下AAA大体就是这样
      

  4.   

    你可以写一函数,再加一复选框,如果选中时则数字显示调用函数FormatNumber处理,否则不处理。
      

  5.   

    我要把小数点前的0写出来,fvflove告诉我用下面的设置,我觉得挺好的,可手动设置太麻烦,也不灵活,我想把下面的这些设置写在程序里,且一旦用完马上返回原设置。《开始 => 设置=> 打开控制面板 区域和语言选项=>区域选项(选项卡)=>自定义=>进入下一对话框 
    数字(选项卡)=>零起始显示 => 改为 0.X 类型.》
    至于实现小数点前0写出来其实我也能写出好多方法,只是想找出另一方法而已,同时也掌握了修改控制面板设置的方法,所以还请高手指点。
      

  6.   

    使用API函数,去搜索一下,很简单
      

  7.   

    还是通过修改注册表解决了
    On Error GoTo errhandler'修改注册表使小数点前0显示
    Dim aa, bb
    Set aa = CreateObject("Wscript.shell")
    bb = aa.regread("HKEY_CURRENT_USER\Control Panel\International\iLZero")
    aa.regwrite "HKEY_CURRENT_USER\Control Panel\International\iLZero", 1

    Set s = CreateObject("scriptcontrol")
    s.language = "vbscript"
    Text4 = Round(s.eval(a), 10)
    Set s = Nothing
    flag = True
    'If Text4 < 1 And Text4 > 0 And Left(Text4, 1) = "." Then Text4 = 0 & Text4
    'If Text4 > -1 And Text4 < 0 And Left(Text4, 2) = "." Then Text4 = "-0" & Abs(Text4)
    '还原注册表
    aa.regwrite "HKEY_CURRENT_USER\Control Panel\International\iLZero", bb

    Exit Sub
    errhandler:    Text4 = "e"