如何获取DateTimePicker控件/一般控件中按钮的宽度?

5
我实现了一个自定义DateTimePicker。在DateTimePicker上有一个按钮。我找到的示例中,其宽度设置为16。这可以工作,但我想要一种动态方法。
那么,有没有一种方法可以获得此按钮的大小,或者有没有一般方法可以获取.Net-Control子元素的信息,如大小等?
尝试DateTimePicker.Controls没有帮助我(它为空)。 enter image description here
4个回答

2

大多数Win32箭头按钮都依赖于滚动条度量:

您需要使用SystemInformation.VerticalScrollBarArrowHeight

两个有用的类:SystemInformation和ControlPaint。在处理自定义控件时,它们非常有价值。

Int32 size = SystemInformation.VerticalScrollBarArrowHeight;
ControlPaint.DrawScrollButton(e.Graphics, 0, 0, size, size, ScrollButton.Down, ButtonState.Normal);

0
你能发布一下你实现的DateTimePicker的代码吗?这可能有助于说明你的确切问题。听起来,按钮不包含在DateTimePicker中,而是在其相邻的表单上。如果我错了,请纠正我。
所以,如果你有以下内容:
DateTimePicker dtp = new DateTimePicker();
Button btn = new Button();
btn.Size.Width = btn.Size.Width * 2;

您可以访问并重新设置按钮控件的大小。

如果按钮确实包含在DateTimePicker中,则将其公开为公共属性(或理想情况下是内部属性),并通过DTP直接访问它。


0

DateTime picker使用本机Windows控件。您提到的“按钮”是Windows自己绘制的东西。

在您当前的操作系统中,可能会有类似按钮的东西,但在旧的或未来的操作系统中,DateTime picker可能完全不同。

只需为用户绘制最漂亮、最简单的控件,他们就会感到满意。


0
所有的Windows窗体控件都有一个名为“Size”的结构体分配给它们,如果您引用myButton.Size.Width,您应该能够修改按钮的大小,这是一个整数。同样,您也可以使用myButton.Size.Height来实现相同的效果。

问题是我没有找到直接访问按钮的方法。没有像DateTimePicker.Button这样的东西。 执行DateTimePicker.Controls.Count时,它的值为0。 - Inno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接