zoukankan      html  css  js  c++  java
  • 关于FileDialog的路径问题

    InitialDirectory

    RestoreDirectory

    使用Reset()

    每次运行初始位置

    运行时记忆

    CurrentDirectory初始值

    CurrentDirectory改变

    有效

    True

    False

    设置的初始值

    True

    %startup%

    False

    有效

    False

    False

    设置的初始值

    True

    %startup%

    True

    无效或未设置

    True

    False

    上一次运行的值

    True

    %startup%

    False

    无效或未设置

    False

    False

    上一次运行的值

    True

    %startup%

    True

    有效

    重置项

    True

    设置的初始值

    False

    %startup%

    重置项

    无效或未设置

    重置项

    True

    上一次运行的值

    False

    %startup%

    重置项

    1. FileDialog[1] 在使用中,其RestoreDirectory属性很少被用到,这是因为它只与System.Environment.CurrentDirectory的值有关[2](也可以通过System.IO.Directory.GetCurrentDirectory() 方法获取),而与FileDialog实例所使用的路径无关。

    2. 当程序中不使用FileDialog.Reset() 方法时,InitialDirectory的值只在程序每次运行第一次调用FileDialog.ShowDialog() 方法时有效,后续调用打开对话框时将使用上一次的路径,这是由系统记忆的[3]

    3. 若要在程序中控制任意一次FileDialog.ShowDialog() 所使用的路径,则应将FileDialog.Reset() 和 InitialDirectory属性配合使用,调用Reset方法后FileDialog实例的所有属性均被重置,因此其他必要配置(如FileName、Filter、RestoreDirectory属性等)均需要重新指定,但是不需要对事件进行重新关联。


    [1] FileDialog是文件对话框的基类,此处代表其所有子类,包括OpenFileDialog和SaveFileDialog。

    [2] 当RestoreDirectory设置为True时,CurrentDirectory的值将保持在程序根目录下不会发生改变,否则将随对话框使用的路径而改变。

    [3] 根据C++相关的帖子中透露,CFileDialog的路径保存在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\ LastVisitedMRU中。

  • 相关阅读:
    真情感动看上海新闻娱乐频道“百家心”
    Treeview Navigation Web Part for SharePoint with SmartPart v1.0
    轻松玩转Typed DataSet, Part III
    微软Avalon和WinForms的发展蓝图
    Proxy Pattern using C#
    System.Threading.Timer类的TimerCallback 委托
    SmartPart v1.0 for SharePoint [Free Web Part]
    分布式应用架构中的数据传输对象(DTO)
    定制SharePoint Portal Server 2003站点的向导
    Bridge Pattern using C#
  • 原文地址:https://www.cnblogs.com/heroius/p/2247431.html
Copyright © 2011-2022 走看看