Есть ли способ выровнять справа числовой столбец в ListBox - PullRequest
2 голосов
/ 13 октября 2010

У нас есть стандартный список доступа с несколькими столбцами.Можно ли выровнять столбцы целых чисел или валют правильно?

Ответы [ 6 ]

5 голосов
/ 13 октября 2010

Нет. Самым близким, что я видел, является JustiCombo , который является базой данных, содержащей функции для центрирования и выравнивания по правому краю данных для списков и комбинированных блоков. Он может использовать пропорциональные шрифты, анализируя атрибуты шрифта и ширину символов. Он также заполняет пробелы перед полями, чтобы данные выглядели по центру / справа. Он сделал все возможное, но вы могли видеть несколько неровностей. Но тогда, может быть, я был слишком критичен.

3 голосов
/ 10 января 2014

В зависимости от вашего запроса выравнивание столбца будет унаследовано от базовой таблицы.Итак, перейдите к таблице, выберите столбец, выровняйте его по центру / справа / слева, и тогда ваше текстовое поле должно иметь такое же выравнивание.Это не будет работать для вычисляемых полей, но должно работать для большинства других.

3 голосов
/ 13 октября 2010

Насколько я знаю, не в традиционном смысле, нет.Я полагаю, что есть некоторые сторонние продукты, которые могли бы сделать это, но нет никаких собственных свойств ColumnAlignment для списков ни в каких версиях, которые я использовал (хотя я не использовал Access 2007, хотя бы того).

В зависимости от того, как вы загружаете список, вы могли бы использовать шрифт фиксированной ширины (например, Courier) и набирать слева номера с соответствующим количеством пробелов, чтобы эмулировать правую-alignment.Это не идеально, но, возможно, стоит попробовать.

2 голосов
/ 11 сентября 2012
  1. Преобразовать список в комбинированный список
  2. Создайте в выпадающем списке правильное выравнивание
  3. Преобразуйте его снова в список
1 голос
/ 16 сентября 2015

В VB это:

Format(Format("10000", "0.00%"), "@@@@@@@@@@"), где число "@" - это ширина поля, в котором выровнена строка справа.

В VBA вы можете использовать:

xFormat(Format("10000", "0.00%"), "@@@@@@@@@@"), где

Function xFormat(ByVal s, ByVal width As String) As String

    Dim temp As String
    Dim deltaL As Integer

    deltaL = Len(width) - Len(s)
    If deltaL > 0 Then
        temp = Space(deltaL) & s
    Else
        temp = s
    End If
    xFormat = temp
End Function
0 голосов
/ 07 апреля 2015

Я решил это, выполнив следующее:

Перейдите на File -> options -> Client settings -> General alignment

Измените настройки на текстовый режим, и это сработало для меня.

...