Как отключить элемент управления ListView in.net 3.5
в .net 3.5 windows forms у меня есть listview с "флажками" = true. Можно ли отключить или отключить некоторые элементы, чтобы пользователь не мог установить флажок?
5 ответов
вы можете использовать ListBoxItem.ForeColor и UseItemStyleForSubItems свойства, чтобы элемент выглядел затемненным. Использовании Системных Цветов.GrayText, чтобы выбрать цвет темы для отключенных элементов. Избегайте отключения выбора, это мешает пользователю использовать клавиатуру. Только отключите проверку флажка. Например:
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) {
// Disable checking odd-numbered items
if (e.Index % 2 == 1) e.NewValue = e.CurrentValue;
}
вы должны свернуть свой собственный для этого. Обрабатывать ListView
' s ItemSelectionChanged
событие-если вы не хотите, чтобы конкретный элемент выбирался, сделайте следующее:
e.Item.Selected = false;
вы можете сделать определенный элемент появляются невыбираемый на седины его, изменять цвет шрифта и т. д.
Я взял рекомендацию Ханса Пассанта-хороший визуальный подход, который в моем случае обозначает не подлежащие действию предметы. Вот пример:
'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
используйте это или установите displaymode для просмотра insted редактирования!
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;
}
}
}
}
вы должны установить свойство AutoCheck флажка false.
AutoCheck-получает или задает значение, указывающее, будут ли автоматически изменены значения Checked или CheckState и внешний вид флажка при нажатии флажка.
на самом деле это можно использовать только для управления checkbox.