private void txtFrom_TextChanged(object sender, System.EventArgs e)
{
SizeF size = this.txtFrom.CreateGraphics().MeasureString(this.txtFrom.Text,this.txtFrom.Font);
if((int)size.Width > this.txtFrom.Width)
this.txtFrom.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
else
this.txtFrom.ScrollBars = System.Windows.Forms.ScrollBars.None;
}
Реализация AutoScroll в TextBox
1) При реалезации AutoScroll в ТextBox скроллы появляются сразу даже когда в них нет никакой необходимости. Можно ли это изменить? Чтобы они появлялись только в том случае если текст выходит за пределы TextBox.
2)Нужно в момент изменения текста в TextBox сравнить длину текста с длиной TextBox(свойство width) и если длина текста больше длины TextBox тогда соответственно подогнать свойство width чтобы виден был весть текст.
Заранее благодарю.;)
Цитата:
Originally posted by OlgaKr
Возникли следущие проблемы:
1) При реалезации AutoScroll в ТextBox скроллы появляются сразу даже когда в них нет никакой необходимости. Можно ли это изменить? Чтобы они появлялись только в том случае если текст выходит за пределы TextBox.
2)Нужно в момент изменения текста в TextBox сравнить длину текста с длиной TextBox(свойство width) и если длина текста больше длины TextBox тогда соответственно подогнать свойство width чтобы виден был весть текст.
Заранее благодарю.;)
Возникли следущие проблемы:
1) При реалезации AutoScroll в ТextBox скроллы появляются сразу даже когда в них нет никакой необходимости. Можно ли это изменить? Чтобы они появлялись только в том случае если текст выходит за пределы TextBox.
2)Нужно в момент изменения текста в TextBox сравнить длину текста с длиной TextBox(свойство width) и если длина текста больше длины TextBox тогда соответственно подогнать свойство width чтобы виден был весть текст.
Заранее благодарю.;)
2)
Код:
private void textBox1_TextChanged(object sender, EventArgs e)
{
SizeF size = textBox1.CreateGraphics().MeasureString(textBox1.Text, textBox1.Font);
if (size.Width > 3)
textBox1.Width = (int)size.Width;
}
{
SizeF size = textBox1.CreateGraphics().MeasureString(textBox1.Text, textBox1.Font);
if (size.Width > 3)
textBox1.Width = (int)size.Width;
}
Цитата:
Originally posted by mail0
2)
2)
Код:
private void textBox1_TextChanged(object sender, EventArgs e)
{
SizeF size = textBox1.CreateGraphics().MeasureString(textBox1.Text, textBox1.Font);
if (size.Width > 3)
textBox1.Width = (int)size.Width;
}
{
SizeF size = textBox1.CreateGraphics().MeasureString(textBox1.Text, textBox1.Font);
if (size.Width > 3)
textBox1.Width = (int)size.Width;
}
To mail0 cпасибо большое за помощь!:)
Цитата:
1) При реалезации AutoScroll в ТextBox скроллы появляются сразу даже когда в них нет никакой необходимости. Можно ли это изменить? Чтобы они появлялись только в том случае если текст выходит за пределы TextBox.
Применила вышеуказанный код для данный проблемы следующим образом :
Код:
В Properties установила значения для нижеуказанных свойств:
txtFrom.Multiline : true
txtFrom.WordWrap : false
txtFrom.ScrollBars: None (it is a default value)
Если есть более правильный путь для решения данного вопроса буду благодарна если подскажите. :}
Можно решить данную проблему нестандартным способом. С помощью свойства Controls узнать о ScrollBar'ах, их там два - экземпляры VScrollBar и HScrollBar. Если текст вмещается в поле, то как можно заметить из поведения скролов, их состояние Enabled равно false. Как только текст вылазит за границы, Enabled приобретает значение true. Можно оследить это дело на событие TextChanged, и сделать ScrollBar.Visible=ScrollBar.Enabled. Попробуй:) попытка не пытка
Цитата:
Originally posted by 3A3-968M
Можно решить данную проблему нестандартным способом. С помощью свойства Controls узнать о ScrollBar'ах, их там два - экземпляры VScrollBar и HScrollBar. ...
Можно решить данную проблему нестандартным способом. С помощью свойства Controls узнать о ScrollBar'ах, их там два - экземпляры VScrollBar и HScrollBar. ...
Я уже пробовала найти скролы при поможи Соntrols, ничего не получилось. Может делаю что-то не так?
Код:
this.textBox1.Controls. ...
Не нашла я там никаких скроллов.
Спасибо за помощь! :)
Используй вместо TextBox компонент RichTextBox - там скроллы появляются только тогда, когда это нужно.