郭某人的网站

关于 / 留言

WinForm 用户控件自定义属性多行输入文本模式

Windows Forms 中自定义控件的字符串属性在设计器中输入多行文本


我在研究 .NET Framework Windows Forms 的用户控件时发现我自定义的文本类型属性在设计器的属性窗口中不能像自带的文本框(TextBox)那样多行输入,就是直接在设计器的属性编辑窗口中回车换行,而不是按回车键直接就确定输入了。我翻阅了官方的文档,又找了找互联网上的帖子,没有找到答案,我于是就研究 .NET Framework 中自带的 TextBox 控件,终于我在 TextBoxBase 元数据中找到了关于其 Text 属性的特性:

[Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
[Localizable(true)]
public override string Text { get; set; }

没错,就是第一行的整条语句起作用;看这代码,感觉字符串中那些名字和版本号可能不同的 .NET Framework 框架版本结果也会不一样,想着这应该是内部开发人员定义的,为了避免不必要的异常,建议使用的时候检查当前框架内的定义,直接复制套用。

我把那条特性加到我自定义的属性中后就实现了我要的效果,如下图:


最后更新时间:2025/05/23 19:40

如果您喜欢此文章,或此文章给您带来了任何帮助,请考虑对我进行资金赞赏,您的支持将会成为我坚持的力量。

注意!你的赞赏转账请考虑再三后支付,此收款不作任何形式的退款。

网站维护预告

通知:

郭某人的网站将于 2025 年 6 月 9 日 12:00 开始进行站点维护,届时网站服务将会停止,整个过程预计持续 6 小时,请于此时间之后再访,希望你能理解。

郭某人