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); }
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"); } }
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(); } }
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(); } }
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); }