示例#1
0
        public void UpdateColumns()
        {
            foreach (DataGridViewSettingsValueColumn column in connectionToColumnLookup.Values)
            {
                sendRatesGrid.Columns.Remove(column);
            }

            connectionToColumnLookup.Clear();

            sendRatesGrid.SuspendLayout();

            foreach (ConnectionRow connection in ActiveConnections)
            {
                StringBuilder sb = new StringBuilder();

                sb.AppendLine(connection.Connection.Settings.DeviceInformation.DeviceName.Value);
                sb.Append(connection.Connection.Settings.DeviceInformation.SerialNumber.Value);

                DataGridViewSettingsValueColumn column = new DataGridViewSettingsValueColumn
                {
                    DefaultCellStyle = dataGridViewCellStyle,

                    HeaderText   = sb.ToString(),
                    Tag          = connection,
                    AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells,
                    Width        = 80,
                    MinimumWidth = 80,
                    ValueType    = typeof(float),
                };

                sendRatesGrid.Columns.Add(column);

                connectionToColumnLookup.Add(connection, column);
            }

            sendRatesGrid.ResumeLayout(true);

            CopyValuesToGrid();

            readButton.Enabled  = ActiveConnections.Count > 0;
            writeButton.Enabled = ActiveConnections.Count > 0;
        }
示例#2
0
        private void sendRatesGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewRow row = sendRatesGrid.Rows[e.RowIndex];

            DataGridViewSettingsValueColumn column = sendRatesGrid.Columns[e.ColumnIndex] as DataGridViewSettingsValueColumn;

            object value = row.Cells[e.ColumnIndex].Value;

            foreach (DataGridViewCell cell in selectedCells)
            {
                ISettingValue settingValue = (ISettingValue)cell.Tag;

                if (settingValue == null)
                {
                    continue;
                }

                cell.Value = value;

                float floatValue = 0f;

                if (value == null || float.TryParse(value.ToString(), out floatValue) == false)
                {
                    floatValue = (float)settingValue.GetValue();
                }

                float settingRemoteValue = (float)settingValue.GetRemoteValue();

                if (Math.Abs(floatValue - settingRemoteValue) > float.Epsilon)
                {
                    cell.Style.ApplyStyle(dataGridViewCellStyleBold);
                }
                else
                {
                    cell.Style.ApplyStyle(dataGridViewCellStyle);
                }
            }
        }