public void OnDragDrop(DockStyle dock, ListViewItem item) { Panel panel = panelFill; if (dock == DockStyle.Top) { panel = panelTop; } else if (dock == DockStyle.Bottom) { panel = panelBottom; } else if (dock == DockStyle.Left) { panel = panelLeft; } else if (dock == DockStyle.Right) { panel = panelRight; } if (item.Text.Equals("ToolBar", StringComparison.OrdinalIgnoreCase)) { string sCtrlName = GetDistinctName("导航栏", Window.WindowControlMgr); CWindowControl WindowControl = new CWindowControl(); WindowControl.CtrlType = ControlType.NavBar; WindowControl.Ctx = Program.Ctx; WindowControl.Name = sCtrlName; WindowControl.Dock = (int)dock; WindowControl.UI_Window_id = Window.Id; Window.WindowControlMgr.AddNew(WindowControl); NavigateBarEl nb = new NavigateBarEl(); nb.WindowControl = WindowControl; nb.Tag = WindowControl; panel.Controls.Add(nb); nb.Dock = DockStyle.Fill; nb.BringToFront(); nb.flowLayoutPanel.MouseClick += new MouseEventHandler(childCtrl_MouseClick); SelectElement(nb); } else if (item.Text.Equals("DataGrid", StringComparison.OrdinalIgnoreCase)) { SelTableForm frm = new SelTableForm(); if (frm.ShowDialog() != DialogResult.OK) { return; } string sCtrlName = GetDistinctName(frm.m_SelTable.Name, Window.WindowControlMgr); CWindowControl WindowControl = new CWindowControl(); WindowControl.CtrlType = ControlType.TableGrid; WindowControl.Ctx = Program.Ctx; WindowControl.Name = sCtrlName; WindowControl.Dock = (int)dock; WindowControl.UI_Window_id = Window.Id; Window.WindowControlMgr.AddNew(WindowControl); CTableInWindowControl tiwc = new CTableInWindowControl(); tiwc.Ctx = Program.Ctx; tiwc.FW_Table_id = frm.m_SelTable.Id; tiwc.UI_WindowControl_id = WindowControl.Id; tiwc.Text = frm.m_SelTable.Name; WindowControl.TableInWindowControlMgr.AddNew(tiwc); TableGridEl te = new TableGridEl(); te.WindowControl = WindowControl; te.CaptionText = sCtrlName; te.ShowTitleBar = true; te.ShowToolBar = true; te.Tag = WindowControl; panel.Controls.Add(te); te.Dock = DockStyle.Fill; te.BringToFront(); //联动表 ListViewItem itemLT = new ListViewItem(); itemLT.Text = te.CaptionText; itemLT.Tag = WindowControl; m_AttributeToolWindow.listLinkageWindowControl.Items.Add(itemLT); // //List<CBaseObject> lstColumn = table.ColumnMgr.GetList(); //foreach (CBaseObject obj in lstColumn) //{ // CColumn col = (CColumn)obj; // CColumnInWindowControl ciw = new CColumnInWindowControl(); // ciw.FW_Column_id = col.Id; // ciw.UI_TableInWindow_id = TableInWindow.Id; // if (!TableInWindow.ColumnInWindowMgr.AddNew(ciw)) // { // MessageBox.Show("设置显示字段失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); // //return false; // } // te.m_lstShowColumn.Add(ciw.FW_Column_id); //} //foreach (ToolStripItem tbutton in te.tableCtrlEl.toolStrip.Items) //{ // CToolbarButtonInWindowControl tbiw = new CToolbarButtonInWindowControl(); // tbiw.Title = tbutton.Text; // tbiw.UI_TableInWindow_id = TableInWindow.Id; // if (!TableInWindow.ToolbarButtonInWindowMgr.AddNew(tbiw)) // { // MessageBox.Show("设置工具栏按钮失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); // //return false; // } // te.m_lstShowToolBarButton.Add(tbiw.Title); //} te.tbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); SelectElement(te); } else if (item.Text.Equals("TreeCtrl", StringComparison.OrdinalIgnoreCase)) { TableTreeSet frm = new TableTreeSet(); if (frm.ShowDialog() != DialogResult.OK) { return; } string sCtrlName = GetDistinctName(frm.m_WindowControl.Name, Window.WindowControlMgr); CWindowControl WindowControl = frm.m_WindowControl; WindowControl.Name = sCtrlName; WindowControl.CtrlType = ControlType.TableTree; WindowControl.Ctx = Program.Ctx; WindowControl.Dock = (int)dock; WindowControl.UI_Window_id = Window.Id; Window.WindowControlMgr.AddNew(WindowControl); TableTreeEl tt = new TableTreeEl(); tt.CaptionText = sCtrlName; tt.ShowTitleBar = true; tt.Tag = WindowControl; panel.Controls.Add(tt); tt.Dock = DockStyle.Fill; tt.BringToFront(); tt.tbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); SelectElement(tt); } else if (item.Text.Equals("TabCtrl", StringComparison.OrdinalIgnoreCase)) { SelMultTableForm frm = new SelMultTableForm(); if (frm.ShowDialog() != DialogResult.OK) { return; } string sCtrlName = GetDistinctName("标签", Window.WindowControlMgr); CWindowControl WindowControl = new CWindowControl(); WindowControl.CtrlType = ControlType.TableTab; WindowControl.Ctx = Program.Ctx; WindowControl.Name = sCtrlName; WindowControl.Dock = (int)dock; WindowControl.UI_Window_id = Window.Id; Window.WindowControlMgr.AddNew(WindowControl); foreach (CTable table in frm.m_lstSelTable) { CTableInWindowControl tiwc = new CTableInWindowControl(); tiwc.Ctx = Program.Ctx; tiwc.FW_Table_id = table.Id; tiwc.UI_WindowControl_id = WindowControl.Id; tiwc.Text = table.Name; WindowControl.TableInWindowControlMgr.AddNew(tiwc); } TableTabEl tab = new TableTabEl(); tab.WindowControl = WindowControl; tab.CaptionText = sCtrlName; tab.ShowTitleBar = false; tab.Tag = WindowControl; panel.Controls.Add(tab); tab.Dock = DockStyle.Fill; tab.BringToFront(); tab.tabControl.MouseClick += new MouseEventHandler(childCtrl_MouseClick); SelectElement(tab); } else if (item.Text.Equals("ComboBox", StringComparison.OrdinalIgnoreCase)) { SelTableForm frm = new SelTableForm(); if (frm.ShowDialog() != DialogResult.OK) { return; } SelColumnForm frm2 = new SelColumnForm(); frm2.m_Table = frm.m_SelTable; if (frm2.ShowDialog() != DialogResult.OK) { return; } string sCtrlName = GetDistinctName(frm.m_SelTable.Name, Window.WindowControlMgr); CWindowControl WindowControl = new CWindowControl(); WindowControl.CtrlType = ControlType.ComboBox; WindowControl.Ctx = Program.Ctx; WindowControl.Name = sCtrlName; WindowControl.Dock = (int)dock; WindowControl.UI_Window_id = Window.Id; Window.WindowControlMgr.AddNew(WindowControl); string sText = string.Format("[{0}]", frm2.m_SelColumn.Code); CTableInWindowControl tiwc = new CTableInWindowControl(); tiwc.Ctx = Program.Ctx; tiwc.FW_Table_id = frm.m_SelTable.Id; tiwc.UI_WindowControl_id = WindowControl.Id; tiwc.Text = sText; WindowControl.TableInWindowControlMgr.AddNew(tiwc); UIComboBoxEl cb = new UIComboBoxEl(); cb.CaptionText = frm.m_SelTable.Name + ":"; cb.WindowControl = WindowControl; cb.Tag = WindowControl; panel.Controls.Add(cb); cb.Dock = DockStyle.Top; cb.BringToFront(); cb.lbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); cb.comboBox.MouseClick += new MouseEventHandler(childCtrl_MouseClick); SelectElement(cb); } else if (item.Text.Equals("ListBox", StringComparison.OrdinalIgnoreCase)) { SelTableForm frm = new SelTableForm(); if (frm.ShowDialog() != DialogResult.OK) { return; } SelColumnForm frm2 = new SelColumnForm(); frm2.m_Table = frm.m_SelTable; if (frm2.ShowDialog() != DialogResult.OK) { return; } string sCtrlName = GetDistinctName(frm.m_SelTable.Name, Window.WindowControlMgr); CWindowControl WindowControl = new CWindowControl(); WindowControl.CtrlType = ControlType.ListBox; WindowControl.Ctx = Program.Ctx; WindowControl.Name = sCtrlName; WindowControl.Dock = (int)dock; WindowControl.UI_Window_id = Window.Id; Window.WindowControlMgr.AddNew(WindowControl); string sText = string.Format("[{0}]", frm2.m_SelColumn.Code); //string sText = ""; //List<CBaseObject> lstObj = frm.m_SelTable.ColumnMgr.GetList(); //bool bHasName = false, bHasCode = false; //foreach (CBaseObject obj in lstObj) //{ // CColumn column = (CColumn)obj; // if (column.Code.Equals("name", StringComparison.OrdinalIgnoreCase)) // { // bHasName = true; // } // if (column.Code.Equals("code", StringComparison.OrdinalIgnoreCase)) // { // bHasCode = true; // } //} //if (bHasName) // sText = "[Name]"; //else if (bHasCode) // sText = "[Code]"; CTableInWindowControl tiwc = new CTableInWindowControl(); tiwc.Ctx = Program.Ctx; tiwc.FW_Table_id = frm.m_SelTable.Id; tiwc.UI_WindowControl_id = WindowControl.Id; tiwc.Text = sText; WindowControl.TableInWindowControlMgr.AddNew(tiwc); UIListBoxEl listBox = new UIListBoxEl(); listBox.CaptionText = sCtrlName; listBox.WindowControl = WindowControl; listBox.Tag = WindowControl; panel.Controls.Add(listBox); listBox.Dock = DockStyle.Fill; listBox.BringToFront(); listBox.tbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); SelectElement(listBox); } }
void LoadData() { //this.Controls.Clear(); m_AttributeToolWindow.listLinkageWindowControl.Items.Clear(); if (Window == null) { return; } this.Width = Window.Width; this.Height = Window.Height; panelTop.Height = Window.TopPanelHeight; panelBottom.Height = Window.BottomPanelHeight; panelLeft.Width = Window.LeftPanelWidth; panelRight.Width = Window.RightPanelWidth; panelTop.Visible = Window.TopPanelVisible; panelBottom.Visible = Window.BottomPanelVisible; panelLeft.Visible = Window.LeftPanelVisible; panelRight.Visible = Window.RightPanelVisible; List <CBaseObject> lstWindowControl = Window.WindowControlMgr.GetList(); foreach (CBaseObject obj in lstWindowControl) { CWindowControl WindowControl = (CWindowControl)obj; Panel panel = null; if (WindowControl.Dock == (int)DockStyle.Top) { panel = panelTop; } else if (WindowControl.Dock == (int)DockStyle.Bottom) { panel = panelBottom; } else if (WindowControl.Dock == (int)DockStyle.Left) { panel = panelLeft; } else if (WindowControl.Dock == (int)DockStyle.Right) { panel = panelRight; } else { panel = panelFill; } //联动控件 ListViewItem itemLT = new ListViewItem(); itemLT.Text = WindowControl.Name; itemLT.Tag = WindowControl; m_AttributeToolWindow.listLinkageWindowControl.Items.Add(itemLT); // if (WindowControl.CtrlType == ControlType.NavBar) { UIToolbarEl toolbar = new UIToolbarEl(); toolbar.WindowControl = WindowControl; toolbar.Tag = WindowControl; panel.Controls.Add(toolbar); toolbar.Dock = DockStyle.Fill; toolbar.MouseClick += new MouseEventHandler(ctrl_MouseClick); } else if (WindowControl.CtrlType == ControlType.TableGrid) { if (WindowControl.TableInWindowControlMgr.GetList().Count == 0) { continue; } CTableInWindowControl TableInWindowControl = (CTableInWindowControl)WindowControl.TableInWindowControlMgr.GetFirstObj(); CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInWindowControl.FW_Table_id); if (table == null) { continue; } TableGridEl te = new TableGridEl(); te.WindowControl = WindowControl; te.Name = table.Code; te.TableInWindowControl = TableInWindowControl; te.ShowToolBar = TableInWindowControl.ShowToolBar; te.ShowTitleBar = TableInWindowControl.ShowTitleBar; te.CaptionText = WindowControl.Name; te.Tag = WindowControl; panel.Controls.Add(te); te.Dock = (DockStyle)WindowControl.Dock; te.BringToFront(); te.tbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); te.toolStrip.MouseClick += new MouseEventHandler(childCtrl_MouseClick); te.dataGridView.GotFocus += new EventHandler(ctrl_GotFocus); } else if (WindowControl.CtrlType == ControlType.TableTree) { TableTreeEl tt = new TableTreeEl(); tt.CaptionText = WindowControl.Name; tt.ShowTitleBar = WindowControl.ShowTitleBar; tt.WindowControl = WindowControl; tt.Tag = WindowControl; panel.Controls.Add(tt); tt.Dock = DockStyle.Fill; tt.BringToFront(); tt.tbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); tt.treeView.GotFocus += new EventHandler(ctrl_GotFocus); tt.treeView.ContextMenuStrip = contextMenuStrip1; } else if (WindowControl.CtrlType == ControlType.TableTab) { TableTabEl tab = new TableTabEl(); tab.WindowControl = WindowControl; tab.CaptionText = "TabCtrl"; tab.ShowTitleBar = WindowControl.ShowTitleBar; tab.Tag = WindowControl; panel.Controls.Add(tab); tab.Dock = DockStyle.Fill; tab.BringToFront(); tab.tabControl.MouseClick += new MouseEventHandler(childCtrl_MouseClick); } else if (WindowControl.CtrlType == ControlType.ComboBox) { UIComboBoxEl cb = new UIComboBoxEl(); cb.CaptionText = WindowControl.Name + ":"; cb.WindowControl = WindowControl; cb.ShowTitleBar = WindowControl.ShowTitleBar; cb.Tag = WindowControl; panel.Controls.Add(cb); cb.Dock = DockStyle.Top; cb.BringToFront(); cb.lbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); cb.comboBox.MouseClick += new MouseEventHandler(childCtrl_MouseClick); } else if (WindowControl.CtrlType == ControlType.ListBox) { UIListBoxEl listBox = new UIListBoxEl(); listBox.CaptionText = WindowControl.Name; listBox.WindowControl = WindowControl; listBox.ShowTitleBar = WindowControl.ShowTitleBar; listBox.Tag = WindowControl; panel.Controls.Add(listBox); listBox.Dock = DockStyle.Fill; listBox.BringToFront(); listBox.tbTitle.MouseClick += new MouseEventHandler(childCtrl_MouseClick); listBox.listBox.MouseClick += new MouseEventHandler(childCtrl_MouseClick); listBox.ContextMenuStrip = contextMenuStrip1; } } }