Изменение размера шрифта

отредактировано 13:26 Раздел: FastReport .NET
Начинаю использовать FastReport .NET. До этого пользовался FastReport 4.0.

Есть отчет где необходимо уменьшать размер шрифта если он не умещается в отведенные размеры по высоте. В FastReport 4.0 я делал это в скрипте с помощью сравнения свойств CalcHeight и Height у объкта "Текст". Этот же прием с ходу не прошел в FastReport .NET.

Подскажите пожалуйста можно ли как-то добиться уменьшения размера шрифта если текст не умещается по высоте.

Комментарии

  • отредактировано 13:26
    Здравствуйте,

    В FastReport.Net можно использовать св-ва объекта "Текст":
    AutoShrink = FontSize
    AutoShrinkMinSize = минимальный размер шрифта
    Скрипт использовать не нужно.
  • отредактировано 13:26
    Прием с CalcHeight тоже должен работать, но в событии AfterData, когда объект заполнен данными.
  • отредактировано 13:26
    AlexTZ написал: »
    Прием с CalcHeight тоже должен работать, но в событии AfterData, когда объект заполнен данными.
    я в нем и пробовал, но у меня мало опыта в визуал студио.

    в скрипте:
    private void FioText_AfterData(object sender, EventArgs e)
    {
    while (FioText.CalcHeight > FioText.Height)
    {
    FioText.Font.Size = FioText.Font.Size - 1;
    }
    }

    а во время показа отчета:
    (22,14): error CS0019: Оператор ">" не может применяться к операндам типа "группа методов" и "float"
    (24,9): error CS0200: Невозможно присвоить значение свойству или индексатору "System.Drawing.Font.Size" -- доступ только для чтения
  • отредактировано 13:26
    AlexTZ написал: »
    Здравствуйте,

    В FastReport.Net можно использовать св-ва объекта "Текст":
    AutoShrink = FontSize
    AutoShrinkMinSize = минимальный размер шрифта
    Скрипт использовать не нужно.

    Спасибо!
  • отредактировано 13:26
    AutoShrink в Вашем случае может не сработать, т.к. проверяет только ширину объекта. Вот правильный код:
        private void Text1_AfterData(object sender, EventArgs e)
        {
          while (Text1.CalcHeight() > Text1.Height)
          {
            Text1.Font = new Font(Text1.Font.Name, Text1.Font.Size - 1);
          }
        }
    
  • отредактировано 13:26
    AlexTZ написал: »
    AutoShrink в Вашем случае может не сработать, т.к. проверяет только ширину объекта. Вот правильный код:
        private void Text1_AfterData(object sender, EventArgs e)
        {
          while (Text1.CalcHeight() > Text1.Height)
          {
            Text1.Font = new Font(Text1.Font.Name, Text1.Font.Size - 1);
          }
        }
    

    Понял свои ошибки. Спасибо большое!

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.