回复 3楼csking的帖子
实现代码如下:
- private void Form1_Load(object sender, EventArgs e)
- {
- this.fpSpread1.EditModePermanent = true;
- this.fpSpread1.EditModeReplace = true;
- this.fpSpread1.ActiveSheet.ColumnCount = 3;
- this.fpSpread1.ActiveSheet.Columns[0].Locked = true;
- this.fpSpread1.ActiveSheet.ActiveColumnIndex = 1;
- InputMap im1 = fpSpread1.GetInputMap(InputMapMode.WhenFocused);
- ActionMap am = fpSpread1.GetActionMap();
- im1.Put(new Keystroke(Keys.Enter, Keys.None), "NewControlHomeAction");
- am.Put("NewControlHomeAction", new NewControlHomeAction());
- InputMap im2 = fpSpread1.GetInputMap(InputMapMode.WhenAncestorOfFocused);
- ActionMap am2 = fpSpread1.GetActionMap();
- im2.Put(new Keystroke(Keys.Enter, Keys.None), "NewControlHomeAction");
- am2.Put("NewControlHomeAction", new NewControlHomeAction());
- }
- }
- public class NewControlHomeAction : FarPoint.Win.Spread.Action
- {
- public override void PerformAction(object source)
- {
- if (source is SpreadView)
- {
- SpreadView spreadView = (SpreadView)source;
- int activeSheet=spreadView.ActiveSheetIndex;
- int activeRow = spreadView.Sheets[activeSheet].ActiveRowIndex;
- int activeCol = spreadView.Sheets[activeSheet].ActiveColumnIndex;
- if (activeCol==1)
- {
- spreadView.Sheets[activeSheet].SetActiveCell(activeRow, activeCol + 1);
- }
- else if (activeCol==2)
- {
- spreadView.Sheets[activeSheet].SetActiveCell(activeRow + 1, activeCol-1);
- }
- }
- }
- }
复制代码 |