В приложении WinForms мы можем переименовать элементы ListView, дважды щелкнув по ним. Можем ли мы каким-то образом переименовать заголовки групп одинаково? Есть ли способ включить это?Редактировать ListView Групповые заголовки, как мы можем редактировать ListViewItems
2
A
ответ
1
Я думаю, что это выполнимо в конце концов, хотя и не просто позволяет свойство ..
Примечание: Приведенный ниже код предполагает, что ListView
находится в режиме Details
!
Хитрость, чтобы рассказать Group
с места для стоянки - проверить правильную сторону ListView
. Еще один трюк - немного подождать: клик выберет элементы группы. Только после этого мы можем продолжить ..
Вот пример, который перекрывает Group
с TextBox
:
// class variable to test if have been hit twice in a row
ListViewGroup lastHitGroup = null;
private void listView1_MouseDown(object sender, MouseEventArgs e)
{
// check left side to see if we are at the empty space
ListViewItem lvi = listView1.GetItemAt(4, e.Y);
// yes, no action! reset group
if (lvi != null) { lastHitGroup = null; return; }
// get the height of an Item
int ih = listView1.GetItemRect(0).Height;
// to get the group we need to check the next item:
ListViewItem lviNext = listView1.GetItemAt(4, e.Y + ih);
// no next item, maybe the group is emtpy, no action
if (lviNext == null) return;
// this is our group
ListViewGroup editedGroup = lviNext.Group;
// is this the 2nd time?
if (lastHitGroup != editedGroup) {lastHitGroup = editedGroup; return;}
// we overlay a TextBox
TextBox tb = new TextBox();
tb.Parent = listView1;
// set width as you like!
tb.Height = ih;
// we position it over the group header and show it
tb.Location = new Point(0, lviNext.Position.Y - ih - 4);
tb.Show();
// we need two events to quit editing
tb.KeyPress += (ss, ee) =>
{
if (ee.KeyChar == (char)13) // success
{
if (editedGroup != null && tb.Text.Length > 0)
editedGroup.Header = tb.Text;
tb.Hide();
ee.Handled = true;
}
else if (ee.KeyChar == (char)27) // abort
{
tb.Text = ""; tb.Hide(); ee.Handled = true;
}
};
tb.LostFocus += (ss, ee) => // more success
{
if (editedGroup != null && tb.Text.Length > 0)
editedGroup.Header = tb.Text;
tb.Hide();
};
// we need to wait a little until the group items have been selected
Timer lvTimer = new Timer();
lvTimer.Interval = 333; // could take longer for a huge number of items!
lvTimer.Tick += (ss,ee) => { tb.Focus(); lvTimer.Stop();};
lvTimer.Start();
}
+0
Спасибо @TaW, это отлично работает. :) – NDEIGU
Смежные вопросы
- 1. ListView DropDownList Редактировать ListView
- 2. Python Редактировать CSV-заголовки
- 3. Как мы можем редактировать файл xml с помощью javascript?
- 4. Как мы можем редактировать файлы Rust в VSCode?
- 5. как мы можем редактировать верхнее меню Zen Cart?
- 6. Как мы можем редактировать xml-файлы в сетевых местах?
- 7. ListView Редактировать элемент Postion
- 8. Редактировать ListView, запас сверху
- 9. Редактировать listView value
- 10. Как редактировать строку ListView программно?
- 11. Можем ли мы редактировать сгенерированный код в java swing?
- 12. Можем ли мы редактировать замороженную колонку в jqgrid
- 13. Можем ли мы редактировать профиль конфигурации в IOS
- 14. Можем ли мы редактировать профиль пользователей с помощью LinkedIn API?
- 15. Почему мы можем редактировать представление в sql-сервере
- 16. Можем ли мы редактировать и передавать файлы в FTE
- 17. Как редактировать хранящиеся заголовки лицензий в KDevelop?
- 18. редактировать ListView из C++ CLR
- 19. хотите редактировать TextView в ListView
- 20. Редактировать список Элементы в ListView
- 21. Редактировать Редактировать область администратора
- 22. Как редактировать данные в вложенном Listview
- 23. Как редактировать базу данных в listview
- 24. ListView, ListViewItems и виртуализация
- 25. Как управлять/редактировать/редактировать несколько объектов?
- 26. Редактировать текущий поток (сообщение)
- 27. onClick, чтобы редактировать данные CheckBox в ListView
- 28. Редактировать base_css Таблица стилей
- 29. TextView можно редактировать?
- 30. Редактировать столбец TextView в ListView WPF
Немного участвует, но выполнимо в конце концов! – TaW