亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? exlistview.cs

?? this archieve includes source code for a editable listview and is really useful for developing windo
?? CS
?? 第 1 頁 / 共 3 頁
字號(hào):
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;
using System.Runtime.InteropServices;

namespace EXControls {
    
    public class EXListView : ListView {
        
        private ListViewItem.ListViewSubItem _clickedsubitem; //clicked ListViewSubItem
        private ListViewItem _clickeditem; //clicked ListViewItem
        private int _col; //index of doubleclicked ListViewSubItem
        private TextBox txtbx; //the default edit control
        private int _sortcol; //index of clicked ColumnHeader
        private Brush _sortcolbrush; //color of items in sorted column
        private Brush _highlightbrush; //color of highlighted items
        private int _cpadding; //padding of the embedded controls
            
        private const UInt32 LVM_FIRST = 0x1000;
        private const UInt32 LVM_SCROLL = (LVM_FIRST + 20);
        private const int WM_HSCROLL = 0x114;
        private const int WM_VSCROLL = 0x115;
        private const int WM_MOUSEWHEEL = 0x020A;
        private const int WM_PAINT = 0x000F;
            
        private struct EmbeddedControl {
            public Control MyControl;
            public EXControlListViewSubItem MySubItem;
        }
            
        private ArrayList _controls;
            
        [DllImport("user32.dll")]
        private static extern bool SendMessage(IntPtr hWnd, UInt32 m, int wParam, int lParam);
        
        protected override void WndProc(ref Message m) {
            if (m.Msg == WM_PAINT) {
                foreach (EmbeddedControl c in _controls) {
                    Rectangle r = c.MySubItem.Bounds;
                    if (r.Y > 0 && r.Y < this.ClientRectangle.Height) {
                        c.MyControl.Visible = true;
                        c.MyControl.Bounds = new Rectangle(r.X + _cpadding, r.Y + _cpadding, r.Width - (2 * _cpadding), r.Height - (2 * _cpadding));
                    } else {
                        c.MyControl.Visible = false;
                    }
                }
            }
            switch (m.Msg) {
                case WM_HSCROLL:
                case WM_VSCROLL:
                case WM_MOUSEWHEEL:
                    this.Focus();
                    break;
            }
            base.WndProc(ref m);
        }
        
        private void ScrollMe(int x, int y) {
            SendMessage((IntPtr) this.Handle, LVM_SCROLL, x, y);
        }
        
        public EXListView() {
            _cpadding = 4;
            _controls = new ArrayList();
            _sortcol = -1;
            _sortcolbrush = SystemBrushes.ControlLight;
            _highlightbrush = SystemBrushes.Highlight;
            this.OwnerDraw = true;
            this.FullRowSelect = true;
            this.View = View.Details;
            this.MouseDown += new MouseEventHandler(this_MouseDown);
            this.MouseDoubleClick += new MouseEventHandler(this_MouseDoubleClick);
            this.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler(this_DrawColumnHeader);
            this.DrawSubItem += new DrawListViewSubItemEventHandler(this_DrawSubItem);
            this.MouseMove += new MouseEventHandler(this_MouseMove);
            this.ColumnClick += new ColumnClickEventHandler(this_ColumnClick);
            txtbx = new TextBox();
            txtbx.Visible = false;
            this.Controls.Add(txtbx);
            txtbx.Leave += new EventHandler(c_Leave);
            txtbx.KeyPress += new KeyPressEventHandler(txtbx_KeyPress);
        }
        
        public void AddControlToSubItem(Control control, EXControlListViewSubItem subitem) {
            this.Controls.Add(control);
            subitem.MyControl = control;
            EmbeddedControl ec;
            ec.MyControl = control;
            ec.MySubItem = subitem;
            this._controls.Add(ec);
        }
        
        public void RemoveControlFromSubItem(EXControlListViewSubItem subitem) {
            Control c = subitem.MyControl;
            for (int i = 0; i < this._controls.Count; i++) {
                if (((EmbeddedControl) this._controls[i]).MySubItem == subitem) {
                    this._controls.RemoveAt(i);
                    subitem.MyControl = null;
                    this.Controls.Remove(c);
                    c.Dispose();
                    return;
                }
            }
        }
        
        public int ControlPadding {
            get {return _cpadding;}
            set {_cpadding = value;}
        }
        
        public Brush MySortBrush {
            get {return _sortcolbrush;}
            set {_sortcolbrush = value;}
        }
        
        public Brush MyHighlightBrush {
            get {return _highlightbrush;}
            set {_highlightbrush = value;}
        }
        
        private void txtbx_KeyPress(object sender, KeyPressEventArgs e) {
            if (e.KeyChar == (char) Keys.Return) {
                _clickedsubitem.Text = txtbx.Text;
                txtbx.Visible = false;
                _clickeditem.Tag = null;
            }
        }
        
        private void c_Leave(object sender, EventArgs e) {
            Control c = (Control) sender;
            _clickedsubitem.Text = c.Text;
            c.Visible = false;
            _clickeditem.Tag = null;
        }
        
        private void this_MouseDown(object sender, MouseEventArgs e) {
            ListViewHitTestInfo lstvinfo = this.HitTest(e.X, e.Y);
            ListViewItem.ListViewSubItem subitem = lstvinfo.SubItem;
            if (subitem == null) return;
            int subx = subitem.Bounds.Left;
            if (subx < 0) {
                this.ScrollMe(subx, 0);
            }
        }
        
        private void this_MouseDoubleClick(object sender, MouseEventArgs e) {
            EXListViewItem lstvItem = this.GetItemAt(e.X, e.Y) as EXListViewItem;
            if (lstvItem == null) return;
            _clickeditem = lstvItem;
            int x = lstvItem.Bounds.Left;
            int i;
            for (i = 0; i < this.Columns.Count; i++) {
                x = x + this.Columns[i].Width;
                if (x > e.X) {
                    x = x - this.Columns[i].Width;
                    _clickedsubitem = lstvItem.SubItems[i];
                    _col = i;
                    break;
                }
            }
            if (!(this.Columns[i] is EXColumnHeader)) return;
            EXColumnHeader col = (EXColumnHeader) this.Columns[i];
            if (col.GetType() == typeof(EXEditableColumnHeader)) {
                EXEditableColumnHeader editcol = (EXEditableColumnHeader) col;
                if (editcol.MyControl != null) {
                    Control c = editcol.MyControl;
                    if (c.Tag != null) {
                        this.Controls.Add(c);
                        c.Tag = null;
                        if (c is ComboBox) {
                            ((ComboBox) c).SelectedValueChanged += new EventHandler(cmbx_SelectedValueChanged);
                        }
                        c.Leave += new EventHandler(c_Leave);
                    }
                    c.Location = new Point(x, this.GetItemRect(this.Items.IndexOf(lstvItem)).Y);
                    c.Width = this.Columns[i].Width;
                    if (c.Width > this.Width) c.Width = this.ClientRectangle.Width;
                    c.Text = _clickedsubitem.Text;
                    c.Visible = true;
                    c.BringToFront();
                    c.Focus();
                } else {
                    txtbx.Location = new Point(x, this.GetItemRect(this.Items.IndexOf(lstvItem)).Y);
                    txtbx.Width = this.Columns[i].Width;
                    if (txtbx.Width > this.Width) txtbx.Width = this.ClientRectangle.Width;
                    txtbx.Text = _clickedsubitem.Text;
                    txtbx.Visible = true;
                    txtbx.BringToFront();
                    txtbx.Focus();
                }
            } else if (col.GetType() == typeof(EXBoolColumnHeader)) {
                EXBoolColumnHeader boolcol = (EXBoolColumnHeader) col;
                if (boolcol.Editable) {
                    EXBoolListViewSubItem boolsubitem = (EXBoolListViewSubItem) _clickedsubitem;
                    if (boolsubitem.BoolValue == true) {
                        boolsubitem.BoolValue = false;
                    } else {
                        boolsubitem.BoolValue = true;
                    }
                    this.Invalidate(boolsubitem.Bounds);
                }
            }
        }
        
        private void cmbx_SelectedValueChanged(object sender, EventArgs e) {
            if (((Control) sender).Visible == false || _clickedsubitem == null) return;
            if (sender.GetType() == typeof(EXComboBox)) {
                EXComboBox excmbx = (EXComboBox) sender;
                object item = excmbx.SelectedItem;
                //Is this an combobox item with one image?
                if (item.GetType() == typeof(EXComboBox.EXImageItem)) {
                    EXComboBox.EXImageItem imgitem = (EXComboBox.EXImageItem) item;
                    //Is the first column clicked -- in that case it's a ListViewItem
                    if (_col == 0) {
                        if (_clickeditem.GetType() == typeof(EXImageListViewItem)) {
                            ((EXImageListViewItem) _clickeditem).MyImage = imgitem.MyImage;
                        } else if (_clickeditem.GetType() == typeof(EXMultipleImagesListViewItem)) {
                            EXMultipleImagesListViewItem imglstvitem = (EXMultipleImagesListViewItem) _clickeditem;
			                imglstvitem.MyImages.Clear();
			                imglstvitem.MyImages.AddRange(new object[] {imgitem.MyImage});
                        }
                    //another column than the first one is clicked, so we have a ListViewSubItem
                    } else {
                        if (_clickedsubitem.GetType() == typeof(EXImageListViewSubItem)) {
                            EXImageListViewSubItem imgsub = (EXImageListViewSubItem) _clickedsubitem;
                            imgsub.MyImage = imgitem.MyImage;
                        } else if (_clickedsubitem.GetType() == typeof(EXMultipleImagesListViewSubItem)) {
                            EXMultipleImagesListViewSubItem imgsub = (EXMultipleImagesListViewSubItem) _clickedsubitem;
                            imgsub.MyImages.Clear();
                            imgsub.MyImages.Add(imgitem.MyImage);
			                imgsub.MyValue = imgitem.MyValue;
                        }
                    }
                    //or is this a combobox item with multiple images?
                } else if (item.GetType() == typeof(EXComboBox.EXMultipleImagesItem)) {
                    EXComboBox.EXMultipleImagesItem imgitem = (EXComboBox.EXMultipleImagesItem) item;
                    if (_col == 0) {
                        if (_clickeditem.GetType() == typeof(EXImageListViewItem)) {
                            ((EXImageListViewItem) _clickeditem).MyImage = (Image) imgitem.MyImages[0];
                        } else if (_clickeditem.GetType() == typeof(EXMultipleImagesListViewItem)) {
                            EXMultipleImagesListViewItem imglstvitem = (EXMultipleImagesListViewItem) _clickeditem;
			                imglstvitem.MyImages.Clear();
			                imglstvitem.MyImages.AddRange(imgitem.MyImages);
                        }
                    } else {
                        if (_clickedsubitem.GetType() == typeof(EXImageListViewSubItem)) {
                            EXImageListViewSubItem imgsub = (EXImageListViewSubItem) _clickedsubitem;
                            if (imgitem.MyImages != null) {
                                imgsub.MyImage = (Image) imgitem.MyImages[0];
                            }
                        } else if (_clickedsubitem.GetType() == typeof(EXMultipleImagesListViewSubItem)) {
                            EXMultipleImagesListViewSubItem imgsub = (EXMultipleImagesListViewSubItem) _clickedsubitem;
                            imgsub.MyImages.Clear();
			                imgsub.MyImages.AddRange(imgitem.MyImages);
			                imgsub.MyValue = imgitem.MyValue;
                        }
                    }
                }
            }
            ComboBox c = (ComboBox) sender;
            _clickedsubitem.Text = c.Text;
            c.Visible = false;
            _clickeditem.Tag = null;
        }
        
        private void this_MouseMove(object sender, MouseEventArgs e) {
            ListViewItem item = this.GetItemAt(e.X, e.Y);
            if (item != null && item.Tag == null) {
                this.Invalidate(item.Bounds);
                item.Tag = "t";
            }
        }
        
        private void this_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) {
            e.DrawDefault = true;
        }
        
        private void this_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) {
            e.DrawBackground();
            if (e.ColumnIndex == _sortcol) {
                e.Graphics.FillRectangle(_sortcolbrush, e.Bounds);
            }
            if ((e.ItemState & ListViewItemStates.Selected) != 0) {
                e.Graphics.FillRectangle(_highlightbrush, e.Bounds);
            }
            int fonty = e.Bounds.Y + ((int) (e.Bounds.Height / 2)) - ((int) (e.SubItem.Font.Height / 2));
            int x = e.Bounds.X + 2;
            if (e.ColumnIndex == 0) {
                EXListViewItem item = (EXListViewItem) e.Item;
                if (item.GetType() == typeof(EXImageListViewItem)) {
                    EXImageListViewItem imageitem = (EXImageListViewItem) item;
                    if (imageitem.MyImage != null) {
                        Image img = imageitem.MyImage;
                        int imgy = e.Bounds.Y + ((int) (e.Bounds.Height / 2)) - ((int) (img.Height / 2));
                        e.Graphics.DrawImage(img, x, imgy, img.Width, img.Height);
                        x += img.Width + 2;
                    }
                }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合网天天看片| 九色综合狠狠综合久久| 成人深夜在线观看| 中文字幕欧美日本乱码一线二线 | 亚洲精品久久久久久国产精华液| 成人免费视频一区二区| 亚洲欧洲精品一区二区三区不卡| 99久久久久久99| 亚洲最大成人网4388xx| 欧美男女性生活在线直播观看| 五月天激情小说综合| 91精品国产综合久久久蜜臀粉嫩| 美女视频一区二区三区| 久久九九国产精品| 91小视频在线免费看| 亚洲图片欧美综合| 欧美不卡在线视频| 波多野洁衣一区| 亚洲国产综合在线| 国产亚洲综合av| 色狠狠色噜噜噜综合网| 美美哒免费高清在线观看视频一区二区| 欧美xxxx老人做受| 91免费在线视频观看| 日本不卡视频一二三区| 国产精品毛片久久久久久| 欧美性受极品xxxx喷水| 精品一区二区三区免费播放| 亚洲三级在线免费| 日韩欧美国产1| 色婷婷激情一区二区三区| 美腿丝袜在线亚洲一区| 国产精品久久久久一区二区三区共 | 色综合久久中文字幕| 青青草原综合久久大伊人精品优势| 国产三级欧美三级| 欧美日韩成人在线| 白白色亚洲国产精品| 美女久久久精品| 一区二区久久久| 亚洲国产精品高清| 欧美一区二区三区电影| 欧美亚洲自拍偷拍| 成人sese在线| 国产一区二区三区黄视频| 亚洲动漫第一页| 亚洲精选在线视频| 国产精品美女www爽爽爽| 日韩欧美一二三| 欧美日韩精品电影| 色综合久久久久综合| 高清不卡一区二区| 久久国产综合精品| 首页国产欧美久久| 一区二区三区四区中文字幕| 欧美国产精品一区| 久久网站最新地址| 日韩欧美www| 欧美高清你懂得| 欧美麻豆精品久久久久久| 色就色 综合激情| 色婷婷综合中文久久一本| 顶级嫩模精品视频在线看| 国产一区二区三区四区在线观看| 日韩av二区在线播放| 午夜电影一区二区三区| 一区二区免费在线播放| 亚洲三级免费观看| 亚洲欧美经典视频| 亚洲私人黄色宅男| 亚洲色图视频网| 亚洲欧美国产三级| 亚洲日本在线视频观看| 国产精品久久网站| 中文字幕在线不卡国产视频| 中文字幕一区二区三区精华液 | 欧美精品色综合| 欧美日韩中文另类| 欧美三级韩国三级日本三斤| 色婷婷久久一区二区三区麻豆| 色综合一区二区三区| 91麻豆自制传媒国产之光| 91女厕偷拍女厕偷拍高清| 色综合天天性综合| 欧美在线免费观看视频| 欧美日韩精品电影| 51久久夜色精品国产麻豆| 宅男噜噜噜66一区二区66| 91精品国产福利在线观看 | 日韩情涩欧美日韩视频| 欧美午夜精品一区二区蜜桃 | 99精品视频中文字幕| 91福利精品第一导航| 欧美丝袜自拍制服另类| 91精品国产色综合久久| 亚洲精品在线一区二区| 国产欧美精品在线观看| 国产精品色婷婷| 亚洲夂夂婷婷色拍ww47| 日韩高清国产一区在线| 久久99精品国产麻豆婷婷| 成人免费黄色大片| 在线中文字幕一区| 日韩欧美亚洲国产另类| 欧美国产国产综合| 亚洲一区二区三区四区五区黄 | 91麻豆swag| 7777精品伊人久久久大香线蕉| www久久精品| 亚洲乱码中文字幕| 麻豆精品久久精品色综合| 国产精品18久久久久久vr| 色av综合在线| 精品第一国产综合精品aⅴ| 亚洲丝袜美腿综合| 美脚の诱脚舐め脚责91| av在线播放一区二区三区| 欧美精品久久99| 国产精品污网站| 青青草原综合久久大伊人精品| 国产高清不卡一区| 精品视频1区2区| 亚洲国产成人午夜在线一区| 日日摸夜夜添夜夜添亚洲女人| 国产91色综合久久免费分享| 在线欧美一区二区| 久久久www成人免费无遮挡大片| 亚洲曰韩产成在线| 国产精品亚洲第一| 欧美一区二区三区在线电影| 国产精品视频九色porn| 日韩高清不卡一区二区三区| 99久久综合精品| 精品福利视频一区二区三区| 亚洲一卡二卡三卡四卡五卡| 成人综合在线网站| 精品国产麻豆免费人成网站| 亚洲地区一二三色| 99麻豆久久久国产精品免费| 26uuu国产一区二区三区| 日韩激情av在线| 色94色欧美sute亚洲线路二| 国产精品久久久久三级| 久久99国产精品麻豆| 欧美色综合影院| 18成人在线视频| 国产二区国产一区在线观看| 日韩欧美视频一区| 午夜a成v人精品| 欧美蜜桃一区二区三区| 亚洲欧美日本韩国| 99久久99久久精品免费看蜜桃| 国产欧美一区二区精品性色| 亚洲午夜三级在线| 99精品视频中文字幕| 国产精品美女久久久久久久| 韩国女主播一区| 欧美成人精品1314www| 视频一区中文字幕| 欧美日本在线看| 午夜电影久久久| 777色狠狠一区二区三区| 视频精品一区二区| 欧美久久免费观看| 婷婷丁香久久五月婷婷| 欧美日韩性生活| 亚洲成av人片在线| 欧美猛男gaygay网站| 亚洲成年人影院| 欧美日韩国产免费一区二区| 亚洲一二三四在线观看| 欧美视频中文字幕| 日本成人中文字幕在线视频| 7777精品伊人久久久大香线蕉最新版 | 亚洲国产精品久久不卡毛片| 欧美网站一区二区| 日韩精品免费视频人成| 欧美一区二区三区白人| 久久99国产乱子伦精品免费| 久久一二三国产| 成熟亚洲日本毛茸茸凸凹| 亚洲欧洲日韩综合一区二区| 99re6这里只有精品视频在线观看| 亚洲天堂精品在线观看| 在线精品视频免费播放| 秋霞电影一区二区| 久久精品一区二区三区av| 成人丝袜高跟foot| 一区二区三区四区亚洲| 这里是久久伊人| 国产高清精品在线| 亚洲欧美激情在线| 欧美一区在线视频| 国产成人aaa| 亚洲综合在线第一页| 日韩精品一区二区在线| 成人永久aaa| 视频一区二区国产| 国产精品免费视频网站| 在线观看亚洲一区|