#freeze
[[.NET]]

こんなの作って遊んでたんだけど、 問題があったのね。

IsReadonly=true にしたらキーボード入力を全然受け付けないし、そんで false にしても、いまいち使いづらかった。とにかくキーボードまわりが全然ダメダメ。

#ref(2016-02-23.jpg)


だから、以下の機能をつけてみる事にしたの。

- 「↑」キーで上に一行スクロール
- 「↓」キーで下に一行スクロール
- 「PageUp」で上に一ページスクロール
- 「PageDown」で下に一ページスクロール
- 「←」キーで前の章に移動(ページが存在するなら)
- 「→」キーで次の章に移動(ページが存在するなら)
- 「Home」キーで最初の行に移動

ところで wpf でキー入力を受け取るのって、なぜか KeyDown ではダメだったの。PreviewKeyDown ならOKだったんだけど、誰か理由知ってるかしら?


        /// <summary>
        /// キーボード・コントロール
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tb2_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
                case Key.Up: tb2.LineUp(); break;
                case Key.Down: tb2.LineDown(); break;
                case Key.PageUp: tb2.PageUp(); break;
                case Key.PageDown: tb2.PageDown(); break;
                case Key.Home: tb2.ScrollToLine(0); break;
                case Key.Right:
                    if (right1.Visibility == Visibility.Visible)
                    {
                        tb1.Text = getUpDown(tb1.Text, 1);
                        goWeb();
                    }
                    break;
                case Key.Left:
                    if (left1.Visibility == Visibility.Visible)
                    {
                        tb1.Text = getUpDown(tb1.Text,-1);
                        goWeb();
                    }
                    break;
            }
        }

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS