public void AddTabPages(XtraUserControl uct, byte typeControl, string tenTab) { for (int i = 0; i < tabHienThi.TabPages.Count; i++) { if (tabHienThi.TabPages[i].Contains(uct)) { tabHienThi.SelectedTabPage = tabHienThi.TabPages[i]; return; } } XtraTabPage tab = new XtraTabPage(); typePages.Add(typeControl); tab.Name = uct.Name; tab.Size = tabHienThi.Size; tab.Text = tenTab; tabHienThi.TabPages.Add(tab); tabHienThi.SelectedTabPage = tab; uct.Dock = DockStyle.Fill; tab.Controls.Add(uct); uct.Focus(); }
private static void OpenMenuTap(MenuTabInfo info, bool finishDelivery = false) { if (info == null) { return; } foreach (XtraTabPage page in tabControl.TabPages) { MenuTabInfo curInfo = page.Tag as MenuTabInfo; if (curInfo == null) { continue; } if (curInfo.menuId == info.menuId) { tabControl.SelectedTabPage = page; if (curInfo.form != null && (curInfo.form.Name == "COM_Home" || curInfo.form.Name == "SOD_Order" || curInfo.form.Name == "SOD_Pickup" || curInfo.form.Name == "SOD_Delivery" || curInfo.form.Name == "SOD_Return")) { curInfo.form.Focus(); } XtraUserControl form = curInfo.form; if (form == null) { return; } MethodInfo mInfo = null; if (!String.IsNullOrEmpty(ord_no)) { PropertyInfo ordNo = form.GetType().GetProperty("ordNo"); ordNo.SetValue(form, ord_no); if (curInfo.form.Name == "SOD_Delivery" && finishDelivery) { bolConfirmMessage = true; mInfo = form.GetType().GetMethod("InitFromDoubleClickAndHandle", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); } else { mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); } ord_no = String.Empty; } else if (!(String.IsNullOrEmpty(pick_ord_yn) && String.IsNullOrEmpty(pick_yn) && String.IsNullOrEmpty(delv_ord_yn) && String.IsNullOrEmpty(delv_yn))) { PropertyInfo pickOrdYn = form.GetType().GetProperty("pickOrdYn"); pickOrdYn.SetValue(form, pick_ord_yn); PropertyInfo pickYn = form.GetType().GetProperty("pickYn"); pickYn.SetValue(form, pick_yn); PropertyInfo delvOrdYn = form.GetType().GetProperty("delvOrdYn"); delvOrdYn.SetValue(form, delv_ord_yn); PropertyInfo delvYn = form.GetType().GetProperty("delvYn"); delvYn.SetValue(form, delv_yn); mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); } else { mInfo = form.GetType().GetMethod("Search", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); } if (mInfo != null) { mInfo.Invoke(form, null); } return; } } if (!info.canOpen) { return; } try { XtraTabPage page = new XtraTabPage(); page.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); page.Text = info.menuText[AccessDB.GetConfig("lang")]; page.Tag = info; page.Font = new System.Drawing.Font("맑은 고딕", 9F); page.Appearance.Header.Font = new System.Drawing.Font("맑은 고딕", 9F); page.Appearance.HeaderActive.Font = new System.Drawing.Font(page.Font.FontFamily.Name, page.Font.Size, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); page.Appearance.HeaderDisabled.Font = new System.Drawing.Font("맑은 고딕", 9F); page.Appearance.HeaderHotTracked.Font = new System.Drawing.Font("맑은 고딕", 9F); page.Appearance.PageClient.Font = new System.Drawing.Font("맑은 고딕", 9F); page.ShowCloseButton = info.haveClose ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False; tabControl.TabPages.Add(page); tabControl.SelectedTabPage = page; string dllPath = Application.StartupPath + @"\" + info.dllName + @".dll"; Type type = null; try { Assembly asm = Assembly.LoadFrom(dllPath); type = asm.GetType(info.dllName + "." + info.className); } catch (Exception er) { type = null; } if (type == null) { return; } XtraUserControl form = null; bolConfirmMessage = true; if (!String.IsNullOrEmpty(ord_no)) { form = Activator.CreateInstance(type, ord_no) as XtraUserControl; ord_no = String.Empty; } else if (!(String.IsNullOrEmpty(pick_ord_yn) && String.IsNullOrEmpty(pick_yn) && String.IsNullOrEmpty(delv_ord_yn) && String.IsNullOrEmpty(delv_yn))) { form = Activator.CreateInstance(type, pick_ord_yn, pick_yn, delv_ord_yn, delv_yn) as XtraUserControl; } else { form = Activator.CreateInstance(type) as XtraUserControl; } if (form == null) { return; } info.form = form; form.Tag = info; form.Visible = false; page.Controls.Add(form); form.Dock = DockStyle.Fill; form.Visible = true; if (form.Name == "COM_Home" || form.Name == "SOD_Order" || form.Name == "SOD_Pickup" || form.Name == "SOD_Delivery" || form.Name == "SOD_Return") { form.Focus(); } //MethodInfo mInfo = null; //if (!String.IsNullOrEmpty(ord_no)) //{ // PropertyInfo ordNo = form.GetType().GetProperty("ordNo"); // ordNo.SetValue(form, ord_no); // // if (form.Name == "SOD_Delivery" && finishDelivery) mInfo = form.GetType().GetMethod("InitFromDoubleClickAndHandle", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); // else mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); // ord_no = String.Empty; // //} //else if (!(String.IsNullOrEmpty(pick_ord_yn) && String.IsNullOrEmpty(pick_yn) // && String.IsNullOrEmpty(delv_ord_yn) && String.IsNullOrEmpty(delv_yn))) //{ // PropertyInfo pickOrdYn = form.GetType().GetProperty("pickOrdYn"); // pickOrdYn.SetValue(form, pick_ord_yn); // PropertyInfo pickYn = form.GetType().GetProperty("pickYn"); // pickYn.SetValue(form, pick_yn); // PropertyInfo delvOrdYn = form.GetType().GetProperty("delvOrdYn"); // delvOrdYn.SetValue(form, delv_ord_yn); // PropertyInfo delvYn = form.GetType().GetProperty("delvYn"); // delvYn.SetValue(form, delv_yn); // // mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); // //} //else //{ // mInfo = form.GetType().GetMethod("Search", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null); // //} // //if (mInfo != null) //{ // mInfo.Invoke(form, null); //} } catch (Exception err) { } }
private void ModuleSelect(Type t, NavBarLinkEventArgs e) { Cursor.Current = Cursors.WaitCursor; try { if (t == null) { return; } object ui = Activator.CreateInstance(t); if (ui == null) { return; } ChucNang cn = e.Link.Item.Tag as ChucNang; switch (t.Name) { case "ucTuDienDuLieu": ((Modules.ucTuDienDuLieu)ui).ChucNang = cn; break; } switch (t.BaseType.Name) { case "XtraForm": XtraForm xForm = (XtraForm)ui; foreach (Form fr in frmMain.Instance.xtraTabbedMdiManager.MdiParent.MdiChildren) { if (fr.Name == string.Format("{0}{1}", t.Name, cn.ModuleID)) { fr.Focus(); return; } } xForm.Name += cn.ModuleID; InvokeMethod(t, xForm, e); if (!string.IsNullOrEmpty(cn.LoaiChucNang.MaLoai)) { if (cn.LoaiChucNang.MaLoai == "Popup") { xForm.Tag = cn; xForm.Text = e.Link.Caption; xForm.ShowDialog(); } else { xForm.MdiParent = frmMain.Instance; xForm.Tag = cn; xForm.Text = e.Link.Caption; xForm.Show(); xForm.Focus(); } } else { xForm.MdiParent = frmMain.Instance; xForm.Tag = cn; xForm.Text = e.Link.Caption; xForm.Show(); xForm.Focus(); } break; case "Form": Form form = (Form)ui; foreach (Form fr in frmMain.Instance.xtraTabbedMdiManager.MdiParent.MdiChildren) { if (fr.Name == string.Format("{0}{1}", t.Name, cn.ModuleID)) { fr.Focus(); return; } } form.Name += cn.ModuleID; InvokeMethod(t, form, e); if (!string.IsNullOrEmpty(cn.LoaiChucNang.MaLoai)) { if (cn.LoaiChucNang.MaLoai == "Popup") { form.Tag = cn; form.Text = e.Link.Caption; form.ShowDialog(); } else { form.MdiParent = frmMain.Instance; form.Tag = cn; form.Text = e.Link.Caption; form.Show(); form.Focus(); } } else { form.MdiParent = frmMain.Instance; form.Tag = cn; form.Text = e.Link.Caption; form.Show(); form.Focus(); } break; case "XtraUserControl": if (AppContainer != null) { if (!AppContainer.Controls.ContainsKey(string.Format("{0}{1}", t.Name, cn.ModuleID))) { XtraUserControl xc = (XtraUserControl)ui; ////Phan quyen tung control //bool result = false; //DataServices.TaiKhoan.KiemTraPhanQuyenControl(UserInfo.UserID, xc.Name, ref result); //if (result) //{ // MethodInfo mi = FindMethod(t, "KhongDuocPhepCapNhat", result.ToString()); // if (mi != null) // mi.Invoke(xc, new string[] { result.ToString() }); //} if (!AppContainer.Controls.Contains(xc)) { xc.Name = string.Format("{0}{1}", t.Name, cn.ModuleID); xc.Dock = DockStyle.Fill; xc.Tag = cn; AppContainer.Text = e.Link.Caption; InvokeMethod(t, xc, e); AppContainer.Controls.Add(xc); xc.BringToFront(); xc.Focus(); } } else { AppContainer.Text = e.Link.Caption; AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].BringToFront(); AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].Focus(); } } break; case "UserControl": Cursor.Current = Cursors.WaitCursor; if (AppContainer != null) { if (!AppContainer.Controls.ContainsKey(string.Format("{0}{1}", t.Name, cn.ModuleID))) { UserControl uc = Activator.CreateInstance(t) as UserControl; if (uc != null) { if (!AppContainer.Controls.Contains(uc)) { uc.Name = string.Format("{0}{1}", t.Name, cn.ModuleID); uc.Dock = DockStyle.Fill; uc.Tag = cn; AppContainer.Text = e.Link.Caption; InvokeMethod(t, uc, e); AppContainer.Controls.Add(uc); uc.BringToFront(); uc.Focus(); } } } else { AppContainer.Text = e.Link.Caption; AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].BringToFront(); AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].Focus(); } } Cursor.Current = Cursors.Default; break; case "Object": Object obj = Activator.CreateInstance(t) as Object; if (obj != null) { InvokeMethod(t, obj, e); } break; default: break; } } catch (Exception ex) { XtraMessageBox.Show(ex.Message + "\n" + ex.StackTrace, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } Cursor.Current = Cursors.Default; }