Как автоматически отображать горизонтальную полосу прокрутки? (С++ Builder, VCL)

У меня есть несколько компонентов StringGrid в одном кадре. Все сетки имеют одинаковые заголовки. Я хотел бы, чтобы горизонтальная полоса прокрутки фрейма отображалась автоматически, если окно более узкое, чем ширина StringGrid. Вертикальная полоса прокрутки отображается правильно.

Фрейм, содержащий компоненты StringGrid, имеет значение Align: alClient. Для компонентов StringGrid установлено значение Align: alTop. И фрейм, и форма имеют AutoScroll: true.

Вот иерархия компонентов:

Form1
|- Frame21
  |- StringGrid1
  |- StringGrid2

Вот как выглядит форма в настоящее время (отсутствует горизонтальная полоса прокрутки):

введите здесь описание изображения

Мне не нужны отдельные горизонтальные полосы прокрутки в каждом StringGrid, например:

введите здесь описание изображения


Это не работает:

 __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    this->Frame21->HorzScrollBar->Visible = true;
    this->HorzScrollBar->Visible = true;
}

Вот связанный пост, который не отвечает на мой вопрос:

Только горизонтальная прокрутка на панели


person rebecca    schedule 16.07.2020    source источник
comment
Я никогда не полагался на встроенные полосы прокрутки формы/фрейма для прокрутки содержимого, поэтому я просто предполагаю, но вам, вероятно, нужно установить AutoSize=False и AutoScroll=True на фрейме, а AutoSize=False и AutoScroll=False на форме. В противном случае вы пытались вместо этого поместить элементы управления TStringGrid внутри TScrollBox, выровненного по клиенту?   -  person Remy Lebeau    schedule 17.07.2020
comment
Использование TScrollBox работает со следующими наборами свойств выравнивания: (TFrame является потомком TScrollBox) TFrame - alClient, TStringGrids - None; или TFrame — нет, TStringGrids — alTop; или (TStringGrids потомки TScrollBox, без TFrame) TStringGrids — Нет.   -  person rebecca    schedule 17.07.2020


Ответы (1)


Установите выравнивание компонентов TStringGrid на None и AutoScroll кадра на true (поле прокрутки не требуется).

person rebecca    schedule 03.08.2020