Windows 10(1809)にて、ファイルダイアログを表示すると、InputManコントロールの外観が変更される

文書番号 : 83629     文書種別 : 不具合     登録日 : 2019/02/12     最終更新日 : 2019/04/17
文書を印刷する
対象製品
InputMan for Windows Forms 10.0J
状況
修正済み
詳細
Windows 10のOctober 2018 Updateが適用された環境(Ver 1809)にて、InputManのコントロールにフォーカスがある状態で、.NETのファイルダイアログを表示すると、フォーカスがあるInputManコントロールのVisualStyleの外観が解除されます。
回避方法
この問題はService Pack 3(v10.0.4003.2012)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。

Service Pack 3より前のバージョンでは次の方法で回避可能です。

以下のいずれかの方法で回避できます。
  1. ファイルダイアログのAutoUpgradeEnabledプロパティをFalseに設定する

  2. ◎サンプルコード(VB)
    OpenFileDialog1.AutoUpgradeEnabled = False
    OpenFileDialog1.ShowDialog()

    ◎サンプルコード(C#)
    openFileDialog1.AutoUpgradeEnabled = false;
    openFileDialog1.ShowDialog();

  3. 一時的にInputMan以外のコントロールにフォーカスを移動してからダイアログを表示する(以下のサンプルコードは、フォームにGcComboBoxコントロールと標準のComboBoxコントロールがあり、F1キーの押下によりファイルダイアログを表示する場合の例)

  4. ◎サンプルコード(VB)
    Private Sub GcComboBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles GcComboBox1.KeyDown
      If e.KeyCode = Keys.F1 Then
        e.SuppressKeyPress = True

        ComboBox1.Select()
        Timer1.Interval = 10
        Timer1.Start()
      End If
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
      Timer1.Stop()
      OpenFileDialog1.ShowDialog()
      GcComboBox1.Select()
    End Sub

    ◎サンプルコード(C#)
    private void gcComboBox1_KeyDown(object sender, KeyEventArgs e)
    {
      if(e.KeyCode == Keys.F1)
      {
        e.SuppressKeyPress = true;

        comboBox1.Select();
        timer1.Interval = 10;
        timer1.Start();
      }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
      timer1.Stop();
      openFileDialog1.ShowDialog();
      gcComboBox1.Select();
    }