DataLoad fix for tables and Enter Key handling logic

This commit is contained in:
John Jenko 2011-06-16 19:33:50 +00:00
parent dd0fef1712
commit 87d3a95327

View File

@ -21,6 +21,8 @@ namespace Volian.Controls.Library
public delegate void VlnFlexGridEvent(object sender, EventArgs args);
public delegate void VlnFlexGridCursorMovementEvent(object sender, VlnFlexGridCursorMovementEventArgs args);
public delegate string VlnFlexGridPasteEvent(object sender, VlnFlexGridPasteEventArgs args);
public delegate void VlnFlexGridkeyEvent(object sender, KeyEventArgs args);
public partial class VlnFlexGrid : C1.Win.C1FlexGrid.C1FlexGrid
{
private C1SpellChecker _SpellChecker;
@ -194,6 +196,12 @@ namespace Volian.Controls.Library
if (AdjustPastedText != null) return AdjustPastedText(sender, args);
return args.Text;
}
public event VlnFlexGridkeyEvent EnterKeyPressed;
public void OnEnterKeyPressed(object sender, KeyEventArgs args)
{
if (EnterKeyPressed != null) EnterKeyPressed(sender, args);
}
private TableCellEditor _tableCellEditor;
public TableCellEditor TableCellEditor
@ -779,6 +787,16 @@ namespace Volian.Controls.Library
_tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlDown : E_ArrowKeys.Down);
e.Handled = true;
break;
case Keys.Enter:
//if (e.Shift) return;
//Select(Rows.Count - 1, 0);
//_tableCellEditor.StepRTB_ArrowPressed(E_ArrowKeys.Down);
//e.Handled = true;
if (!e.Control && !e.Shift && !e.Alt)
{
OnEnterKeyPressed(sender, e);
}
break;
}
}
@ -824,10 +842,10 @@ namespace Volian.Controls.Library
}
// it does, so draw background
e.DrawCell(DrawCellFlags.Background);
// Please add a comment if this value needs to be changed
_rtf.Rtf = rtfText;
if (rtfText.StartsWith(@"{\rtf"))
{
// Please add a comment if this value needs to be changed
_rtf.Rtf = rtfText;
// draw the RTF text
if (e.Bounds.Width > 0 && e.Bounds.Height > 0)
{
@ -874,6 +892,9 @@ namespace Volian.Controls.Library
_rtf.Render(e.Graphics, new Rectangle(e.Bounds.X + 1, e.Bounds.Y + hAdjust, e.Bounds.Width - 3, e.Bounds.Height));
}
}
else
_rtf.Text = rtfText;
// spell check unless (we're just measuring)
if (!e.Measuring)
{
@ -3303,6 +3324,17 @@ namespace Volian.Controls.Library
idx = -1;
}
} while (idx != -1);
if (idxst < txtbuff.Length)
{
colPos = idxst - strow;
if (!dicCols.ContainsKey(colPos))
dicCols.Add(colPos, curCol);
else if (curCol > dicCols[colPos])
{
dicCols.Remove(colPos);
dicCols.Add(colPos, curCol);
}
}
maxRow = curRow; // +1;
curRow = 0;
curCol = 0;