示例#1
0
        public FloatLayerBase CreateLayer(Type type, out bool isShow)
        {
            //考虑到初始化体验爽滑,不用反射
            FloatLayerBase layer = null;

            if (type == typeof(InputPopDemo))
            {
                layer = new InputPopDemo();
            }
            else if (type == typeof(CalcPopDemo))
            {
                layer = new CalcPopDemo();
            }
            else if (type == typeof(TipPopDemo))
            {
                layer = new TipPopDemo();
            }

            LayerFormOption opts = LayerOption;

            isShow                  = opts.IsShow;
            layer.BorderType        = opts.BorderType;
            layer.Border3DStyle     = opts.Border3DStyle;
            layer.BorderSingleStyle = opts.BorderSingleStyle;
            layer.BorderColor       = opts.BorderColor;
            return(layer);
        }
示例#2
0
        public void PopupLayer(Type type, object sender)
        {
            Control       c    = sender as Control;
            ToolStripItem item = sender as ToolStripItem;

            bool           isShow;
            FloatLayerBase p = CreateLayer(type, out isShow);

            if (isShow)
            {
                if (c != null)
                {
                    p.Show(c);
                }
                else
                {
                    p.Show(item);
                }
            }
            else
            {
                var result = c != null?p.ShowDialog(c) : p.ShowDialog(item);

                txbResult.AppendText(result + "\r\n");
            }
        }
示例#3
0
        private void txbPopupFromTextBox_Click(object sender, EventArgs e)
        {
            using (FloatLayerBase p = CreateLayer(typeof(CalcPopDemo)))
            {
                if (p.ShowDialog(txbPopupFromTextBox) != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                txbPopupFromTextBox.Text = ((CalcPopDemo)p).Result.ToString();
            }
        }
示例#4
0
        private void textBox1_Click(object sender, EventArgs e)
        {
            using (FloatLayerBase p = OwnerOrParent.CreateLayer(typeof(CalcPopDemo)))
            {
                if (p.ShowDialog(textBox1) != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                textBox1.Text = ((CalcPopDemo)p).Result.ToString();
            }
        }
示例#5
0
        private void label6_MouseHover(object sender, EventArgs e)
        {
            if (label6.Tag != null)
            {
                return;
            }

            FloatLayerBase p = CreateLayer(typeof(TipPopDemo));

            label6.Tag        = p;
            p.VisibleChanged += (a, b) => { if (!((a as Control).Visible))
                                            {
                                                label6.Tag = null;
                                            }
            };
            p.Show(label6, 0, label6.Height + 3);
        }