Используемый мной компонент является потомком TStringGrid , который называется TDataGrid (который можно найти на Torry ). К сожалению, в нем есть небольшая ошибка, которой нет в исходном компоненте TStringGrid . У меня есть опции goEditing и goAlwaysShowEditor обе включены, поэтому я ожидаю, что текст ячейки будет выбран, когда элемент управления получит фокус ввода. Но в случае TDataGrid этого не произойдет, если я нажму клавишу TAB, чтобы перейти от одного элемента управления к элементу управления сеткой. Он получает фокус ввода, но ничего не выбрано, и каретка даже не видна. Очевидно, это очень вводит в заблуждение пользователя.
Исходный компонент TStringGrid имеет аналогичные несоответствия, где, если у вас включен goAlwaysShowEditor , всегда есть одна ячейка с ее текст «выставлен» (сфокусирован, даже если сам элемент управления сеткой не имеет фокуса), поэтому, если вы щелкнете левой кнопкой мыши в этой ячейке, текст также не будет выделен, просто включите курсор. Однако я смог обойти это, просто отключив goAlwaysShowEditor , когда элемент управления сетки не имеет фокуса, и впоследствии включив его, когда сетка получает фокус.
Так же, как и TStringGrid есть какой-нибудь способ выделения текста ячейки? Я знаю, как установить фокус на ячейку, но я не нашел способа на самом деле выделить текст. На самом деле был бы признателен за любые идеи, чтобы обойти это!
FWIW, я использую Delphi 10.3