将禁用的TextBox的ForeColor设置为与C#中的BackColor相同

时间:2008-12-12 12:24:44

标签: c# .net user-interface

如何将禁用的TextBox的当前文本颜色设置为与C#中的当前背景颜色相同?

简单地做txtLala.ForeColor = txtLala.BackColor似乎不起作用。

3 个答案:

答案 0 :(得分:3)

这有效:

txtLala.Text = "Red";
txtLala.BackColor = System.Drawing.Color.Red;
txtLala.ForeColor = txtLala.BackColor;
txtLala.ReadOnly = true;

尝试在color之前设置readonly。还要检查你如何设置颜色!

修改

试试这个

txtLala.Attributes.Add("style","background-color:Red;color:Red");

如果您试图让它不可见,您知道可以将其设置为

txtLala.Visible = False;

编辑II

我终于尝试了

txtLala.Enabled = false;

...你看到那个灰色阴影的颜色!我不认为你可以搞砸它,它看起来是一个浏览器属性设置。

为什么不设置为ReadOnlyVisible = False

也许你有充分的理由Enabled = false

但你应该注意:

使用Enabled属性指定或确定控件是否有效。 设置为false时,控件显示为灰色,防止在控件中输入任何输入。

注意始终可以启用或禁用功能。 但是,调暗和锁定控件仅适用于Microsoft Internet Explorer版本4及更高版本。

此属性沿控件层次结构向下传播。因此,禁用容器控件将禁用该容器中的所有子控件。

注意并非所有控件都支持此属性。有关详细信息,请参阅单个控件。

答案 1 :(得分:0)

如果这是一个只读文本框,您需要先显式设置BackColor,然后您的语句才能正常工作。

txtLala.BackColor = System.Drawing.SystemColors.Info;
txtLala.ForeColor = txtLala.BackColor;

参考:http://bytes.com/groups/net-c/233961-read-only-textbox

然后,如果它是只读的,标签可能会更好。如果你试图隐藏它,也许设置.Visible = false会更好。


修改:这似乎是网络上的common question。关于 winforms This site建议将框放入框架并在框架上设置Enabled = false ,而不是文本框。一旦你这样做,你就可以保持对前色的控制。

答案 2 :(得分:0)

它似乎仅适用于只读的TextBox。如果禁用(.Enabled = false)。它似乎不起作用。