public ComboBox() { textEntry = new TextBox(); BackColor = SystemColors.Window; BorderStyleInternal = BorderStyle.Fixed3D; dropDownStyle = ComboBoxStyle.DropDown; integralHeight = true; maxDropDownItems = 8; dropDownWidth = Width; updateCount = 0; itemHeight = FontHeight + 2; selectedIndex = -1; SetStyle(ControlStyles.ResizeRedraw, true); textEntry.BorderStyle = BorderStyle.None; textEntry.TabStop = false; textEntry.LostFocus += new EventHandler(textentry_LostFocus); textEntry.GotFocus += new EventHandler(textentry_GotFocus); this.Controls.Add(textEntry); popup = new PopupControl(); popup.BorderStyleInternal = BorderStyle.FixedSingle; popup.BackColor = SystemColors.Window; popup.PopDown += new EventHandler(popup_PopDown); popup.Paint +=new PaintEventHandler(popup_Paint); popup.MouseDown+=new MouseEventHandler(popup_MouseDown); popup.MouseMove+=new MouseEventHandler(popup_MouseMove); popup.MouseUp+=new MouseEventHandler(popup_MouseUp); scrollbar = new VScrollBar(); scrollbar.Dock = DockStyle.Right; scrollbar.BackColor = SystemColors.Control; scrollbar.ValueChanged+=new EventHandler(scrollbar_ValueChanged); popup.Controls.Add(scrollbar); }
public ComboBox() { textEntry = new TextBox(); BackColor = SystemColors.Window; BorderStyleInternal = BorderStyle.Fixed3D; dropDownStyle = ComboBoxStyle.DropDown; integralHeight = true; maxDropDownItems = 8; dropDownWidth = Width; updateCount = 0; itemHeight = FontHeight + 2; selectedIndex = -1; SetStyle(ControlStyles.ResizeRedraw, true); textEntry.BorderStyle = BorderStyle.None; textEntry.TabStop = false; textEntry.LostFocus += new EventHandler(textentry_LostFocus); textEntry.GotFocus += new EventHandler(textentry_GotFocus); this.Controls.Add(textEntry); popup = new PopupControl(); popup.BorderStyleInternal = BorderStyle.FixedSingle; popup.BackColor = SystemColors.Window; popup.PopDown += new EventHandler(popup_PopDown); popup.Paint += new PaintEventHandler(popup_Paint); popup.MouseDown += new MouseEventHandler(popup_MouseDown); popup.MouseMove += new MouseEventHandler(popup_MouseMove); popup.MouseUp += new MouseEventHandler(popup_MouseUp); scrollbar = new VScrollBar(); scrollbar.Dock = DockStyle.Right; scrollbar.BackColor = SystemColors.Control; scrollbar.ValueChanged += new EventHandler(scrollbar_ValueChanged); popup.Controls.Add(scrollbar); }
/// <summary> /// Constructor /// </summary> public FilterPopup(GridPanel panel) { _Panel = panel; _PopupControl = new PopupControl(); _PopupControl.Opened += PopupControlOpened; _PopupControl.Closed += PopupControlClosed; _PopupControl.UserResize += PopupControlUserResize; _PopupControl.PreRenderGripBar += PopupControlPreRenderGripBar; _PopupControl.PostRenderGripBar += PopupControlPostRenderGripBar; }
// Show this context menu at the specified control-relative co-ordinates. public void Show(Control control, Point pos) { associatedControl = control; currentMouseItem = -1; // Not over anything popupControl = new PopupControl(); // We need the following events from popupControl. popupControl.MouseMove +=new MouseEventHandler(OnMouseMove); popupControl.MouseDown +=new MouseEventHandler(OnMouseDown); popupControl.Paint +=new PaintEventHandler(popupControl_Paint); OnPopup(EventArgs.Empty); // Figure out where we need to put the popup and its size. Point pt = control.PointToScreen(new Point(0,0)); Rectangle rcWork = Screen.PrimaryScreen.WorkingArea; using (Graphics g = popupControl.CreateGraphics()) { Size size = MeasureItemBounds(g); size.Height -= 1; //align it to control if (pt.X < rcWork.Left) { pt.X += size.Width; } if (pt.X > rcWork.Right - size.Width) { pt.X -= size.Width; } if (pt.Y < rcWork.Top) { pt.Y += size.Height; } if (pt.Y > rcWork.Bottom - size.Height) { pt.Y -= size.Height; } //add offset pos pt.X += pos.X; pt.Y += pos.Y; //ensure that it is completely visible on screen if (pt.X < rcWork.Left) { pt.X = rcWork.Left; } if (pt.X > rcWork.Right - size.Width) { pt.X = rcWork.Right - size.Width; } if (pt.Y < rcWork.Top) { pt.Y = rcWork.Top; } if (pt.Y > rcWork.Bottom + size.Height) { pt.Y = rcWork.Bottom - size.Height; } popupControl.Bounds = new Rectangle( pt, size); } popupControl.Show(); }
// Show this context menu at the specified control-relative co-ordinates. public void Show(Control control, Point pos) { associatedControl = control; currentMouseItem = -1; // Not over anything popupControl = new PopupControl(); // We need the following events from popupControl. popupControl.MouseMove += new MouseEventHandler(OnMouseMove); popupControl.MouseDown += new MouseEventHandler(OnMouseDown); popupControl.Paint += new PaintEventHandler(popupControl_Paint); OnPopup(EventArgs.Empty); // Figure out where we need to put the popup and its size. Point pt = control.PointToScreen(new Point(0, 0)); Rectangle rcWork = Screen.PrimaryScreen.WorkingArea; using (Graphics g = popupControl.CreateGraphics()) { Size size = MeasureItemBounds(g); size.Height -= 1; //align it to control if (pt.X < rcWork.Left) { pt.X += size.Width; } if (pt.X > rcWork.Right - size.Width) { pt.X -= size.Width; } if (pt.Y < rcWork.Top) { pt.Y += size.Height; } if (pt.Y > rcWork.Bottom - size.Height) { pt.Y -= size.Height; } //add offset pos pt.X += pos.X; pt.Y += pos.Y; //ensure that it is completely visible on screen if (pt.X < rcWork.Left) { pt.X = rcWork.Left; } if (pt.X > rcWork.Right - size.Width) { pt.X = rcWork.Right - size.Width; } if (pt.Y < rcWork.Top) { pt.Y = rcWork.Top; } if (pt.Y > rcWork.Bottom + size.Height) { pt.Y = rcWork.Bottom - size.Height; } popupControl.Bounds = new Rectangle(pt, size); } popupControl.Show(); }