Ejemplo n.º 1
0
 void clone_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Clicks == 1 && e.Button == MouseButtons.Left)
     {
         base.OnMouseDown(e);
         DoDragDrop(sender, DragDropEffects.All);
     }
     else if (e.Clicks > 1 && e.Button == MouseButtons.Left)
     {
         var control = sender as Control;
         var parent  = control.Parent as FlowLayoutPanel;
         parent.Controls.Remove(control);
     }
     LastElementChanged?.Invoke(this, null);
 }
Ejemplo n.º 2
0
        private void flowLayoutPanel1_DragDrop(object sender, DragEventArgs e)
        {
            var name    = e.Data.GetData(typeof(string)) as string;
            var control = this.Controls.Find(name, true).FirstOrDefault() as Button;

            if (control != null)
            {
                var panel = sender as FlowLayoutPanel;
                var clone = control.Clone();
                clone.Dock         = DockStyle.None;
                clone.AutoSize     = true;
                clone.AutoSizeMode = AutoSizeMode.GrowAndShrink;
                clone.AllowDrop    = true;
                clone.KeyDown     += Clone_KeyDown;
                clone.DragOver    += clone_DragOver;
                clone.MouseDown   += clone_MouseDown;
                clone.DragEnter   += clone_DragEnter;
                clone.BackColor    = Color.Lavender;
                if (clone.Text == "haswordofdict()")
                {
                    clone.ContextMenuStrip = new ContextMenuStrip();
                    clone.MouseUp         += operator_MouseUp;
                    foreach (var kvp in UserDictsContainer.UserDicts)
                    {
                        ToolStripMenuItem item = new ToolStripMenuItem(kvp.Key);
                        item.Click += MenuStripItem_Click;
                        clone.ContextMenuStrip.Items.Add(item);
                    }
                }
                else if (clone.Text == "hasusermentioned()" || clone.Text == "byuser()" || clone.Text == "num")
                {
                    clone.ContextMenuStrip = new ContextMenuStrip();
                    clone.MouseUp         += operator_MouseUp;
                    ToolStripTextBox item = new ToolStripTextBox();
                    clone.ContextMenuStrip.Items.Add(item);
                    item.TextBox.KeyDown += TextBox_KeyDown;
                }


                //cp.Location = this.flowLayoutPanel1.PointToClient(new Point(e.X, e.Y));
                ((FlowLayoutPanel)sender).Controls.Add(clone);
                LastElementChanged?.Invoke(this, null);
            }
        }