Эта ошибка возникает в двух вариантах:
$arr = [1, 2, 3];
Синтаксис инициализатора этого массива был введен только в PHP 5.4; это приведет к возникновению ошибки парсера в версиях до этого. Если возможно, обновите свою установку или используйте старый синтаксис:
$arr = array(1, 2, 3);
См. Также этот пример из руководства.
$suffix = explode(',', 'foo,bar')[1];
Результаты функции разыменования массива также были введены в PHP 5.4. Если обновление невозможно, вам нужно использовать временную переменную:
$parts = explode(',', 'foo,bar');
$suffix = $parts[1];
См. Также этот пример из руководства.
Статья ComboBox-with-read-only-behavior предлагает интересное решение:
Создают и текстовое поле только для чтения и поле комбинированного списка в том же месте. Когда Вы хотите режим только для чтения, отображаете текстовое поле, когда Вы хотите, чтобы это было доступно для редактирования, отобразило поле комбинированного списка.
Почему Вы только не используете текстовое поле? Текстовое поле имеет свойство "Read only", и так как Вы хотите, чтобы Ваше поле комбинированного списка только отобразило данные, я не вижу, почему Вам было бы нужно поле комбинированного списка.
альтернатива - то, что Вы просто уравновешиваетесь, вход для "на значении изменил" событие. Тем путем Вы будете отображать свою информацию никакая мать, что делает пользователь...
Лучшая вещь, которую я могу предложить, состоит в том, чтобы заменить поле комбинированного списка текстовым полем только для чтения (или просто возможно, маркировка) - тот способ, которым пользователь может все еще выбирать/копировать значение, и т.д.
, Конечно, другая развязная тактика должна была бы установить DropDownStyle
на DropDownList
, и просто удалить все другие опции - тогда, у пользователя нет ничего иного для выбора;-p
Не уверенный, если это - то, что Вы ищете, но...
Набор DropDownStyle = DropDownList
Тогда на событии
If (ComboBox1.SelectedIndex <> 0)
{
ComboBox1.SelectedIndex = 0
}
SelectedIndexChanged Эта ужасная часть - то, что они будут "чувствовать" как, они могут изменить его. Они могли бы думать, что это - ошибка, если Вы не даете им предупреждение, говоря им, почему они не могут изменить значение.
сделайте DropDownStyle
, свойство к DropDownList
вместо DropDown
затем обрабатывает TextChanged
событие для предотвращения пользователя, изменяющего текст.
Можно ли изменить forecolor и цвет фона к системным цветам для включенного поля комбинированного списка, хотя это может смутить пользователей (почему это имеет, если они не могут изменить его), это будет выглядеть лучше.
На самом деле, это довольно просто:
Private Sub combobox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles combobox1.KeyDown
' the following makes this the combobox read only
e.SuppressKeyPress = True
End Sub