private void gridView1_KeyDown(object sender, KeyEventArgs e)
{
DevExpress.XtraGrid.Views.Base.GridCell[] cellcollection = gridView1.GetSelectedCells();
if (cellcollection.Length > 0)
{
if (e.KeyCode == Keys.Add)
{
e.Handled = true;
e.SuppressKeyPress = true;
foreach (DevExpress.XtraGrid.Views.Base.GridCell gc in cellcollection)
{
//if (IsHexMode)
if(m_viewtype == ViewType.Hexadecimal)
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString(), 16);
value++;
if (value > m_MaxValueInTable) m_MaxValueInTable = value;
if (m_issixteenbit)
{
if (value > 0xFFFF) value = 0xFFFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X4"));
}
else
{
if (value > 0xFF) value = 0xFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X2"));
}
}
else
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString());
value++;
if (value > m_MaxValueInTable) m_MaxValueInTable = value;
if (m_issixteenbit)
{
if (value > 0xFFFF) value = 0xFFFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
else
{
if (value > 0xFF) value = 0xFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
}
}
}
else if (e.KeyCode == Keys.Subtract)
{
e.Handled = true;
e.SuppressKeyPress = true;
foreach (DevExpress.XtraGrid.Views.Base.GridCell gc in cellcollection)
{
//if (IsHexMode)
if (m_viewtype == ViewType.Hexadecimal)
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString(), 16);
value--;
if (!m_issixteenbit)
{
if (value < 0) value = 0;
}
if (m_issixteenbit)
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X4"));
}
else
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X2"));
}
}
else
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString());
value--;
if (!m_issixteenbit)
{
if (value < 0) value = 0;
}
if (m_issixteenbit)
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
else
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
}
}
}
else if (e.KeyCode == Keys.PageUp)
{
e.Handled = true;
e.SuppressKeyPress = true;
foreach (DevExpress.XtraGrid.Views.Base.GridCell gc in cellcollection)
{
//if (IsHexMode)
if (m_viewtype == ViewType.Hexadecimal)
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString(), 16);
value += 0x10;
if (value > m_MaxValueInTable) m_MaxValueInTable = value;
if (m_issixteenbit)
{
if (value > 0xFFFF) value = 0xFFFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X4"));
}
else
{
if (value > 0xFF) value = 0xFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X2"));
}
}
else
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString());
value+=10;
if (value > m_MaxValueInTable) m_MaxValueInTable = value;
if (m_issixteenbit)
{
if (value > 0xFFFF) value = 0xFFFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
else
{
if (value > 0xFF) value = 0xFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
}
}
}
else if (e.KeyCode == Keys.PageDown)
{
e.Handled = true;
e.SuppressKeyPress = true;
foreach (DevExpress.XtraGrid.Views.Base.GridCell gc in cellcollection)
{
//if (IsHexMode)
if (m_viewtype == ViewType.Hexadecimal)
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString(), 16);
value-=0x10;
if (!m_issixteenbit)
{
if (value < 0) value = 0;
}
if (m_issixteenbit)
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X4"));
}
else
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X2"));
}
}
else
{
int value = Convert.ToInt32(gridView1.GetRowCellValue(gc.RowHandle, gc.Column).ToString());
value-=10;
if (!m_issixteenbit)
{
if (value < 0) value = 0;
}
if (m_issixteenbit)
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
else
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
}
}
}
else if (e.KeyCode == Keys.Home)
{
e.Handled = true;
e.SuppressKeyPress = true;
foreach (DevExpress.XtraGrid.Views.Base.GridCell gc in cellcollection)
{
//if (IsHexMode)
if (m_viewtype == ViewType.Hexadecimal)
{
int value = 0xFFFF;
if (m_issixteenbit)
{
value = 0xFFFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X4"));
}
else
{
value = 0xFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X2"));
}
if (value > m_MaxValueInTable) m_MaxValueInTable = value;
}
else
{
int value = 0xFFFF;
if (m_issixteenbit)
{
value = 0xFFFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
else
{
value = 0xFF;
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
if (value > m_MaxValueInTable) m_MaxValueInTable = value;
}
}
}
else if (e.KeyCode == Keys.End)
{
e.Handled = true;
e.SuppressKeyPress = true;
foreach (DevExpress.XtraGrid.Views.Base.GridCell gc in cellcollection)
{
//if (IsHexMode)
if (m_viewtype == ViewType.Hexadecimal)
{
int value = 0;
if (m_issixteenbit)
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X4"));
}
else
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString("X2"));
}
}
else
{
int value = 0;
if (m_issixteenbit)
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
else
{
gridView1.SetRowCellValue(gc.RowHandle, gc.Column, value.ToString());
}
}
}
}
}
}