GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の最新情報をお届けします。製品のTIPSや発売情報、イベントのお知らせなどをいち早く発信中です。

ExcelライクにTabキーでセルのフォーカスを移動する

はじめに

今回はComponentOne for Xamarinのコントロールの1つ、FlexGrid(フレックスグリッド)の機能を紹介します。

Windows Forms/WPF/UWPなど他のプラットフォームのFlexGridをご利用いただいている皆さんの中には本記事のタイトルでピンときた方も多いかと思いますが、おなじみの機能がComponentOne for Xamarin 2018J v2でXamarinのFlexGridにも追加されました!

実装方法

KeyActionTabを使用してTabキーをクリックした際の動作を設定できます。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:FlexGridCsv"
             xmlns:c1="clr-namespace:C1.Xamarin.Forms.Grid;assembly=C1.Xamarin.Forms.Grid"
             x:Class="FlexGridCsv.MainPage"
             Padding="0,20,0,0">

    <Grid VerticalOptions="FillAndExpand">
        <c1:FlexGrid x:Name="grid" SelectionMode="Cell" KeyActionTab="Cycle" />
    </Grid>

</ContentPage>

Cycleを設定すると同じ行の右側のセルにフォーカスが移動できるようになります。Tabキーでフォーカスを移動させたくない場合はNoneを設定してください。

f:id:GrapeCity_dev:20180820144624g:plain:w600

Enterキーで同じ列の下側のセルにフォーカスを移動はできる?

残念ながら、現時点ではComponentOne for XamarinのFlexGridにはまだ実装されていません。ComponentOne for UWPをはじめとする他のデスクトッププラットフォーム製品ではKeyActionEnterプロパティにMoveDownを設定すると移動できます。

f:id:GrapeCity_dev:20180822104338g:plain:w600

ComponentOne for XamarinのFlexGridにも今後のアップデートで実装を期待したいと思います。

まとめ

KeyActionTabを使うだけなので設定は非常にシンプルです。この機能によりタブレットとワイヤレスキーボードで入力や編集を繰り返し行う必要があるシーンなどで、効率的にセルのフォーカスを移動できます。

その他にもComponentOne for Xamarin 2018J v2では新機能が追加されていますので是非ご覧ください。

デモはこちらです。

ComponentOne デモアプリケーション | Developer Tools - グレープシティ株式会社