【问题标题】:C# Properties: Font and Color Change on the FlyC# 属性:即时更改字体和颜色
【发布时间】:2011-10-03 21:03:28
【问题描述】:

有谁知道如何更改我正在输入的属性值的字体和字体颜色?我正在使用 Windows 窗体和 Propertygrid。谢谢。

我正在考虑使用: using( Font myFont = new Font("Arial", 8, FontStyle.Italic) ) 但不知道怎么实现,也不知道怎么改变文字的颜色。

【问题讨论】:

    标签: c# windows winforms forms propertygrid


    【解决方案1】:

    我想这就是你要问的。

    PropertyGrid grid = new PropertyGrid();
    grid.ForeColor = Color.Blue;
    

    【讨论】:

    • 我相信这会改变整个网格的前景色。我只是想更改一个属性值的文本颜色。例如,如果您输入的金额为负值,我希望它为红色,如果该值为正,我希望它为黑色。
    • 您希望属性网格中的属性反映颜色的变化或其引用的控件?
    • 我希望属性而不是控件来改变颜色。但是,此时我会满足于控件更改颜色或值和单个控件更改颜色。
    • 我可以给你代码来反映你正在操作的控件上的变化,但我不能给你代码(b/c 它需要很长的时间)来改变属性本身但是请参阅我在困惑的答案中的评论。
    • 我不确定你在说什么 Odnxe。我已经有了更改属性值的代码。我正在尝试更改字体和颜色。或者,我想更改我正在更改的一个属性的背景颜色。这似乎也很痛苦。
    【解决方案2】:

    您是要更改 PropertyGrid 控件本身的字体和前景色,还是要更改您在 PropertyGrid 中定义的两个属性的值?如果您创建了一个单独的类并将其设置为 SelectedObject,那么它应该像编辑该类一样简单。 Getting the Most Out of the .NET Framework PropertyGrid Control

    如果您有一个填充 PropertyGrid 的类,您可以在将其附加到 PropertyGrid 之前使用类中的构造函数或 DefaultValueAttribute 标记来设置所有默认值。或者创建该类的一个实例,只更改该实例所需的那些公共属性,然后附加它。

    【讨论】:

    • 我想在网格中动态更改一个属性值的字体和颜色,而不是整个网格。我正在为属性使用 get 和 set。
    • 不知怎的,它似乎应该很容易,但我不知道该怎么做。
    • 是的,概念证明在这篇文章中msdn.microsoft.com/en-us/library/…
    • 看过了。谢谢你。也许可以通过重写 OnPaint 来完成一些工作,但需要做很多工作。
    【解决方案3】:

    简单地说:使用 Microsoft PropertyGrid,您无法更改单个属性标签或值文本的颜色和字体。

    【讨论】:

    • 谢谢。不知怎的,这似乎很奇怪,但我想就是这样。
    猜你喜欢
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2019-02-16
    • 2013-11-14
    相关资源
    最近更新 更多