BackColor 和 ForeColor 的区别

Distinction between BackColor and ForeColor

这更像是一个概念问题,而不是代码问题。当用VBA给形状上色时,我一直习惯使用ForeColor 属性作为一种习惯,但现在我很好奇BackColor是如何起作用的。 documentation 实际上并没有提供太多关于区别的具体信息。我能看到的唯一相关信息是:

If you set the BackColor property on a Form object or a PictureBox control, all text and graphics, including the persistent graphics, are erased. Setting the ForeColor property doesn't affect graphics or print output already drawn.

这似乎并不能充分解释它们之间的区别。

我做了一些实验,在代码中以不同的顺序设置形状的前后颜色以及包含的不同文本和其他项目,但我终究找不到任何一致的差异。坦率地说,BackColor 属性 似乎完全没用,因为 ForeColor 似乎只是覆盖了现有的任何颜色。

有没有人知道解释它们之间区别的好方法(或者更好的文档来源,我可以在其中阅读差异)?

在应用 TwoColorGradient 方法时使用 BackColour。

例如,如果您在 PowerPoint 中 select 一个形状并键入:

?ActiveWindow.Selection.ShapeRange(1).Fill.BackColor

您可能会看到返回 16777215(白色),如果将其更改为红色,您将看不到任何变化:

ActiveWindow.Selection.ShapeRange(1).Fill.BackColor.RGB = RGB(255,0,0)

但是如果你应用渐变法:

ActiveWindow.Selection.ShapeRange(1).Fill.TwoColorGradient _
  msoGradientDiagonalUp, 1

然后更改BackColor,你会看到变化。