//----------------------------------------------------------------------- private void addRow(messageSendParams p) { grid.AllowUserToAddRows = true; // cb, id, dlc, data, period, count object[] values = { true, // cb p.Message.Id.GetIdAsString(), // id p.MessageType == canMessageType.data ? p.Message.Id.GetDlcAsString() : " ", // dlc p.MessageType == canMessageType.data ? p.Message.GetDataString(" ") : "RTR", // data p.TimerPeriod.ToString() + " ms", // period p.Modifiers.enabled(), // mods 0, // count //p.MessageCount }; grid.Rows.Add(values); grid.AllowUserToAddRows = false; // grid.Rows[grid.Rows.GetLastRow(DataGridViewElementStates.None)].Cells[m_colTrigger.Index].Value = interval.ToString() + " ms"; m_colData.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; // foreach row expect the 1st one (checbox) switch readonly on using (var r = grid.Rows[grid.Rows.GetLastRow(DataGridViewElementStates.None)]) foreach (DataGridViewColumn col in grid.Columns) { r.Cells[col.Index].ReadOnly = m_colEnable != col; } }
// constructor #region Constructors public canSendWorker(canSender sender, messageSendParams p) { this.sender = sender; Params = p; // create the timer timer = new System.Windows.Forms.Timer(); timer.Tick += new EventHandler(callback); timer.Enabled = false; totalSent = 0; remainSendToCheckStop = 0; }
public messageSendParams getParams() { messageSendParams param = new messageSendParams(); // message param.Message = getMessage(); param.MessageCount = getMessageCount(); // timer param.TimerPeriod = getInterval(); // triggers param.TriggerStart = getStartTrigger(); param.TriggerStop = getStopTrigger(); param.PostCondition = getParamAfterStop(); param.MessageType = geMessageType(); param.Modifiers = getModifiers(); return(param); }
private void onContextMenuClicked(object sender, ToolStripItemClickedEventArgs e) { string clicked = e.ClickedItem.Text.ToLower(); if ("new message" == clicked) { FrmAddEditMessage f = new FrmAddEditMessage(); if (DialogResult.OK == f.ShowDialog()) { // get params messageSendParams p = f.getParams(); addRow(p); // create an item canSendWorker item = new canSendWorker(this.sender, p); items.Add(item); item.row = grid.Rows[grid.Rows.Count - 1]; item.start(); } } if ("edit selected" == clicked) { } if ("delete selected" == clicked) { for (int i = grid.Rows.Count - 1; i >= 0; i--) { var row = grid.Rows[i]; if (row.Selected) { var item = getMessageWithRow(row); item.stop(); grid.Rows.Remove(row); } } } if ("enable all" == clicked) { startAll(); } if ("disable all" == clicked) { stopAll(); } if ("delete all" == clicked) { foreach (canSendWorker item in items) { item.stop(); } items.Clear(); grid.Rows.Clear(); } if ("copy selected" == clicked) { } }