zoukankan      html  css  js  c++  java
  • CodeSmith实用技巧(二):使用FileNameEditor

    FileNameEditor类给我们提供了在CodeSmith属性面板中弹出打开或保存文件对话框的方式,在使用时,首先在模版中得添加对程序集CodeSmith.CustomProperties的引用。然后就可以在模版中定义一个属性来使用FileNameEditor

     1<script runat="template">
     2
     3private string _userFileName = @"c:\temp\test.txt";
     4
     5 
     6
     7[Editor(typeof(FileNameEditor), typeof(System.Drawing.Design.UITypeEditor)),
     8
     9Category("Custom"), Description("User selected file.")]
    10
    11 
    12
    13public string UserFileName
    14
    15{
    16
    17      get {return _userFileName;}
    18
    19      set {_userFileName= value;}
    20
    21}

    22
    23</script>
    24
    25

    当我们执行该模版时,在属性面板中同样显示为一个按钮:

    单击该按钮,弹出一个保存文件的对话框:

    我们也可以通过FileDialogAttribute来自定义弹出的对话框,修改模版为:

     1private string _openFileName = @"c:\temp\test.txt";
     2
     3
     4[Editor(typeof(FileNameEditor), typeof(System.Drawing.Design.UITypeEditor)),
     5
     6FileDialogAttribute(FileDialogType.Open, Title="Select Input File"),
     7
     8Category("Custom"), Description("User selected file.")]
     9
    10 
    11
    12public string OpenFileName
    13
    14{
    15
    16      get {return _openFileName;}
    17
    18      set {_openFileName= value;}
    19
    20}

    21
    22

    弹出的对话框如下所示:

    当我们想用一个文件夹的名称来代替文件时,可以使用FolderNameEditor类。

     1<%@ Assembly Name="System.Design" %>
     2<script runat="template">
     3private string _outputDirectory = @"c:\temp";
     4[Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor)),
     5Category("Custom"), Description("Output directory.")]
     6public string OutputDirectory
     7{
     8       get {return _outputDirectory;}
     9       set {_outputDirectory= value;}
    10}

    11</script>
    12
    13

    FileNameEditor重要方法和属性介绍:

    公共方法:

    名称

    描述

    EditValue

    使用由 GetEditStyle 方法提供的编辑器样式编辑指定的对象

    GetEditStyle

    获取 EditValue 方法所使用的编辑样式

     

    支持TerryLee的创业产品Worktile
    Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
    https://worktile.com
  • 相关阅读:
    移动端输入框的那些事
    HTML的各个标签的默认样式
    window.location.Reload()和window.location.href 区别
    JavaScript惰性函数定义
    JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
    jQuery验证控件jquery.validate.js使用说明+中文API
    统计网页浏览次数
    vue 组件开发 props 验证
    vue过滤器在v2.0版本用法
    JQ中get()与eq()的区别
  • 原文地址:https://www.cnblogs.com/Terrylee/p/305594.html
Copyright © 2011-2022 走看看