private void btnRandomDelay_Click(object sender, EventArgs e) { GenericInputDialog gid = new GenericInputDialog(); gid.Initialize(new Delay(1.00, 0.00)); if (gid.ShowDialog() == DialogResult.OK) { double baseValue = (double)gid.Results["base"]; double deviation = (double)gid.Results["dev"]; lstActions.Items.Add(new Delay(baseValue, deviation)); } }
// context menu private void toolStripMenuItemEdit_Click(object sender, EventArgs e) { if (lstActions.SelectedItems.Count <= 0) return; object[] selectedObjects = new object[lstActions.SelectedItems.Count]; lstActions.SelectedItems.CopyTo(selectedObjects, 0); GenericInputDialog gid = new GenericInputDialog(); for (int i = 0; i < selectedObjects.Length; i++) { object o = selectedObjects[i]; Type oType = o.GetType(); if (!typeof(Command).IsAssignableFrom(oType)) continue; Command c = (Command)o; //dynamic dynamicCommand = Convert.ChangeType(o, oType); c = gid.Edit(c); int realCommandIndex = lstActions.Items.IndexOf(lstActions.SelectedItems[i]); lstActions.Items[realCommandIndex] = c; } }