Мне нужна помощь в поиске значения и значений между двумя числами, 0 ~ 274, и если значение находится между этими значениями, это позволит моему тексту в одной из моих форм быть черным. Если текст 275 ~ 300, текст будет красным.
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
string Lent = richTextBox1.TextLength.ToString();
l6.Text = Lent + "/300";
if (Lent == "275")
{
l6.ForeColor = Color.Red;
}
else if (Lent == "274")
{
l6.ForeColor = Color.Red;
}
else if (Lent == "0")
{
l6.ForeColor = Color.Red;
}
}
l6
- это мой label6
, который отображает длину текста из richTextBox
, например "0/300"
. Я пытался найти значения между ними, но не смог, и мне действительно нужна помощь!
я допустил небольшую ошибку при наборе текста и не смог отредактировать
Используйте целочисленное сравнение для диапазона.
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
var textLength = richTextBox1.TextLength;
l6.Text = @"{textLength}/300";
// Add ranges in condition and set color.
if (textLength == 0 || textLength <= 274)
{
l6.ForeColor = Color.Black; //Whatever color
}
else if (textLength > 275)
{
l6.ForeColor = Color.Red;
}
}
Альтернативное и более читаемое решение.
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
var textLength = richTextBox1.TextLength;
l6.Text = @"{textLength}/300";
l6.ForeColor = (textLength >= 275) ? Color.Red : Color.Black;
}
Ваше альтернативное решение делает нечто совершенно иное.
Основываясь на вопросе OP, для длины текста выше 275 текст должен быть красным, в противном случае - черным.
@pokeВы знаете, вопрос вместе с примером не совсем четко определяет желаемое поведение. Идея, которую я пытался передать, заключалась в том, чтобы использовать длину как int и использовать любой цвет в зависимости от условия.
Вы должны сохранить длину как число, чтобы вы могли правильно сравнить его с другими числами:
int length = richTextBox1.TextLength;
l6.Text = length + "/300";
// when the length is 0 or higher than 275
if (length == 0 || length > 275)
{
// make the text red
l6.ForeColor = Color.Red;
}
else
{
// otherwise keep it black
l6.ForeColor = Color.Black;
}
Почему вы устанавливаете ForeColor = Color.Red; для всех условий?