В форматах windows.net 3.5 у меня есть listview с "CheckBoxes" = true. Можно ли отключить или отключить некоторые элементы, чтобы пользователь не мог проверить флажок?
Как отключить элемент в элементе управления listview в .net 3.5
Ответ 1
Вы можете использовать свойства ListBoxItem.ForeColor и UseItemStyleForSubItems, чтобы этот элемент выглядел тусклым. Используйте SystemColors.GrayText, чтобы выбрать цвет темы для отключенных элементов. Избегайте отключения выбора, это предотвращает использование пользователем клавиатуры. Отключить проверку флажка. Например:
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) {
// Disable checking odd-numbered items
if (e.Index % 2 == 1) e.NewValue = e.CurrentValue;
}
Ответ 2
Вам нужно катиться самостоятельно. Обрабатывать событие ListView
ItemSelectionChanged
- если вы не хотите, чтобы какой-либо конкретный элемент можно было выбрать, выполните следующее:
e.Item.Selected = false;
Вы можете сделать определенный элемент недоступным для выбора, поместив его, изменив цвет шрифта и т.д.
Ответ 3
Я принял рекомендацию Ханса Пассана - хороший визуальный подход, который в моем случае означает неприемлемые элементы. Здесь образец:
'Select all attachements in case user wants to mask or pick and choose
For i As Integer = 0 To lstView.Items.Count - 1
If Not Scan.SupportedMasking.Contains(Path.GetExtension(lstView.Items(i).Text)) Then
lstView.Items(i).ForeColor = SystemColors.GrayText
lstView.Items(i).Text += " (No masking supported)"
lstView.Items(i).BackColor = SystemColors.InactiveBorder
lstView.Items(i).Selected = False
Else
lstView.Items(i).Selected = True
End If
Next i
Ответ 4
используйте это или установите режим отображения для просмотра insted of edit!
public void SetItemEnabled(ListViewItem item, bool enabled)
{
if (item != null)
{
List<ListViewControl> lvControls = this.ListViewControls.FindAll(FindListViewControl(item));
foreach (ListViewControl lvControl in lvControls)
{
if (lvControl.Control != null)
{
lvControl.Control.Enabled = enabled;
}
}
}
}
Ответ 5
Вы должны установить свойство AutoCheck флажка false.
AutoCheck - Получает или задает значение, указывающее, будут ли значения Checked или CheckState и вид CheckBox автоматически изменяться при щелчке CheckBox.
Фактически это можно использовать только для элемента управления флажком.