public void DrawUpDownButtons(Graphics g, RibbonUpDown b, Ribbon ribbon)
        {
            if (b.UpButtonPressed)
                DrawButtonPressed(g, b.UpButtonBounds, Corners.None, ribbon);
            else if (b.UpButtonSelected)
                DrawButtonSelected(g, b.UpButtonBounds, Corners.None, ribbon);
            else
                DrawButton(g, b.UpButtonBounds, Corners.None);

            if (b.DownButtonPressed)
                DrawButtonPressed(g, b.DownButtonBounds, Corners.None, ribbon);
            else if (b.DownButtonSelected)
                DrawButtonSelected(g, b.DownButtonBounds, Corners.None, ribbon);
            else
                DrawButton(g, b.DownButtonBounds, Corners.None);

            DrawArrowShaded(g, b.UpButtonBounds, RibbonArrowDirection.Up, true);
            DrawArrowShaded(g, b.DownButtonBounds, RibbonArrowDirection.Down, true);
        }
コード例 #2
0
        private RibbonUpDown AddUpDown(RibbonItemCollection collection, string label, string msoImageName,
				DocumentEventHandler getValue, string suffix, decimal increment, decimal min = 0, decimal max = 100, EventHandler changed = null)
        {
            RibbonUpDown updown = new RibbonUpDown();
            updown.Text = label;
            updown.LabelWidth = 50;
            AssignImage(updown, msoImageName);
            decimal currentValue = 0;
            updown.TextBoxText = currentValue + suffix;
            updown.AllowTextEdit = true;
            updown.Enabled = true;
            updown.UpButtonClicked += new MouseEventHandler(delegate(object sender, MouseEventArgs e) {
                currentValue = Math.Min(currentValue + increment, max);
                updown.TextBoxText = currentValue + suffix;
            });
            updown.DownButtonClicked += new MouseEventHandler(delegate(object sender, MouseEventArgs e) {
                currentValue = Math.Max(currentValue - increment, min);
                updown.TextBoxText = currentValue + suffix;
            });
            m_WordInstance.Application.WindowActivate += new Word.ApplicationEvents4_WindowActivateEventHandler(delegate(Word.Document doc, Word.Window win) {
                currentValue = Math.Min(max, Math.Max(min, getValue(doc)));
                updown.TextBoxText = currentValue + suffix;
            });
            // TODO: Uncommenting this causes serious issues. Figure out later if necessary.
            //updown.TextBoxTextChanged += changed;
            collection.Add(updown);
            return updown;
        }