Exemple #1
0
        private TabPage CreateListViewTabPage(string categoryname, TabControl tabcontrol, Search search)
        {
            for (int i = 0; i < tabcontrol.TabPages.Count; i++) {
                var tabpage = tabcontrol.TabPages[i];
                var lw = GetTabListViewControl(tabpage);
                if (lw.search == search) {
                    lw.DataItems = category.Filter(getSelectedCategory(), search.getSearch());
                    return tabpage;
                }
            }

            var listview = new ListViewEx(category.Filter(categoryname, search.getSearch()));
            var page = listview.DataItems.Count / config.ShowNum;
            listview.Page = listview.DataItems.Count % config.ShowNum == 0 ? page : page + 1;

            if (categoryname == Category.Trust) {
                listview.MultiSelect = true;
            }
            listview.search = search;
            listview.ContextMenuStrip = TabListViewContextMenuStrip;

            listview.MouseUp += (sender, e) => {
                var item = listview.GetItemAt(e.X, e.Y);
                if (item == null && listview.FocusedItem !=null) {
                    listview.FocusedItem.Selected = true;
                }
            };

            listview.ItemSelectionChanged += (sender, e) => {
                if (e.IsSelected) {
                    var d = listview.DataItems[e.ItemIndex];
                    this.EditItem(d.ID, false, false);
                }
            };

            listview.DoubleClick += (sender, e) => {
                if (listview.SelectedIndices.Count == 1) {
                    var selindex = listview.SelectedIndices[0];
                    var id = listview.DataItems[selindex].ID;
                    this.Moves(id);
                }
            };

            listview.ItemDrag += (s, e) => {
                if (listview.SelectedIndices.Count > 0) {
                    var index = listview.SelectedIndices[0];
                    var data = listview.DataItems[index];
                    listview.DoDragDrop(data, DragDropEffects.Move);
                }
            };

            listview.Dock = DockStyle.Fill;

            var t = new TabPage(search.Pattern);
            t.Controls.Add(listview);
            return t;
        }