Отсутствующие свойства в VBA [дубликат]

К сожалению, нет «предыдущего» селектора, но вы можете , возможно, получить тот же эффект, используя позиционирование (например, float right). Это зависит от того, что вы пытаетесь сделать.

В моем случае я хотел получить первую 5-звездочную рейтинговую систему CSS. Мне нужно было бы покрасить (или поменять значок) предыдущих звезд. Если плавать каждый элемент вправо, я по сути получаю тот же эффект (html для звезд, таким образом, должен быть записан «назад»).

Я использую FontAwesome в этом примере и заменяю между юникодами fa -star-o и fa-star http://fortawesome.github.io/Font-Awesome/

CSS:

.fa {
    display: inline-block;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* set all stars to 'empty star' */
.stars-container {
    display: inline-block;      
}   

/* set all stars to 'empty star' */
.stars-container .star {
    float: right;
    display: inline-block;
    padding: 2px;
    color: orange;
    cursor: pointer;

}

.stars-container .star:before {
    content: "\f006"; /* fontAwesome empty star code */
}

/* set hovered star to 'filled star' */
.star:hover:before{
    content: "\f005"; /* fontAwesome filled star code */
}

/* set all stars after hovered to'filled star' 
** it will appear that it selects all after due to positioning */
.star:hover ~ .star:before {
    content: "\f005"; /* fontAwesome filled star code */
}

HTML: (40)

JSFiddle: http://jsfiddle.net/andrewleyva/88j0105g/

1
задан Lunatik 1 September 2010 в 14:10
поделиться

5 ответов

В этой статье единственной причиной получения ScaleMode является установка ширины горизонтальной полосы прокрутки. Вам не обязательно это делать.

SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, 800, 0

где 800 - ширина пикселя, которую вы хотите, чтобы окно списка могло прокручиваться вправо.

Вам все равно потребуется HWND. Лучше всего использовать внешнюю DLL (написанную на VB), которая может перечислить через дочерние окна вашего процесса, пока не найдет класс Windows для списка (вам нужно будет найти способ однозначно идентифицировать его родителя, например окно название / текст или что-то еще). Эта же DLL могла бы также вызвать вызов SendMessage выше, чтобы установить горизонтальный объем текста (возможно, он также может измерять ширину содержащихся элементов списка).

0
ответ дан Alan McBee - MSFT 18 August 2018 в 14:06
поделиться

Если я что-то не упустил, список VBA автоматически получит горизонтальную полосу прокрутки, если общая ее свойство ColumnWidths превышает свою собственную ширину.

Нет свойств, которые я знаю об этом влиянии поведение, т. е. я не знаю, как заставить или отключить отображение горизонтальной полосы прокрутки.

2
ответ дан Lunatik 18 August 2018 в 14:06
поделиться
  • 1
    Хороший и простой в реализации ответ. Когда элемент управления отбрасывается на форму, некоторые люди забывают регулировать ширину, в результате она отображается полностью. Нужно вернуться и установить размер в соответствии с тем, что они хотят. – NoChance 11 July 2016 в 14:12

Вы пытались использовать свойство ColumnWidths? У меня есть список с горизонтальной полосой прокрутки. Мне просто нужно добавить свойство ColumnWidths.

Например, у меня есть

m e.Listbox1.Columnwidts ="0.5 in;0.2 in;1.5 in;0.75 in;0.5 in"

3
ответ дан THEn 18 August 2018 в 14:06
поделиться

Обработать его поле списка можно получить следующим образом: -

Dim ListHwnd As Integer lstboxName.SetFocus ListHwnd = GetFocus ()

Используйте этот ListHwnd в качестве первого параметра для sendmessage function ...

Нам нужно предоставить декларацию ниже, так как функция GetFocus отсутствует в VBA по умолчанию

Private Declare Function GetFocus Lib «user32» () As Integer

0
ответ дан user 18 August 2018 в 14:06
поделиться
0
ответ дан user5138047 30 October 2018 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: