在Winforms的NumericUpDown控件中,我遇到了为value的所有边提供填充的问题。
显然以前没有人问过这个问题。
控件的实际外观:(https://i.stack.imgur.com/KIweV.png)预期控件的外观:enter image description here
忽略两幅附图中的其他差异。只需要从顶部、底部和左侧填充值;作为这个问题的一部分。
到目前为止,我只知道有一个TextAlign属性,它可以左对齐、右对齐或居中对齐,但这对为控件的上下边缘提供填充没有帮助。
下面的代码并没有解决我的问题this.numericUpDown1.TextAlign =系统.窗口.窗体.水平对齐.居中;
2条答案
按热度按时间bihw5rsg1#
当然,你不能控制winforms NumericUpDown控件的高度,因此它的文本标记属性只允许左、中、右(与之相对的是,一个标签有9种可能性(TopLeft、MiddleCenter、BottomRight等等)。
但是,您可以创建自己的控件来替换内置的numericUpDown,但这将需要大量的工作。
也许有人已经做了这项工作,并在某处发布了开源代码。
k0pti3hp2#
NumericUpDown
控件有一个内部UpDownEdit
子控件,该子控件派生自用于显示和编辑值的TextBox
控件。您可以p/invoke来设置单行TextBox
的 Left 和/或 Right 边距。将多行TextBox
的 Top 和/或 Bottom 边距添加到该子控件。请考虑所列的扩充类别,其目的是
TextBoxBase
抽象类别的衍生型别。它会将SetInnerMargin
方法加入这些型别,以设定内边界。请注意,对于单行文字方块,会忽略Padding
结构的Top和Bottom属性值。用法示例:
请确保在调用此方法之前创建并分配了目标控件的句柄。或者,订阅其
HandleCreated
事件以调用此方法。您也可以建立自订控件来实作这项功能。例如: