Самое простое решение для случайного перетасовки в массиве.
String location[] = {"delhi","banglore","mathura","lucknow","chandigarh","mumbai"};
int index;
String temp;
Random random = new Random();
for(int i=1;i<location.length;i++)
{
index = random.nextInt(i+1);
temp = location[index];
location[index] = location[i];
location[i] = temp;
System.out.println("Location Based On Random Values :"+location[i]);
}
Как насчет Graphics.MeasureString
, с перегрузкой, которая принимает строку, шрифт и макс. ширину? Это возвращается SizeF
, таким образом, Вы можете круглое округление Height
.
using(Graphics g = CreateGraphics()) {
SizeF size = g.MeasureString(text, lbl.Font, 495);
lbl.Height = (int) Math.Ceiling(size.Height);
lbl.Text = text;
}
Система. Рисование. Графика имеет метод MeasureString, который можно использовать с этой целью. Используйте перегрузку, которая берет строку, шрифт и международный параметр "ширины"; этот последний параметр определяет, что максимальная ширина допускала строку - используют ширину набора Вашей маркировки для этого параметра.
MeasureString возвращает объект SizeF. Используйте свойство Height этого возвращенного объекта для установки высоты маркировки.
Примечание: для получения Графического объекта с этой целью можно назвать это. CreateGraphics.
Графика. MeasureString (), вероятно, поможет Вам.
Это - также один из единственных вариантов использования для использования Управления. CreateGraphics () вызов!
Хорошо эти 60 символов могли бы быть допустимыми для Вашего тестового текста, но не все символы имеют ту же ширину. Например, сравните
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
и
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
, они оба имеют 60 символов и все же имеют значительно отличающиеся ширины.
Там какая-либо оборотная сторона к использованию класса TextRenderer для измерения строки (как в ответе Marc) вместо того, чтобы пройти работу для создания Графического объекта и т.д.?
Этот «ответ» предназначен для использования в будущем и для борьбы с первоначальным предположением, что AutoSize = true подразумевает, что он (метка WinForms) никогда не будет расти в высоту.
Следующая ссылка показывает различные эффекты AutoSize = true с другими свойствами, такими как MaximumSize. В зависимости от предполагаемого использования вопроса может оказаться целесообразным следовать одному из этих подходов.