Alan N
Есть что-то странное в свойстве ForeColor системы только для чтения.Windows.Form.TextBox, который я не видел документально, хотя и не очень внимательно искал.
Я заметил, что изменение цвета переднего плана вступает в силу только после того, как цвет фона был изменен один раз. После этого любые последующие изменения переднего плана происходят немедленно.
Мое маленькое тестовое приложение:
using System;
using System.Drawing;
using System.Windows.Forms;
// Requires a form with 2 text boxes and 2 buttons
public partial class Form1 : Form {
private readonly Color[] rainbow = new Color[] {
Color.Red,
Color.Orange,
Color.Yellow,
Color.Green,
Color.Blue,
Color.Indigo,
Color.Violet
};
private Int32 foreIdx, backIdx;
public Form1() {
InitializeComponent();
backIdx = rainbow.Length - 1;
NormalTextBox.Text = "Standard text box";
ReadOnlyTextBox.Text = "Read only text box";
}
private void ForeColBtn_Click(object sender, EventArgs e) {
NormalTextBox.ForeColor = rainbow[foreIdx];
ReadOnlyTextBox.ForeColor = rainbow[foreIdx];
foreIdx = ++foreIdx % rainbow.Length;
}
private void BackColBtn_Click(object sender, EventArgs e) {
NormalTextBox.BackColor = rainbow[backIdx];
ReadOnlyTextBox.BackColor = rainbow[backIdx];
backIdx = ++backIdx % rainbow.Length;
}
}
Повеселиться,
Алан.