Power Apps でフォーム画面を作るとき、「新規・編集フォームでは保存ボタンを表示して、閲覧フォームでは保存ボタンを非表示にしたい」と思うことはありませんか。見るだけの画面に保存ボタンが表示されていると、利用者が迷う原因になります。
本記事では、フォームの状態でボタンの表示/非表示を切り替える方法をご紹介します。
はじめに/フォームコントロールの仕組み
フォームには大きく3つの状態があります。新規、編集、閲覧の3つで、それぞれ NewForm関数、EditForm関数、ViewForm関数で切り替えることができます。
NewForm(Form1) ⇒ Form1 コントロールを新規フォームに切り替え
EditForm(Form1) ⇒ Form1 コントロールを編集フォームに切り替え
ViewForm(Form1) ⇒ Form1 コントロールを閲覧フォームに切り替え
そしてこれらのフォームの状態はフォームコントロールの Mode プロパティに以下の値で格納されています。
新規フォームの場合 ⇒ FormMode.New
編集フォームの場合 ⇒ FormMode.Edit
閲覧フォームの場合 ⇒ FormMode.View
そのため、フォームコントロールの Mode プロパティを見ることで、現在のフォームの状態を判別することができます。
実装手順
ここでは、冒頭にある「新規・編集フォームでは保存ボタンを表示して、閲覧フォームでは保存ボタンを非表示にする」という例でご紹介します。
フォームコントロールを Form1、保存ボタンを btnSave とします。btnSave の Visible プロパティに次の式を設定します。

If(Form1.Mode = FormMode.View, false, true)
この式で閲覧フォームでは非表示 (Visible: false) になり、それ以外の新規フォームと編集フォームでは表示 (Visible: true) されます。
応用として、保存ボタンを表示/非表示ではなく、有効/無効にしたい場合は、btnSave の DisplayMode プロパティに次の式を設定します。

If(Form1.Mode = FormMode.View, DisplayMode.Disabled, DisplayMode.Edit)
フォームの状態によって、必要なコントロールだけを表示・関係ないコントロールは非表示にすることで、利用者の使い勝手が向上します。
シンプルな設定で実装できますので、ぜひ自分のアプリでも試してみて、利用者にとって迷いのない操作体験を作ってみてください。

