private void AddressList_KeyDown(object sender, KeyEventArgs e)
        {
            if (AddressList_KeyDownWithCtrl(sender, e))
            {
                return;
            }

            int index = this.AddressList.SelectedIndex;

            if (index < 0 || index >= this.ChangeDataList.Count)
            {
                return;
            }
            ChangeDataSt code = this.ChangeDataList[index];

            byte[] bin;
            if (e.KeyCode == Keys.D1 || e.KeyCode == Keys.NumPad1)
            {
                bin = U.subrange(this.AData, code.addr, code.addr + code.length);
                code.SetMargeMethod(MargeMethod.A);
            }
            else if (e.KeyCode == Keys.D2 || e.KeyCode == Keys.NumPad2)
            {
                bin = U.subrange(this.BData, code.addr, code.addr + code.length);
                code.SetMargeMethod(MargeMethod.B);
            }
            else if (e.KeyCode == Keys.D3 || e.KeyCode == Keys.NumPad3)
            {
                bin = U.subrange(this.CData, code.addr, code.addr + code.length);
                code.SetMargeMethod(MargeMethod.C);
            }
            else if (e.KeyCode == Keys.D0 || e.KeyCode == Keys.NumPad0)
            {
                bin = U.subrange(this.CData, code.addr, code.addr + code.length);
                code.SetMargeMethod(MargeMethod.NONE);
            }
            else if (e.KeyCode == Keys.M)
            {
                code.ToggleMark();
                this.AddressList.InvalidateLine();
                return;
            }
            else if (e.KeyCode == Keys.L)
            {
                MarkListButton_Click(sender, e);
                return;
            }
            else
            {
                return;
            }


            Program.Undo.Push("marge " + U.To0xHexString(code.addr), code.addr, (uint)bin.Length);
            if (Program.ROM.Data.Length < code.addr + bin.Length)
            {
                Program.ROM.write_resize_data(code.addr + (uint)bin.Length);
            }
            Program.ROM.write_range(code.addr, bin);
            InputFormRef.ShowWriteNotifyAnimation(this, code.addr);

            if (!e.Shift)
            {//面倒なので操作を逆にする. Shiftが押されていなければ、次へ移動する.
                if (this.AddressList.SelectedIndex + 1 < this.AddressList.Items.Count)
                {
                    this.AddressList.SelectedIndex++;
                }
                else
                {
                    this.AddressList.SelectedIndex = this.AddressList.Items.Count - 1;
                    this.AddressList.InvalidateLine();
                }
            }
            else
            {
                this.AddressList.InvalidateLine();
            }
            UpdateTitle();
        }