我正在用c#编写一本字典,我正在使用一个文本框来显示定义.显然,我需要将ReadOnly属性设置为true,但是当我这样做时,我无法更改文本的颜色.但是更改字体可以正常工作.我该怎么办?
我正在使用此代码,并且当ReadOnly属性为false时设置颜色完全正常,但是当它为真时不会更改:
private void button5_Click(object sender, EventArgs e)
{
FontDialog fd = new FontDialog();
fd.ShowColor = true;
if (fd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
textBox3.Font = fd.Font;
textBox3.ForeColor = fd.Color;
}
}
Run Code Online (Sandbox Code Playgroud)
Lar*_*ech 44
由于某种原因,只读TextBox的ForeColor属性与BackColor属性结合.因此,如果您"搔痒"BackColor属性,它将在此之后设置ForeColor属性:
FontDialog fd = new FontDialog();
fd.ShowColor = true;
if (fd.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
textBox3.Font = fd.Font;
textBox3.BackColor = textBox3.BackColor;
textBox3.ForeColor = fd.Color;
}
Run Code Online (Sandbox Code Playgroud)
假设 ForeColor 已经设置为所需的颜色(可能在设计器中),所有需要做的是:
tb.BackColor = tb.BackColor;
Run Code Online (Sandbox Code Playgroud)
这将神奇地触发并修复前景色。尽管可能还需要解释为什么添加这行代码的注释。
| 归档时间: |
|
| 查看次数: |
16836 次 |
| 最近记录: |