【问题标题】:What TextFormatFlags.TextBoxControl flag exactly doesTextFormatFlags.TextBoxControl 标志的确切作用
【发布时间】:2012-11-08 06:43:31
【问题描述】:

我想了解在调用TextRenderer.DrawText 方法时启用标志TextFormatFlags.TextBoxControl 的效果。

我写了一个小程序,看不出使用和不使用的区别。

另外,我使用 .NET 反射器检查了代码,并将标志直接传递给本机方法,因此我可以看到效果。

【问题讨论】:

    标签: .net winforms text drawing


    【解决方案1】:

    不确定它的所有功能,但我将它用于一种特定的效果......

    如果您只使用 WordBreak,那么如果您的单词太宽而无法放在一行中,它只会剪切该单词......它不会在单词中间中断。但是,如果您希望它在比宽度长的单词中中断,这样就不会剪裁任何内容,您可以将 TextBoxControl 添加到它,它会这样做。

    TextBox 控件需要它,因为当您编辑文本时,您确实希望能够看到所有字符。

    默认情况下,DataGridView 的文本列在没有它的情况下呈现,除非您正在编辑,然后他们使用它进行编辑。现在我正在尝试弄清楚 DataGridView 或其列等中是否有设置,这将让我指定 TextFormatFlags 在渲染它时使用,以便我可以解决这个问题。非常感谢任何线索。

    【讨论】:

      【解决方案2】:

      看起来它与 Padding 有关,可能是在 MultiLines 发挥作用时。

      来自Accurate Font Metrics

      请注意,我们使用 MeasureText 计算字符串的大小,然后在高度上增加 7 个像素。这是因为 TextBox 本身有一些它应用的内部填充,从我们的测试来看,它看起来大约是 7 个像素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-01
        • 2020-06-18
        • 1970-01-01
        • 2012-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多