Exemplo n.º 1
0
        private void editValueToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (EditDialog ed = new EditDialog())
            {
                if (ed.ShowDialog() == DialogResult.OK)
                {
                    byte[] setValue;

                    switch (dataTypeComboBox.SelectedIndex)
                    {
                    case 0:
                        try
                        {
                            setValue = BitConverter.GetBytes(Convert.ToInt16(ed.Value));
                        }
                        catch
                        {
                            MessageBox.Show("Input value is too large or too small to be an Int16.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        break;

                    case 1:
                        try
                        {
                            setValue = BitConverter.GetBytes(Convert.ToInt32(ed.Value));
                        }
                        catch
                        {
                            MessageBox.Show("Input value is too large or too small to be an Int32.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        break;

                    case 2:
                        try
                        {
                            setValue = BitConverter.GetBytes(Convert.ToInt64(ed.Value));
                        }
                        catch
                        {
                            MessageBox.Show("Input value is too large or too small to be an Int64.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        break;

                    case 3:
                        try
                        {
                            setValue = BitConverter.GetBytes(Convert.ToSingle(ed.Value));
                        }
                        catch
                        {
                            MessageBox.Show("Input value is too large or too small to be a Float.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        break;

                    case 4:
                        try
                        {
                            setValue = BitConverter.GetBytes(Convert.ToDouble(ed.Value));
                        }
                        catch
                        {
                            MessageBox.Show("Input value is too large or too small to be an Double.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        break;

                    default:
                        MessageBox.Show("An unknown error occurred.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    foreach (ListViewItem l in resultsListView.SelectedItems)
                    {
                        SearchResult sr = ((SearchResult)l.Tag);

                        sr.Buffer = setValue;
                        _ms.writeMemory(sr.Address, setValue);
                        l.SubItems[1].Text = convertBuffer(setValue, dataTypeComboBox.SelectedIndex);
                    }
                }
            }
        }