コード例 #1
0
        void menuItem_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem menuItem = (ToolStripMenuItem)sender;

            menuItem.Checked = !menuItem.Checked;
            foreach (GridColumn column in ((ColumnView)MainView).Columns)
            {
                if (column.GetCaption() == menuItem.Text)
                {
                    column.Visible = menuItem.Checked;
                    if (column.Visible)
                    {
                        column.VisibleIndex = menuItem.Owner.Items.IndexOfKey(menuItem.Name);
                    }
                    this.Refresh();
                    return;
                }
            }
            PropertyInfo objPropertyInfo = (PropertyInfo)menuItem.Tag;
            GridColumn   col             = ((ColumnView)MainView).Columns.AddField(objPropertyInfo.Name);

            object[] attValues = objPropertyInfo.GetCustomAttributes(typeof(CaptionColumn), false);
            if (attValues.Length > 0 && attValues[0] is CaptionColumn)
            {
                col.Caption = (attValues[0] as CaptionColumn).Caption;
            }
            else
            {
                col.Caption = col.GetCaption();
            }

            attValues = objPropertyInfo.GetCustomAttributes(typeof(XtraGridEditor), false);
            if (attValues.Length > 0 && attValues[0] is XtraGridEditor)
            {
                if ((attValues[0] as XtraGridEditor).RepositoryItem == typeof(RepositoryItemCheckEdit))
                {
                    CheckBoxEditor.Name = (attValues[0] as XtraGridEditor).Name;
                    col.ColumnEdit      = CheckBoxEditor;
                }
                else if ((attValues[0] as XtraGridEditor).RepositoryItem == typeof(RepositoryItemLookUpEdit))
                {
                    LookUpEditor.Name = (attValues[0] as XtraGridEditor).Name;
                    col.ColumnEdit    = LookUpEditor;
                }
            }

            col.Width        = col.GetBestWidth();
            col.Visible      = true;
            col.VisibleIndex = ContextMenuStrip.Items.IndexOf(menuItem);
            menuItem.Text    = col.GetCaption();
        }