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);
		}
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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();
	}
Exemple #5
0
        // 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();
        }