예제 #1
0
        /// <summary>
        /// Deals with new menu
        /// </summary>
        private void newToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Tell the application context to run the form on the same
            // thread as the other forms. Then prompt user to find file to save.
            SheetForm temp = new SheetForm();

            SheetFormAppContext.getAppContext().RunForm(temp);
            temp.control.newSpreadsheet();
        }
예제 #2
0
        /// <summary>
        /// Handles when user pushed an arrow key, and then moves a cell over accordingly OR
        /// Handles when user does ctrl functions
        /// </summary>
        private void Form_KeyDown(object sender, KeyEventArgs e)
        {
            //Ctrl+key
            if (e.Control)
            {
                switch (e.KeyCode)
                {
                //+s to save
                case (Keys.S):
                    control.save();
                    break;

                //+n for new sheet
                case (Keys.N):
                    SheetForm temp = new SheetForm();
                    SheetFormAppContext.getAppContext().RunForm(temp);
                    temp.control.newSpreadsheet();
                    break;

                //+o for open sheet
                case (Keys.O):
                    control.load(spreadsheetPanel);
                    break;

                //+w to close
                case (Keys.W):
                    Close();
                    break;

                //Return with default so final bit doesn't get called
                default:
                    return;
                }
                //Prevents windows ding
                e.Handled          = true;
                e.SuppressKeyPress = true;
            }

            //Change selection based on which key is pushed
            spreadsheetPanel.GetSelection(out int x, out int y);
            switch (e.KeyData)
            {
            case (Keys.Up):
                spreadsheetPanel.SetSelection(x, y - 1);
                control.cellSelect(spreadsheetPanel);
                break;

            case (Keys.Down):
                spreadsheetPanel.SetSelection(x, y + 1);
                control.cellSelect(spreadsheetPanel);
                break;

            case (Keys.Left):
                spreadsheetPanel.SetSelection(x - 1, y);
                control.cellSelect(spreadsheetPanel);
                break;

            case (Keys.Right):
                spreadsheetPanel.SetSelection(x + 1, y);
                control.cellSelect(spreadsheetPanel);
                break;

            default: break;
            }
        }
예제 #3
0
 /// <summary>
 /// Created controller that has access to form
 /// </summary>
 public Controller(SheetForm form)
 {
     this.form = form;
 }