【PropertyGrid问题】如何禁止展开 Font,Image,Size 等类型的属性

blackfire1024 2011-03-09 01:46:02
使用 PropertyGrid 显示和修改控件的属性的确很方便

但随之而来的问题是有些控件的属性,
我不希望PropertyGrid显示展开的子属性(嵌套属性)
通俗点讲就是不希望它显示前面的加号

比如
Control的Size
TextBox的Font
PictureBox的Image

这些属性都会额外的展开其子属性
Size:Width,Height;
Font:Name,Size,Unit...;
Image:RawFormat,Size...;
...

目的也很简单,
就是为了多语言显示,
当这些结构为控件属性时,
无法控制其结构属性显示的文本,
因此希望禁止显示这些结构属性


网上的例子也查了很多
实现 ICustomTypeDescriptor
创建自定义的 PropertyDescriptor
同样只能处理第一层的属性,
而对于子属性依旧无法控制

当 PropertyGrid 要显示某一个对象的属性时
会同时检查该属性的Attributes
是否包含 TypeConverterAttribute
即该类型是否支持 TypeConverter

一旦检测到该类型存在自定义的 TypeConverter
那么就会调用其中的 GetProperties 和 GetPropertiesSupported 方法
获取该类型的属性信息(如 Size的Width和Height)

自定义的类型默认是不展开的,
因为它未实现对应的 TypeConverter

可惜的是象Size、Image、Font这些基础结构
是有对应的 TypeConverter 实现的
Size --> SizeConverter
Image --> ImageConverter
Font --> FontConverter

于是
假如当我有一个自定义类型 Custom
包含了属性 Prop ,Prop 是这些基础结构(Size、Image、Font)时
无论我怎么做,在PropertyGrid中都会把 Prop 属性展开
而开展的属性对于用户来讲是无任何意义的

希望有遇到此类问题并解决的朋友能指导一下
未遇到此类问题的朋友可以一起讨论研究一下

谢谢
...全文
339 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackfire1024 2011-03-09
  • 打赏
  • 举报
回复
刚又试了一下

通过实现 ICustomTypeDescriptor +
继承 PropertyDescriptor 的方法
还是可以达到我的目的

关键在于重写 PropertyDescriptor 中的 Converter 属性
判断当遇到这些不需要显示子属性的类型(如Size)时
返回自定义的 HideSubPropConverter

不过也有不方便之处是我要为每一个这样的类型
实现相应的 TypeConverter 和 PropertyDescriptor
bloodish 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 blackfire1024 的回复:]
那通过继承 PropertyGrid 能不能达到目的呢?
[/Quote]
没有尝试过,不好判断.
个人觉得,如果你要实现工作量不小.
blackfire1024 2011-03-09
  • 打赏
  • 举报
回复
那通过继承 PropertyGrid 能不能达到目的呢?
bloodish 2011-03-09
  • 打赏
  • 举报
回复
如果要显示属性的控件是你自定义的控件,可以隐藏基类的属性,如:

[TypeConverter(typeof(HideSizeSubPropConverter))]
public new Size Size
{
get { return base.Size; }
set { base.Size = value; }
}

如果是标准控件,跟Property关联的Attribute/Converter是无法动态修改的
blackfire1024 2011-03-09
  • 打赏
  • 举报
回复
我不想重新定义一个 MySize的属性
去完成和 Size 属性一模一样的功能

除非没有其他方法了,才考虑这个办法
blackfire1024 2011-03-09
  • 打赏
  • 举报
回复
继承并实现 TypeConverter 是没问题啊
但是继承好的类 要用 TypeConverterAttribute 和 类或者对应属性关联

类似 Control.Size 我是无法修改他的 TypeConverterAttribute的
因为在 .net 内部已经关联好了
bloodish 2011-03-09
  • 打赏
  • 举报
回复
对于Size

public class HideSizeSubPropConverter : SizeConverter
{
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
{
return new PropertyDescriptorCollection(null); ;
}
}
[TypeConverter(typeof(HideSizeSubPropConverter))]
public Size MySize { get; set; }

Font,Point类似处理即可
Version 13.0.2.13 (4/16/2021) TwwDataGrid - Performance with most recent OS X/BigSur was noticeably slower in painting/scrolling. We recommend adding the following line of code to your project source before the initialize which uses metal graphics and is faster to paint. ​begin FMX.Types.GlobalUseMetal := True; // add this line. Application.Initialize; Application.CreateForm(TMainDemoForm, MainDemoForm); end; ​ Note that also this build has a new method of painting the default text in the grid that is significantly faster even when metal is not used. If there are any unforeseen issues, you can return to the old behavior by adding this line of code in your main project source. ​ wwGlobalManager.InfoPowerControlsManager.TextPaintingNew:= false; Application.Initialize; ​ Note: You will need to add the units fmx.types to resolve the GlobalUseMetal reference and add fmx.wwmanager to resolve the TextPaintingNew reference. TwwDataGrid - Footer painting would incorrectly clear grid's data rows in some cases such as when the Imagecontrol property was assigned as the background image.. This problem is fixed. TwwLayoutGrid/TwwDataGrid - Retina painting on Mac OS X was not as sharp before for custom controls. TwwLayoutGrid - TwwEdit embedded in layout grid with a different font size (overridestylesettings.fontsize assigned) would paint text too large before in OSX. This problem is fixed. TwwListBox - Right Accessory icon would disappear if changing visibility of controls within the listbox during runtime. This problem is fixed.
Version 1.7 ----------- - ADD: Delphi/CBuilder 10.2 Tokyo now supported. - ADD: Delphi/CBuilder 10.1 Berlin now supported. - ADD: Delphi/CBuilder 10 Seattle now supported. - ADD: Delphi/CBuilder XE8 now supported. - ADD: Delphi/CBuilder XE7 now supported. - ADD: Delphi/CBuilder XE6 now supported. - ADD: Delphi/CBuilder XE5 now supported. - ADD: Delphi/CBuilder XE4 now supported. - ADD: Delphi/CBuilder XE3 now supported. - ADD: Delphi/CBuilder XE2 now supported. - ADD: Delphi/CBuilder XE now supported. - ADD: Delphi/CBuilder 2010 now supported. - ADD: Delphi/CBuilder 2009 now supported. - ADD: New demo project FlexCADImport. - FIX: The height of the TFlexRegularPolygon object incorrectly changes with its rotation. - FIX: Added division by zero protect in method TFlexControl.MovePathSegment. - FIX: The background beyond docuemnt wasn't filled when TFlexPanel.DocClipping=True. - FIX: In "Windows ClearType" font rendering mode (OS Windows mode) the "garbage" pixels can appear from the right and from the bottom sides of the painted rectangle of the TFlexText object. - FIX: The result rectangle incorrectly calculated in the TFlexText.GetRefreshRect method. - FIX: Added FPaintCache.rcPaint cleanup in the TFlexPanel.WMPaint method. Now it is possible to define is the drawing take place via WMPaint or via the PaintTo direct call (if rcPaint contain non-empty rectangle then WMPaint in progress). - FIX: The TFlexPanel.FPaintCache field moved in the protected class section. Added rcPaint field in FPaintCache that represents drawing rectangle. - ADD: In the text prcise mode (TFlexText.Precise=True) takes into account the rotation angle (TFlexText.Angle). - FIX: Removed FG_NEWTEXTROTATE directive (the TFlexText Precise mode should be used instead). - FIX: The TFlexRegularPolygon object clones incorrectly drawed in case when TFlexRegularPolygon have alternative brush (gradient, texture). - ADD: Add TFlexPanel.InvalidateControl virtual method which calls from TFle
hat's New in Foxit PDF Editor 2.2.1 ====================================================================================================================== 1. Fixed a crash issue which occurs when closing any palette of the five image toolbars within the Image Editor window, or closing the “Select Shading Style” box in the Shading Editor window. 2. Fixed a crash which might occur while dragging Property List. 3. Fixed a crash issue when ESC/Enter or close the tool box is selected after dragging it out from toolbar. 4. Fixed a possible crash issue while performing a text using Search Toolbar. 5. Fixed the inability to select or edit certain fonts. 6. Fixed a display problem while dragging Foxit PDF Editor between multiple monitors. 7. Fixed a document save issue to edited document originally created by FreePDF XP. 8. Fixed an issue where some pages exported from certain PDF files have overlarge sizes. 9. Eliminated erroneous messages when exporting certain PDF files. 10. Fixed a refresh issue while zooming out on some certain PDF files. 11. Fixed a preview display problem when exporting pages from some certain PDF files. 12. Fixed a problem with cursor display in the Image Editor window. 13. Optimized the feature for image editing. 14. Automated recall of previous windows size settings. 15. Other minor bug fixes to enhance user experience. What's New in Foxit PDF Editor 2.2 ====================================================================================================================== 1.Floating Panes To customize your workspace, users can float and move Bookmark Panel and Property Panel to any ideal position of the page, ideal for users for not utilizing the feature or to get it out of the way. 2.Finding Text This feature displays given strings of text from the searched PDF file and highlights the returned matched text. This useful function is fast and easy for users looking for text within a document or an article. 3.Navigating with Bookmarks Navigating through bookmarks is an efficient way for users to link to the target location quickly. To jump to a topic that you are interested, you can just simply click the bookmark. 4.Viewing Annotations The View Annotations function enables users to view the annotations added to the PDF document. Users are able to easily check all the comments by checking the option to “Show Comments” on the status bar of the workspace. 5.Rulers and Grids This feature provides horizontal and vertical rulers and grids to help users align and position objects precisely on the page, as well as measure the dimensions of the shapes. The snap to Grid Function automatically positions text and other objects to the closest intersection of the grids as you place or move them on the page. 6.Easier Text Setting Actions Making Editor more intelligent and user-friendly, users now are able to set the attributes of the text in the “Add new text objects” dialog box directly, including font, color, size, horizontal scale, line gap, etc,. Adding your own text to PDFs is amazingly fast and easy. 7.Bug Fixes Fixed bugs as technical by our inside teams and user feed back. What's New in Foxit PDF Editor 2.1 ====================================================================================================================== Foxit PDF Editor 2.1 has introduced some new features and enhancements that are listed below: 1. Shading Object Support 2. Converting Text of Path 3. Adding Shapes in Non-Graphics Editing Mode 4. Removing all evaluation marks at once 5. Alignment Support
0.83.5.820 +---------------------------------------------------------------------------------------- - 0000796: DBGrid: Render bug when Column color is clWindow and project is created with 0.82 - 0000795: Grid: Cell background color change poor render performance - 0000791: UniDBGrid, UniStringGrid: Option to disable custom renderer to speed-up render time. 0.83.4.819 +---------------------------------------------------------------------------------------- - 0000789: UniDBComboBox, UniDBListBox: Edit mode is not set when changed - 0000784: TUniStringGrid: Data not restored after decreasing/increasing Row count - 0000788: Bug in Grid Row/Col translation - 0000787: UniDBGrid: Broken CellSelect behavior - 0000786: MessageDlg and mtInformation bug. 0.83.2.817 +---------------------------------------------------------------------------------------- - 0000781: UniDBGrid: Row selection bug when no data is in dataset - 0000779: UniStringGrid: OnClick event implemented - 0000780: UniDBGrid: OnCellClick bug - 0000777: TUniDBGridColumn.ReadOnly property - 0000778: UniStringGrid: Assigning HTML content to cells - 0000776: UniDBLookUpXXX: ListSource cursor position does not follow Lookup value - 0000773: UniDBGrid: Column.Title.Font/Color - 0000771: UniDBGrid: Column.Font property - 0000772: UniDBGrid: Column.Color property - 0000775: UniFont: [fsUnderline, fsStrikeOut] implemented - 0000774: TUniStringGrid: OnDrawCell event - 0000769: UniDBGrid: Row position is ignored if row is immediately changed after a call to Open() - 0000673: UniDBGrid: OnDrawColumnCell event - 0000768: Better "ext\" folder translation - 0000766: TUniCalender.FirstDayOfWeek property - 0000767: TUniDateTimePicker.FirstDayOfWeek property - 0000765: UniImage: Bug when both Proportional and Stretch are true - New Demo: DrawCell 0.83.1.812 +---------------------------------------------------------------------------------------- - 0000764: KeyValue property for UniDBLookupXXX - 0000763: UniDBGrid doesn't handle TDataSet.Refresh() - 0000762: UniListBox and Items.Delete bug - 0000760: UniDBLookupXXX: KeyField value submit bug - 0000761: UniEdit and KeyXXX event bug - 0000759: UniDBLookupXXX: KeyField value problem 0.83.0.811 +---------------------------------------------------------------------------------------- - 0000756: MenuItem.Enabled property - 0000755: MenuItem.Visible not working in web mode. - 0000754: UniPageControl: UniTabSheet design time editor - 0000661: enabled/disabled property of TUniToolbarButton - 0000751: UniRadioButton value submission bug - 0000749: Changing ReadOnly := False in UniDateTimePicker & UniDbLookupComboBox raises AV - 0000721: Set ReadOnly := False on UniDB controls on runtime raises AV - 0000445: Customizable Timeout and Terminate pages. - 0000558: Customizable End of Session - 0000748: Field property for DB aware controls - 0000747: AV when trying to access the property TUniDBEdit.Field - 0000746: SessionManager: Bug when there is an Exception in session.Destroy - 0000745: TUniMemo.Clear bug - 0000740: UniTreeView: Node.Data not implemented - 0000744: UniDBMemo.Lines property - 0000743: UniDBMemo.Text porperty is not published - 0000739: UniTreeView: Items.Clear not implemented - 0000736: UniPageControl: Runtime assignment of OnChange event - 0000737: UniDBLookupXXX: Bug when there is " in string - 0000738: UniTreeView: GetFirstNode not implemented - 0000485: TUniButton renders non-themed! - 0000698: Toolbar Button Image/Text alignment - 0000732: TUniPageControl: Bug while setting designtime ActivePage - 0000716: Change Tab title in runtime - 0000507: Direct filename or image URL for TUniImage - 0000733: TUniScreenMask with a TUniPageControl does not work - 0000734: AutoScroll property for UniHTMLFrame - 0000680: The Alignment taRightJustify of a TUniDBGrid column - 0000610: TabOrder for dynamically created controls - 0000627: Unpublish OnChange in TUniComboBox web mode - 0000601: New Event in ServerModule to handle exceptions - 0000728: Disabled UniEdit does not receive values assigned with Control.Text := Value - 0000720: Tag property for DBGrid Columns - 0000723: DBGrid: numeric column is not aligned to right - 0000722: Setting Align := alCenter on DBGridColumns does not work - 0000715: OmniHTTPD and UniGUI ISAPI - 0000724: Runtime assignment for Align/Alignment property of UniDbGrid column - 0000714: UniDBGrid: Implement StripeRows property - 0000712: raise error if Form owner is not either TUniGUIApplication or TApplication - 0000609: TUniTimer: Attach to TUniScreenMask - 0000703: TUniDBLookUpxxx bug when datasource and datafield are not assigned - 0000731: Broken TabOrder in 0.82.0 - 0000708: UniGroupBox: Caption assignment when created dynamically - 0000706: UniEdit: Password char bug - 0000707: UniSplitter: ScreenMask doesn't work - 0000709: Changes in Form layout not reflected correctly - 0000437: AV when creating inherited forms when no projectgroup is available - 0000413: Maximized ExtWindow can't return to normal size - 0000697: UniPanel: Caption Alignment - 0000696: UniPanel: Caption - 0000699: UniPageControl: TabSheet is visible when TabVisible=False - New Demo: CustomException - New Demo: UniImage 0.82.1.804 +---------------------------------------------------------------------------------------- - 0000630: Big images in buttons - 0000692: Runtime creation and modification of DBLookup components - 0000693: UniDBLookup bug - 0000695: UniDBGrid: Broken OnCellSelect in 0.82.0 0.82.0.803 +---------------------------------------------------------------------------------------- - 0000668: UniDBGrid with data Memory leak - 0000686: New TUniHTMLFrame Component - 0000570: New TUniDBLookupComboBox and TUniDBLookupListBox Components - 0000689: CustomFiles property for ServerModule to add custom CSS and JS files - 0000688: Bug in installer Environment setter - 0000687: "Script" property for TUniForm for adding Custom JS - 0000665: Compatibility with multiple IP systems - 0000685: UniDBGrid: Ellipsis in first column bug (IE) - 0000690: UniDBGrid: OnTitleClick event - 0000684: UniEdit: Text alignment - 0000683: UniScreenMask bug with Maximized Form and mfPage set - 0000682: UniStringGrid: OnSelectCell bug - 0000679: Common DB Controls bug - 0000641: UniTabSheet.TabVisible property - 0000678: Core bug: Setting Align property at runtime - 0000677: Hiding or showing controls doesn't apply alignment/anchoring correctly - 0000675: Setting position of a UniTrackbar at run time - 0000671: UniDBListBox: Dataset is not set to edit mode after change - New Demo: DBLookup - New Demo: HTMLFrame - New Demo: Basic jQuery 0.81.2.801 +---------------------------------------------------------------------------------------- - TUniScreeMask issue with borderless MainForm - Installer: Bug resolved when selected Delphi version is not installed - XE DCU files compiled with Update 1 - Borderless MainForm bug fix 0.81.1.800 +---------------------------------------------------------------------------------------- - UniDBGrid: Critical bug in ISAPI mode - Critical bug in AssignGlobalDateParams 0.81.0.798 +---------------------------------------------------------------------------------------- - New Component UniDBText - Ability to create a windowless borderless MainForm - UniTreeView: Node dynamic add/delete support - UniTreeView: Several Memory leak issues - UniDBGrid: DBGrid.Column.Visible bug - PageControl: Render problem in invisible tabs - TUniListBox: Items are not rendered if placed on UniPageControl invisible Tab - ISAPI: Bug when pathInfo contains Unicode chars - TUniLabel Text alignment - UniDBGrid: _OnDataLoaded may be called before Grid is rendered - UniPageControl: TabIndex doesn't return correct index - UniComboBox in hidden TabPage bug in Chrome browser - UniApplication: New ClientInfo property - New Demo: TreeView - New Demo: ClientInfo - New Demo: Windowless 0.80.2.796 +---------------------------------------------------------------------------------------- - TUniChart moved to UniGUIEx package - TUniSplitter: Runtime create problem - Memory Leak in TUniForm 0.80.1.794 +---------------------------------------------------------------------------------------- - Apache web server and CoInitialize issue - UniSplitter Color in Web mode - UniSplitter broken and Ext JS 3.3.0 issue - New Component: TUniChart Component first preview - UniDateTimePicker: OnEnter, OnExit Events - UniGroupBox: CSS frame margin bug (IE) - TUniLabel: AutoSize problem - UniFileUpload: several changes - UniFileUpload: File names containing Unicode chars are returned correctly - Change color of label at runtime - Various runtime property assignment bugs - DataStores and AutoDestroy - Changing Server Port at runtime. - TabOrder and TabStop for Web - Upgraded to Latest Ext JS release (3.3.0) - UniTrackBar: Set Max at runtime - UniDBGrid: DataSet AfterEdit: Reload grid only when needed - New Demo: Chart Demo 0.79.1.788 +---------------------------------------------------------------------------------------- - UniRadioGroup: Render bug when control is disabled - Style:"color:#000000" in FontStyle bug - FileUpload bug - New TUniScreenMask component - Add startup "Loading..." message - Server Bindings property implemented - OwnerForm.IsDestroying: When owner is TUniFrame - DB Controls: Check IsDestroying - Allow suppressing "Ajax" and "Object not found" Errors - SynEdit: some unicode widechars cause problem in D2009+ (removed) - InsertControl/RemoveControl internal bug - TUniToolButton: Dynamic creation - UniDBGrid: Grid row doesn't change when table row changes - UniDBGrid: Master/Detail Support - uniDBGrid: Assigning ReadOnly property in runtime - uniDBGrid: Assigning Options.dgEditing property in runtime - UniForm: Event OnScreenResize implemented - UniForm: Event OnResize implemented - UniApplication: ScreenWidth, ScreenHeight Property - UniTreeView: AutoExpand Property - A mean to determine dimensions of the browser window - ExtPascal: Param Place Holders problem - TreeView: Full Tree load on first call - UniTreeView: TTreeNode.MakeVisible implemented - uniDBGrid: After opening grid row is set to real Dataset cursor location - UniGroupBox: Caption not visible bug - UniRadioGroup: Caption not visible bug - UniRadioButton: OnClick event implemented - UniLabel: Allow HTML Content - ServerModule: Implement Temp Folder Property - Unicode bug in ISAPI module - New Demo: Screen Size - New Demo: UI Mask - New Demo: Download Demo 0.78.0.783 +---------------------------------------------------------------------------------------- - Lots of changes and bug fixes in Unicode and codepage handling - Ajax Core: Queue process improvement - Don't respond Alert() to data requests - UniExtTimer.Stopall: check for null object - ExtJS: Test for "undefined" before destroy - UniDBGrid bug: FColumnsChanged is True after ConfigureExtColumns - A customized version of Indy included (10.5.7) - Unicode data transfer and IIS ISAPI bug - TUniTimer runtime enable bug - ExtPascal: StrToJS problem: Strings containing %nn - Unicode conversion bug - UniToolBar: ShowCaptions implemented - Inherited form Reader bug - Delphi XE: Unicode conversion problem - UniPageControl: Dynamic create: Initial ActiveTab bug? - New Demo: Unicode Demo (for D2009 and later) 0.77.1.781 +---------------------------------------------------------------------------------------- - D2009+ UniFrame creation problem - Other Project Wizard related bugs fixed 0.77.0.780 +---------------------------------------------------------------------------------------- - uniEdit, uniDBEdit: CharEOL property added - Buttons: Click Method implemented - New WebOptions property for uniDBGrid (Paged, PageSize) - CodeMirror: Missing Pascal keywords added - New Demo: CharEOL Demo 0.76.0.779 +---------------------------------------------------------------------------------------- - Delphi XE Support - uniTreeView: AddChild() Implemented - uniTreeNode: IsFirstNode() Implemented - ExtPascal: VarToJSON: WideString conversion bug - uniTreeView: D2009+ resource compatibility issue - In web mode some controls aren't assigned a default Width/Height - In StrToJs is not interpreted correctly. - UniSyntaxEdit: CodePress replaced with CodeMirror (CodePress files removed from installer) - Standalone server will display application name - Control parent assignment bug when parent is TUniForm - UniRadioGroup: runtime OnClick event assignment bug - Other minor changes and fixes - New Demo: SQL Demo ( Requires DBISAM http://www.elevatesoft.com/download?category=dbisam ) 0.75.0.777 +---------------------------------------------------------------------------------------- - Internal Bug fix in TUniExtWinControl.SetComponentsLoaded() - Internal Bug fix in TUniExtWinControl.RemoveControl() - UniEdit: MaxLength Property implemented - UniSplitter improved - Several bug fixes in UniSplitter - UniSyntaxEdit improved - UniSyntaxEdit bug fixes - Now SynEdit Packages are included in the installer 0.74.0.774 +---------------------------------------------------------------------------------------- - New: Inheritable Frames - New: Inheritable DataModules - New: In "Object Inspector" properties that are not implemented in web mode are displayed in gray - Bug in inherited form implementation - Improved exception handling - UniDBGrid: OnCellClick passes wrong Column - TUniDBGridColumn: Implement Field public property - When wsMaximized some components may render in wrong placed (IE8) - TUniForm: OnDestroy() implemented - DB Controls: Dynamic DataSource assignment - Workaround for WindowState wsMaximized problem 0.73.0.770 +---------------------------------------------------------------------------------------- - New: Service Application implemented - Async request mode is default mode now - Several Bug fixes and changes in AJAX Core - DB Controls: Internal improvements and fixes 0.72.2.767 +---------------------------------------------------------------------------------------- - Several internal core changes and bug fixes 0.72.1.766 +---------------------------------------------------------------------------------------- - Sync mode partially disabled 0.72.0.765 +---------------------------------------------------------------------------------------- - New Component TUniFileUpload - KeyEvents internal bug - TUniDBNavigator: VisibleButtons Property implemented - TUniEdit: Clear Method implemented - Bug: Showing a Window in another Window's OnShow event - uniMainMenu: Top level menus OnClick event not implemented - KeyEvents Bug - AJAX Core problem - Now Close tool button on Window can be removed - New Sync/Async modes implemented - Bug: Calling DataSet.Refresh in OnClose event may raise Ajax Error - When no project is active creating a new Form or DataModule fails - TUniImage: PNG Images are not shown in Web Mode - PNG/GIF type Images will not be converted to other formats - AV when calling FullExpand method of TUniTreeView - TUniTreeView: FullCollapse implemented - Internal Bug in DB Control DataChange - TUniForm: OnActivate implemented - Bug in ShowMessage - New Demo: FileUpload 0.71.0.760 +---------------------------------------------------------------------------------------- - New Component TUniDBListBox - New Component TUniDBComboBox - New Component TUniURLFrame - Form Inheritance implemented - OnEnter and OnExit Events implemented - TUniRadioGroup: OnClick Event implemented - Bug in UniTabControl - URL Parameters Implemented - New method: UniApplication.Terminate() - TUniEdit CharCase property implemented - TUniDateTimePicker "Visible" bug fixed - SetFocus bug fixed - TuniRadioGroup: ItemIndex implemented - TUniPageControl: Property ActivePage implemented - TUniListBox: ItemIndex bug fixed - DB Controls: internal Bug fixed - StandAloneServer Control Panel imporved - Improved Project Wizard - UniDateTimePicker: OnChange event implemented - Forms divided into two categories: Application Forms and normal Forms - KeyDown, KeyUp, KeyPress implemented - ExtRoot bug in ServerModule fixed - ClientHeight problem in XP theme fixed - 4 new demos: URLFrame, FormInheritance, Dynamic, URLParameters 0.70.0 +---------------------------------------------------------------------------------------- First Beta

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧