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
  • 相关阅读:
    Database
    模式匹配
    About Unicode
    Dive into python学习笔记
    Python基本概念及零碎知识点
    Djnago的一些零碎知识点
    python项目练习3:万能的XML
    Django的第一个web程序及深入学习
    Poj1195&tyvj1474二维线段树
    zoj2319Beautiful People Dp
  • 原文地址:https://www.cnblogs.com/Terrylee/p/305594.html
Copyright © 2011-2022 走看看