/// <summary> /// スプレッド標準キー 無効処理(表示用) /// </summary> /// <param name="pspdObj">スプレッドシートインスタンス</param> /// <returns>true:正常終了 false:エラー</returns> /// <remark> /// 各起動時に実行してください。 /// TAB:フォーカス移動用にします /// ESC:通常画面の終了に使用します など /// /// ※ スプレッド読み取り専用の場合必要なし(OperationModeの設定だけ) /// 標準でキーを取得したい場合に使用します /// </remark> public static bool InitDispInputMap(FpSpread pspdObj) { try { // WhenAncestorOfFocused 入力マップ // コントロールまたはその子にフォーカスがある場合(セル編集モード) InputMap linpMap01 = pspdObj.GetInputMap(InputMapMode.WhenAncestorOfFocused); linpMap01.Put(new Keystroke(Keys.Escape, Keys.None), SpreadActions.None); // ESC linpMap01.Put(new Keystroke(Keys.Tab, Keys.None), SpreadActions.None); // TAB linpMap01.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.None); // Enter linpMap01.Put(new Keystroke(Keys.F2, Keys.None), SpreadActions.None); // F2() linpMap01.Put(new Keystroke(Keys.F3, Keys.None), SpreadActions.None); // F3 linpMap01.Put(new Keystroke(Keys.F4, Keys.None), SpreadActions.None); // F4 linpMap01.Put(new Keystroke(Keys.Tab, Keys.Shift, false), SpreadActions.None); // WhenFocused 入力マップ // コントロールにフォーカスがある場合(セル非編集モード) InputMap linpMap02 = pspdObj.GetInputMap(InputMapMode.WhenFocused); linpMap02.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.None); // Enter return(true); } catch (Exception) { return(false); } }
///<summary> /// spd的初始属性设置.(回车跳格,清除split,锁定行高列宽.直接更改文本) ///</summary> public static void SpdLoad(FpSpread ospd) { //回车进行到下一个单元格 InputMap im; im = ospd.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F1, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F2, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F4, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Remove(new FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control)); im.Remove(new FarPoint.Win.Spread.Keystroke(Keys.V, Keys.Control)); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), SpreadActions.Redo); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.V, Keys.Control), SpreadActions.Redo); im = ospd.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F1, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F2, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F4, Keys.None), FarPoint.Win.Spread.SpreadActions.None); im.Remove(new FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control)); im.Remove(new FarPoint.Win.Spread.Keystroke(Keys.V, Keys.Control)); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.C, Keys.Control), SpreadActions.Redo); im.Put(new FarPoint.Win.Spread.Keystroke(Keys.V, Keys.Control), SpreadActions.Redo); // 清除split按钮 ospd.RowSplitBoxPolicy = SplitBoxPolicy.Never; ospd.ColumnSplitBoxPolicy = SplitBoxPolicy.Never; //锁定列宽和行高 //ospd.ActiveSheet.Columns[0, ospd.ActiveSheet.ColumnCount - 1].Resizable = false; //ospd.ActiveSheet.Rows[0, ospd.ActiveSheet.RowCount - 1].Resizable = false; //单元格进入后文本全选. ospd.EditModeReplace = true; }
/// <summary> /// スプレッド通常入力設定処理 /// </summary> /// <param name="pspdObj">スプレッドシートインスタンス</param> /// <param name="EnterAction">Enterキー入力時の動作</param> /// <returns>true:正常終了 false:エラー</returns> /// <remark> /// 通常入力用初期処理を行います /// </remark> public static bool InitNormalInput(FpSpread pspdObj, object EnterAction) { try { // 通常入力用 初期処理 InputMap linpMap = pspdObj.GetInputMap(InputMapMode.WhenAncestorOfFocused); linpMap.Put(new Keystroke(Keys.Enter, Keys.None), EnterAction); //----------------------------------------------------------------------------- // ※ EditModeOn/EditModeOffのイベントは各自記述する必要があります // // [EditModeOn]の場合 // spdXXX.EditingControl.KeyDown += // new System.Windows.Forms.KeyEventHandler( this.spdXXX_KeyDown ); // [EditModeOff]の場合 // spdXXX.EditingControl.KeyDown -= // new System.Windows.Forms.KeyEventHandler( this.spdXXX_KeyDown ); //----------------------------------------------------------------------------- return(true); } catch (Exception) { return(false); } }
/// <summary> /// スプレッド連続入力設定処理 /// </summary> /// <param name="pspdObj">スプレッドシートインスタンス</param> /// <returns>true:正常終了 false:エラー</returns> /// <remark> /// 連続入力用初期処理を行います /// </remark> public static bool InitRenzokuInput(FpSpread pspdObj) { try { // 連続入力用 初期処理 // セルがアクティブになったときにそのセルを編集モード pspdObj.EditModePermanent = true; // 編集中セルの Enterキー押下による動作を無効とします。 InputMap linpMap = pspdObj.GetInputMap(InputMapMode.WhenAncestorOfFocused); linpMap.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.None); //----------------------------------------------------------------------------- // ※ EditModeOn/EditModeOffのイベントは各自記述する必要があります // // [EditModeOn]の場合 // spdXXX.EditingControl.KeyDown += // new System.Windows.Forms.KeyEventHandler( this.spdXXX_KeyDown ); // [EditModeOff]の場合 // spdXXX.EditingControl.KeyDown -= // new System.Windows.Forms.KeyEventHandler( this.spdXXX_KeyDown ); //----------------------------------------------------------------------------- return(true); } catch (Exception) { return(false); } }
///// <summary> ///// コードからインデックス値を取得 ///// </summary> ///// <param name="CODE"></param> ///// <returns></returns> //private int getCnvCodeToIndex(string CODE) //{ // return gcComboBox1.getIndex(CODE); //} ///// <summary> ///// インデックス値からコードを取得 ///// </summary> ///// <param name="INDEX"></param> ///// <returns></returns> //private string getCnvIndexToCode(int INDEX) //{ // string str_rc = string.Empty; // if (INDEX < 0) return str_rc; // return gcComboBox1.getCode(INDEX); //} ///// <summary> ///// コンボボックスでキーが押下された時 ///// </summary> ///// <param name="sender"></param> ///// <param name="e"></param> //private void gcComboBox1_KeyDown(object sender, KeyEventArgs e) //{ // //Enterキーが押された時 // switch (e.KeyCode) // { // // エンターキー // case Keys.Enter: // e.Handled = true; // if (gcComboBox1.SelectedIndex < 0) return; // decimal p_no = decimal.Parse(getCnvIndexToCode(gcComboBox1.SelectedIndex)); // //スプレッド初期化 // //mfnc_setInitialize(); // break; // } //} ///// <summary> ///// コンボボックスで選択値が変化した時 ///// </summary> ///// <param name="sender"></param> ///// <param name="e"></param> //private void gcComboBox1_SelectedIndexChanged(object sender, EventArgs e) //{ // if (gcComboBox1.SelectedIndex < 0) return; // decimal p_no = decimal.Parse(getCnvIndexToCode(gcComboBox1.SelectedIndex)); // //スプレッド初期化 // //mfnc_setInitialize(); //} #endregion #region スプレッドの制御、処理 /// <summary>スプレッド標準キー を無効にし上位へスルー通知を行う処理</summary> /// <param name="pspdObj">スプレッドシートインスタンス</param> /// <returns>true:正常終了 false:エラー</returns> /// <remark> /// 各起動時に実行してください。 /// TAB:フォーカス移動用にします /// ESC:通常画面の終了に使用します など /// /// ※ スプレッド読み取り専用の場合必要なし(OperationModeの設定だけ) /// 標準でキーを取得したい場合に使用します /// </remark> public static bool InitDispInputMap(FpSpread pspdObj) { try { InputMap im = new InputMap(); //【非編集セル】での[Enter]キーを「次行へ移動」とします // WhenFocused 入力マップ // コントロールにフォーカスがある場合(セル非編集モード) // im = pspdObj.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused); //im.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.MoveToNextRow); // Enter 次の行 // im.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.None); // Enter 何もしない // im.Put(new Keystroke(Keys.Down, Keys.None), SpreadActions.None); // ↓ 何もしない //【編集中セル】での[Enter]キーを「次行へ移動」とします // WhenAncestorOfFocused 入力マップ // コントロールまたはその子にフォーカスがある場合(セル編集モード) im = pspdObj.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused); //im.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.None); // Enter 何もしない //im.Put(new Keystroke(Keys.Down, Keys.Alt), SpreadActions.None); // ALT + ↓ 何もしない //im.Put(new Keystroke(Keys.Down, Keys.None), SpreadActions.None); // ↓ 何もしない //im.Put(new Keystroke(Keys.Enter, Keys.None), SpreadActions.MoveToNextRow); // Enter 次の行 //im.Put(new Keystroke(Keys.Tab, Keys.None), SpreadActions.None); // TAB //im.Put(new Keystroke(Keys.Tab, Keys.Shift, false), SpreadActions.None); // TAB + Shift im.Put(new Keystroke(Keys.Escape, Keys.None), SpreadActions.None); // ESC im.Put(new Keystroke(Keys.F1, Keys.None), SpreadActions.None); // F1 im.Put(new Keystroke(Keys.F2, Keys.None), SpreadActions.None); // F2 im.Put(new Keystroke(Keys.F3, Keys.None), SpreadActions.None); // F3 im.Put(new Keystroke(Keys.F4, Keys.None), SpreadActions.None); // F4 im.Put(new Keystroke(Keys.F5, Keys.None), SpreadActions.None); // F5 im.Put(new Keystroke(Keys.F6, Keys.None), SpreadActions.None); // F6 im.Put(new Keystroke(Keys.F7, Keys.None), SpreadActions.None); // F7 im.Put(new Keystroke(Keys.F8, Keys.None), SpreadActions.None); // F8 im.Put(new Keystroke(Keys.F9, Keys.None), SpreadActions.None); // F9 im.Put(new Keystroke(Keys.F10, Keys.None), SpreadActions.None); // F10 im.Put(new Keystroke(Keys.F11, Keys.None), SpreadActions.None); // F11 im.Put(new Keystroke(Keys.F12, Keys.None), SpreadActions.None); // F12 return(true); } catch (Exception) { return(false); } }