С# учебничек

Page 40

Глава 31. Windows Forms 1093 /// <summary> /// Summary description for FolderTreeCtrl. /// </summary> public class FolderTree : System.Windows.Forms.TreeView { string _rootFolder = ""; bool _showFiles = true; bool _inInit = false; public FolderTree() { } [Category("Behavior"), Description("Gets or sets the base or root folder of the tree"), DefaultValue("C:\\ ")] public string RootFolder { get {return _rootFolder;} set { _rootFolder = value; if(!_inInit) InitializeTree(); } } [Category("Behavior"), Description("Indicates whether files will be seen in the list. "), DefaultValue(true)] public bool ShowFiles { get {return _showFiles;} set {_showFiles = value;} } [Browsable(false)] public string SelectedFolder { get { if(this.SelectedNode is FolderNode) return ((FolderNode)this.SelectedNode).FolderPath; return ""; } } } }

Здесь добавлены три свойства: ShowFiles, SelectedFolder и RootFolder. Обратите внимание на атрибуты этих свойств. Мы установили Category, Description и DefaultValues для ShowFiles и RootFolder. Эти два свойства появятся в браузере свойств в режиме проектирования. SelectedFolder на самом деле не имеет смысла во время проектирования, поэтому для него установлен атрибут Browsable=false. SelectedFolder не появится в браузере свойств, однако, поскольку это общедоступное свойство, оно появится в IntelliSense и будет доступным в коде. Далее нужно инициализировать загрузку файловой системы. Инициализация элемента управления может оказаться непростой. Инициализация — как во время проектирования, так и во время выполнения — должна быть хорошо продуманной. Когда элемент управления устанавливается в конструкторе, он на самом деле запускается. Если, например, в конструкторе имеется обращение к базе данных, то это обращение выполнится, когда вы перетащите элемент управления в поле конструктора. В случае FolderTree это может повлечь за собой определенные последствия.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.