Esempio n. 1
0
        private void InitExListView()
        {
            lvPermission.HeaderStyle      = ColumnHeaderStyle.Nonclickable;
            lvPermission.MySortBrush      = SystemBrushes.ControlLight;
            lvPermission.MyHighlightBrush = Brushes.Goldenrod;
            lvPermission.GridLines        = true;
            lvPermission.ControlPadding   = 4;
            //调整ListView的行高
            ImageList iList = new ImageList();

            iList.ImageSize             = new Size(1, 24);
            lvPermission.SmallImageList = iList;

            EXColumnHeader textCol = new EXColumnHeader("部门或用户");

            lvPermission.Columns.Add(textCol);
            for (int i = 0; i < _accessArray_Desc.Length; i++)
            {
                EXBoolColumnHeader col = new EXBoolColumnHeader(_accessArray_Desc[i]);
                col.Editable   = true;
                col.TrueImage  = Properties.Resources._true;
                col.FalseImage = Properties.Resources._false;
                lvPermission.Columns.Add(col);
            }
            lvPermission.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
Esempio n. 2
0
        private void InitOtherListView()
        {
            _othListView                  = new SiteListView();
            _othListView.MySortBrush      = SystemBrushes.ControlLight;
            _othListView.MyHighlightBrush = Brushes.Goldenrod;
            _othListView.GridLines        = true;
            _othListView.MultiSelect      = false;
            _othListView.Dock             = DockStyle.Fill;
            _othListView.ControlPadding   = 4;
            _othListView.HeaderStyle      = ColumnHeaderStyle.Nonclickable;

            //add columns and items

            EXColumnHeader exEditCol = new EXColumnHeader("", 120);

            _othListView.Columns.Add(exEditCol);

            //string[] testname = Enum.GetNames(typeof(OtherTestNameEnum));
            var results = DataRepository.GetTestByPlatform(ClassOfMorbidityTestEnum.OtherTest.ToString());

            //for (int i = 0; i < testname.Length; i++)
            foreach (Test t in results)
            {
                EXEditableColumnHeader exCol = new EXEditableColumnHeader(t.TestName, 60);
                _othListView.Columns.Add(exCol);
            }

            _othListView.EditableListViewSubitemValueChanged += new EventHandler <EXEditableListViewSubitemEventArgs>(_othListView_EditableListViewSubitemValueChanged);

            tabOther.Controls.Add(_othListView);
        }
Esempio n. 3
0
        private void InitOtherListView()
        {
            _othListView                  = new SiteListView();
            _othListView.MySortBrush      = SystemBrushes.ControlLight;
            _othListView.MyHighlightBrush = Brushes.Goldenrod;
            _othListView.GridLines        = true;
            _othListView.MultiSelect      = false;
            _othListView.Dock             = DockStyle.Fill;
            _othListView.ControlPadding   = 4;
            _othListView.HeaderStyle      = ColumnHeaderStyle.Nonclickable;

            //add columns and items

            EXColumnHeader exEditCol = new EXColumnHeader("", 120);

            _othListView.Columns.Add(exEditCol);

            string[] testname = Enum.GetNames(typeof(OtherTestNameEnum));
            for (int i = 0; i < testname.Length; i++)
            {
                EXEditableColumnHeader exCol = new EXEditableColumnHeader(testname[i].Replace('_', ' '), 60);
                _othListView.Columns.Add(exCol);
            }

            _othListView.EditableListViewSubitemValueChanged += new EventHandler <EXEditableListViewSubitemEventArgs>(_othListView_EditableListViewSubitemValueChanged);

            tabOther.Controls.Add(_othListView);
        }
Esempio n. 4
0
        public LayerManagerDlg()
        {
            InitializeComponent();
            LayerList.SetItemHeight(24);
            EXColumnHeader layer_icon = new EXColumnHeader("", 36);

            LayerList.Columns.Add(layer_icon);
            LayerList.Columns.Add(new EXEditableColumnHeader("工作层", 300));
            EXBoolColumnHeader active_icon = new EXBoolColumnHeader("激活", 48);

            active_icon.Editable   = true;
            active_icon.TrueImage  = NexusEditor.Properties.Resources.active;
            active_icon.FalseImage = NexusEditor.Properties.Resources.disactive;
            LayerList.Columns.Add(active_icon);
            EXBoolColumnHeader vis_icon = new EXBoolColumnHeader("渲染", 48);

            vis_icon.Editable   = true;
            vis_icon.TrueImage  = NexusEditor.Properties.Resources.visible;
            vis_icon.FalseImage = NexusEditor.Properties.Resources.disactive;
            LayerList.Columns.Add(vis_icon);
            EXBoolColumnHeader lock_icon = new EXBoolColumnHeader("冻结", 48);

            lock_icon.Editable   = true;
            lock_icon.TrueImage  = NexusEditor.Properties.Resources.lock_layer;
            lock_icon.FalseImage = NexusEditor.Properties.Resources.disactive;
            LayerList.Columns.Add(lock_icon);
        }
Esempio n. 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="daddy"></param>
        public PQCheckHMI(MainWindow daddy)
        {
            _daddy = daddy;
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
            this.Icon = _daddy.Icon;
            this.Text = daddy.GetTranslator().GetString("checkPQToolStripMenuItem");

            btnGCNCancel.Text = daddy.GetTranslator().GetString("PQBtnCancel");
            btnGCNCreate.Text = daddy.GetTranslator().GetString("PQBtnApply");
            button1.Text      = daddy.GetTranslator().GetString("PQBtnRefresh");
            button2.Text      = daddy.GetTranslator().GetString("PQBtnDelete");

            // init de la liste
            lvGCNGrid.HeaderStyle      = ColumnHeaderStyle.Nonclickable;
            lvGCNGrid.MouseClick      += new MouseEventHandler(lstv_MouseClick);
            lvGCNGrid.FullRowSelect    = true;
            lvGCNGrid.MyHighlightBrush = new SolidBrush(Color.Transparent);
            lvGCNGrid.MySelectBrush    = new SolidBrush(Color.Transparent);
            EXColumnHeader col = new EXColumnHeader("Nom", 150);

            lvGCNGrid.Columns.Add(col);

            EXBoolColumnHeader boolcol = new EXBoolColumnHeader(daddy.GetTranslator().GetString("PQDeleteColumn"), 40);

            boolcol.TrueImage  = _daddy.GetImageSized("Close");
            boolcol.FalseImage = _daddy.GetImageSized("NotSelected");
            lvGCNGrid.Columns.Add(boolcol);

            AddColumn(daddy.GetTranslator().GetString("PQSunday"), DayOfWeek.Sunday);
            AddColumn(daddy.GetTranslator().GetString("PQMonday"), DayOfWeek.Monday);
            AddColumn(daddy.GetTranslator().GetString("PQTuesday"), DayOfWeek.Tuesday);
            AddColumn(daddy.GetTranslator().GetString("PQWednesday"), DayOfWeek.Wednesday);
            AddColumn(daddy.GetTranslator().GetString("PQThursday"), DayOfWeek.Thursday);
            AddColumn(daddy.GetTranslator().GetString("PQFriday"), DayOfWeek.Friday);
            AddColumn(daddy.GetTranslator().GetString("PQSaturday"), DayOfWeek.Saturday);
            col = new EXColumnHeader(daddy.GetTranslator().GetString("PQCheckLastGen"), 200);
            lvGCNGrid.Columns.Add(col);
            totaljours = new TextBox[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6, textBox7 };

            InitPQs();
        }
Esempio n. 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="daddy"></param>
        public NotificationCreation(MainWindow daddy)
        {
            _daddy      = daddy;
            _sErrTitle  = _daddy.GetTranslator().GetString("Error");
            _sErrFormat = _daddy.GetTranslator().GetString("ErrWrongParameter");

            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            if (!SpecialFeatures.SpecialFeaturesMgt.AreSpecialFeaturesEnabled())
            {
                return;
            }

            btnGCNMap.Image = _daddy.GetImageSized("Earth");
            _daddy._cacheDetail._gmap.ControlTextLatLon = tbGCNCenter;
            tbGCNCenter.TextChanged += new System.EventHandler(this.txtCoord_TextChanged);
            tbGCNCenter.Text         = _daddy.HomeLat.ToString() + " " + _daddy.HomeLon.ToString();
            this.Text         = _daddy.GetTranslator().GetString("createpublishnotifications");
            lblGCNRadius.Text = _daddy.GetTranslator().GetString("FTFDistance");
            lblGCNCentre.Text = _daddy.GetTranslator().GetString("ParamCenterLatLon");
            lblGCNEmail.Text  = _daddy.GetTranslator().GetString("FTFEmails");
            lblGCNGrid.Text   = _daddy.GetTranslator().GetString("FTFCacheTypes");
            lblGCNNom.Text    = _daddy.GetTranslator().GetString("FTFName");
            btnGCNCancel.Text = _daddy.GetTranslator().GetString("BtnCancel");
            btnGCNCreate.Text = _daddy.GetTranslator().GetString("BtnOK");

            daddy.UpdateHttpDefaultWebProxy();
            String post_response = "";
            // On checke que les L/MDP soient corrects
            // Et on récupère les cookies au passage
            CookieContainer cookieJar = daddy.CheckGCAccount(true, false);

            if (cookieJar == null)
            {
                return;
            }

            // Pour récupérer les emails
            String         url        = "https://www.geocaching.com/notify/edit.aspx";
            HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);

            objRequest.Proxy           = daddy.GetProxy(); // Là encore, on peut virer le proxy si non utilisé (NULL)
            objRequest.CookieContainer = cookieJar;        // surtout récupérer le container de cookie qui est maintenant renseigné avec le cookie d'authentification
            HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();

            using (StreamReader responseStream = new StreamReader(objResponse.GetResponseStream()))
            {
                post_response = responseStream.ReadToEnd();
                responseStream.Close();
            }
            if (NotificationsManager.CheckWarningMessage(_daddy, post_response))
            {
                // Shit
            }

            List <String> lsemails = new List <string>();
            String        email    = "";
            String        mails    = MyTools.GetSnippetFromText("ctl00$ContentBody$LogNotify$ddlAltEmails", "select>", post_response);

            lsemails = MyTools.GetSnippetsFromText("value=\"", "\">", mails);
            if (lsemails.Count != 0)
            {
                email = lsemails[0];
            }
            cbGCNEmails.Items.AddRange(lsemails.ToArray());
            if (cbGCNEmails.Items.Count != 0)
            {
                cbGCNEmails.SelectedIndex = 0;
            }
            else
            {
                cbGCNEmails.Visible = false;
                lblGCNEmail.Visible = false;
            }

            // List of cache type (to associate with list of int)
            listOfCacheTypes   = new List <string>(new String[] { "Earthcache", "Event Cache", "Cache In Trash Out Event", "Giga-Event Cache", "Mega-Event Cache", "Letterbox Hybrid", "Multi-cache", "Traditional Cache", "Unknown Cache", "Wherigo Cache", "Virtual Cache" }); // BCR 20170825
            listOfCacheTypesId = new List <int>(new int[] { 137, 6, 13, 7005, 453, 5, 3, 2, 8, 1858, 4 });                                                                                                                                                                       // BCR 20170825

            //Matrix
            listOfAlloweKindPerCacheType = new List <Tuple <String, List <int> > >();        // BCR 20170825
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Found it", new List <int>(new int[] { 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Retract Listing", new List <int>(new int[] { 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Didn't find it", new List <int>(new int[] { 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Temporarily Disable Listing", new List <int>(new int[] { 8, 10, 10, 10, 9, 8, 8, 8, 8, 8, 8 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Write note", new List <int>(new int[] { 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Enable Listing", new List <int>(new int[] { 9, 11, 11, 11, 10, 9, 9, 9, 9, 9, 9 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Archive", new List <int>(new int[] { 3, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Update Coordinates", new List <int>(new int[] { 10, 9, 9, 9, 11, 10, 10, 10, 10, 10, 10 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Needs Archived", new List <int>(new int[] { 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Needs Maintenance", new List <int>(new int[] { 11, -1, -1, -1, 12, 11, 11, 11, 11, 11, 11 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Unarchive", new List <int>(new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Owner Maintenance", new List <int>(new int[] { 12, -1, -1, -1, -1, 12, 12, 12, 12, 12, 12 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Publish Listing", new List <int>(new int[] { 6, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Announcement", new List <int>(new int[] { -1, 6, 6, 6, 6, -1, -1, -1, -1, -1, -1 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Will Attend", new List <int>(new int[] { -1, 3, 3, 3, 3, -1, -1, -1, -1, -1, -1 })));
            listOfAlloweKindPerCacheType.Add(new Tuple <String, List <int> >("Attended", new List <int>(new int[] { -1, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1 })));

            // Create listview
            lvGCNGrid.HeaderStyle = ColumnHeaderStyle.None;
            ImageList imglist = new ImageList();

            imglist.ColorDepth = ColorDepth.Depth32Bit;
            imglist.ImageSize  = new Size(20, 20); // this will affect the row height
            imglist.Images.Add(_daddy.GetImageSized("Fail"));
            lvGCNGrid.SmallImageList   = imglist;
            lvGCNGrid.MouseClick      += new MouseEventHandler(lstv_MouseClick);
            lvGCNGrid.FullRowSelect    = true;
            lvGCNGrid.MyHighlightBrush = new SolidBrush(Color.Transparent);
            lvGCNGrid.MySelectBrush    = new SolidBrush(Color.Transparent);

            // Create columns
            // First column is for notification kind
            EXColumnHeader col = new EXColumnHeader("Type", 150);

            lvGCNGrid.Columns.Add(col);
            // And a column per cache type
            foreach (String key in listOfCacheTypes)
            {
                EXBoolColumnHeader boolcol = new EXBoolColumnHeader("", 20);
                boolcol.TrueImage  = _daddy.GetImageSized("Selected");
                boolcol.FalseImage = _daddy.GetImageSized("NotSelected");
                //col = new EXColumnHeader("", 50);
                lvGCNGrid.Columns.Add(boolcol);
            }

            // And a line with all cache type
            EXListViewItem lvi = new EXListViewItem("Cache types");

            lvGCNGrid.Items.Add(lvi);
            foreach (String key in listOfCacheTypes)
            {
                EXImageListViewSubItem si = new EXImageListViewSubItem(MyTools.ResizeImage(_daddy.GetImageSized(key), 16, 16));
                lvi.SubItems.Add(si);
            }

            // Add a line for each notification kind
            foreach (Tuple <String, List <int> > o in listOfAlloweKindPerCacheType)
            {
                lvi = new EXListViewItem(o.Item1);
                lvGCNGrid.Items.Add(lvi);
                foreach (int i in o.Item2)
                {
                    if (i != -1)
                    {
                        EXBoolListViewSubItem subi = new EXBoolListViewSubItem(false);
                        lvi.SubItems.Add(subi);
                    }
                    else
                    {
                        EXListViewSubItem subi = new EXListViewSubItem("");
                        subi.BackColor = Color.DarkBlue;
                        lvi.SubItems.Add(subi);
                    }
                }
            }
        }
Esempio n. 7
0
        public MainForm(string[] args)
        {
            if (args != null)
            {
                bool verbose = false;

                for (int i = 0; i < args.Length; i++)
                {
                    if (args[i].Equals("-v"))
                    {
                        verbose = true;
                    }
                }

                if (verbose)
                {
                    SpringCard.LibCs.SystemConsole.Show();
                }
            }

            InitializeComponent();

            if ((Screen.PrimaryScreen.Bounds.Width <= 1200) || (Screen.PrimaryScreen.Bounds.Height < 800))
            {
                WindowState = FormWindowState.Maximized;
            }

            FileVersionInfo info = FileVersionInfo.GetVersionInfo(Application.ExecutablePath);

            Text = Text + " v." + info.ProductVersion;

            Settings.Load();

            lvReaders = new EXListView();
            pMain.Controls.Add(lvReaders);

            lvReaders.AllowColumnReorder = false;
            lvReaders.AutoArrange        = false;
            lvReaders.AutoSize           = false;
            lvReaders.Dock          = DockStyle.Fill;
            lvReaders.FullRowSelect = true;
            lvReaders.HeaderStyle   = ColumnHeaderStyle.None;

            lvReaders.MyHighlightBrush = new SolidBrush(Color.FromArgb(240, 240, 240));

            lvReaders.MultiSelect    = false;
            lvReaders.SmallImageList = readerImages;

            lvReaders.ContextMenuStrip = readerPopupMenu;
            lvReaders.ShowItemToolTips = true;

            lvReaders.ShowGroups = true;

            EXColumnHeader col;

            col = new EXColumnHeader("", 20);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("Reader Name", 355);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("", 20);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("Status", 145);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("Card ATR", lvReaders.ClientRectangle.Width - 560);
            lvReaders.Columns.Add(col);

            lvReaders.SelectedIndexChanged += new System.EventHandler(LvReaderSelectedIndexChanged);
            lvReaders.DoubleClick          += new System.EventHandler(LvReaderDoubleClicked);
            lvReaders.KeyPress             += new System.Windows.Forms.KeyPressEventHandler(LvReaderKeyPress);

            foreach (Control control in Controls)
            {
                SetHintHandler(control);
            }
        }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="daddy"></param>
        public NotificationGroup(MainWindow daddy)
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            _daddy    = daddy;
            this.Text = _daddy.GetTranslator().GetString("menupublishnotifications");;

            btnGCNGDelete.Text       = _daddy.GetTranslator().GetString("deletepublishnotifications");
            btnGCNGDelete.Image      = _daddy._imgMenus["deletepublishnotifications"];
            btnGCNGDelete.ImageAlign = ContentAlignment.MiddleLeft;
            btnGCNGDelete.TextAlign  = ContentAlignment.MiddleCenter;

            btnGCNGToggle.Text       = _daddy.GetTranslator().GetString("togglepublishnotifications");
            btnGCNGToggle.Image      = _daddy._imgMenus["togglepublishnotifications"];
            btnGCNGToggle.ImageAlign = ContentAlignment.MiddleLeft;
            btnGCNGToggle.TextAlign  = ContentAlignment.MiddleCenter;

            btnGCNGUpdate.Text       = _daddy.GetTranslator().GetString("updatepublishnotifications");
            btnGCNGUpdate.Image      = _daddy._imgMenus["updatepublishnotifications"];
            btnGCNGUpdate.ImageAlign = ContentAlignment.MiddleLeft;
            btnGCNGUpdate.TextAlign  = ContentAlignment.MiddleCenter;

            btnGCNGMap.Text       = _daddy.GetTranslator().GetString("mappublishnotifications");
            btnGCNGMap.Image      = _daddy._imgMenus["mappublishnotifications"];
            btnGCNGMap.ImageAlign = ContentAlignment.MiddleLeft;
            btnGCNGMap.TextAlign  = ContentAlignment.MiddleCenter;

            ImageList imglist = new ImageList();

            imglist.ColorDepth = ColorDepth.Depth32Bit;
            imglist.ImageSize  = new Size(32, 32); // this will affect the row height
            imglist.Images.Add("GroupCaches", _daddy.GetImageSized("GroupCaches"));
            foreach (String s in Geocaching.GeocachingConstants.GetSupportedCacheTypes())
            {
                imglist.Images.Add(s, _daddy.GetImageSized(s));
            }
            lvGCNListGroup.SmallImageList = imglist;
            lvGCNListGroup.MouseClick    += new MouseEventHandler(lstv_MouseClick);
            lvGCNListGroup.FullRowSelect  = true;

            EXColumnHeader col = null;

            col = new EXColumnHeader(_daddy.GetTranslator().GetString("FTFName"), 200);
            lvGCNListGroup.Columns.Add(col);
            col = new EXColumnHeader("", 40);
            lvGCNListGroup.Columns.Add(col);
            col = new EXColumnHeader("", 24);
            lvGCNListGroup.Columns.Add(col);
            col = new EXColumnHeader(_daddy.GetTranslator().GetString("ParamCenterLatLon"), 150);
            lvGCNListGroup.Columns.Add(col);
            col = new EXColumnHeader(_daddy.GetTranslator().GetString("FTFDistance"), 80);
            lvGCNListGroup.Columns.Add(col);
            col = new EXColumnHeader(_daddy.GetTranslator().GetString("FTFNotifTypes"), 150);
            lvGCNListGroup.Columns.Add(col);

            _daddy._ThreadProgressBarTitle = _daddy.GetTranslator().GetString("menupublishnotifications");
            _daddy.CreateThreadProgressBar();

            PopulateList();
            _daddy.KillThreadProgressBar();
        }
Esempio n. 9
0
        public MainForm(string[] args)
        {
            if (args != null)
            {
                bool verbose = false;

                for (int i = 0; i < args.Length; i++)
                {
                    if (args[i].Equals("-v"))
                    {
                        verbose = true;
                    }
                }

                if (verbose)
                {
                    SpringCard.LibCs.SystemConsole.Show();
                }
            }

            InitializeComponent();

            Settings.Load();

            lvReaders = new EXListView();
            pMain.Controls.Add(lvReaders);

            lvReaders.AllowColumnReorder = false;
            lvReaders.AutoArrange        = false;
            lvReaders.AutoSize           = false;
            lvReaders.Dock          = DockStyle.Fill;
            lvReaders.FullRowSelect = true;
            lvReaders.HeaderStyle   = ColumnHeaderStyle.None;

            lvReaders.MyHighlightBrush = new SolidBrush(Color.FromArgb(240, 240, 240));

            lvReaders.MultiSelect    = false;
            lvReaders.SmallImageList = readerImages;

            lvReaders.ContextMenuStrip = readerPopupMenu;
            lvReaders.ShowItemToolTips = true;

            lvReaders.ShowGroups = true;

            EXColumnHeader col;

            col = new EXColumnHeader("", 20);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("Reader Name", 255);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("", 20);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("Status", 145);
            lvReaders.Columns.Add(col);

            col = new EXColumnHeader("Card ATR", lvReaders.ClientRectangle.Width - 460);
            lvReaders.Columns.Add(col);

            lvReaders.SelectedIndexChanged += new System.EventHandler(LvReaderSelectedIndexChanged);
            lvReaders.DoubleClick          += new System.EventHandler(LvReaderDoubleClicked);
            lvReaders.KeyPress             += new System.Windows.Forms.KeyPressEventHandler(LvReaderKeyPress);

            foreach (Control control in Controls)
            {
                SetHintHandler(control);
            }
        }