2016-06-26 3 views
0

Visual Studio 2012のVBでビルドされたアプリケーションは、Windows 10のデスクトップでは正常に動作しますが、Windows 10のタブレットで使用するとすぐにWinフォームVBアプリケーションの勝利10 - フォーカスの問題

1)フルスクリーンよりも小さくなるように意図されたフォームは、とにかくフルスクリーンで表示されます(フルスクリーンよりも小さいウィンドウを許可しない場合とほとんど同じです)。確かにそれの周りの道をtheres?

2) - 最も重要なのは、いくつかの奇妙な理由から私は私のアプリを起動し、ボタンをクリックすると、フォーム6が開きます。コードを実行していると終了したら、フォーム6を閉じます以前のフォームは現在非表示になっており、デスクトップにしか表示されません。つまり、まだ実行中です。フォーカスを失ったため、再度選択する必要があります。私はフォーム6を閉じる前に基になるフォームに焦点を当てることができると理解していますが、ここに問題があります:フォーム6を呼び出すいくつかの異なるフォームの1つになる可能性があります.....私はそこに焦点を戻すことができるようにform6ので?

これはデスクトップ上の問題ではないようですので、私はこれまでに遭遇したことはありません。私はあなたの専門家の1人がこれまでに対処してくれることを願っています。

+0

まず、いくつかのコードを表示し、問題の範囲を狭くする必要があります。 – hbulens

+0

表示するコードはあまりありません。私のすべてのフォームで "アイテムを追加"をクリックすると、Form6.show()が実行されます。フォーム6で[OK]ボタンをクリックすると、Me.Close()が実行されます。フォーカスが失われる – Rocks

答えて

0

fyiこの問題が発生した人は、私はそれを自分で解決し、コーディングは一切必要ありませんでした。これは、タブレットが「タブレット」モードにあるときと、タブレットモードがオフに切り替えられたときのVBアプリケーションの動作の違いでした。 Windows 10の設定で拡張タブレットモードをオフにする必要があります。

0

コメントするにはまだポイントがありません。 #1の私の推測は、2つの画面の間の解像度またはDPIの違いです。後者についての経験はありません。

#2については、誰がそれを誰が呼び出したかを知っておいてください、これは私がやる方法です。もちろん、これは最善の解決策ではないかもしれません。 ;)

は、まず、複数の発信者を持つことができます任意の形式は、私は一般的にフォームをロードする前に、できるだけ多くを処理するために、初期化ルーチンを作成

Dim callingForm As New Form 

のように定義された変数を持っており、このルーチンは親と呼ばれていますフォーム(Me)をパラメータとして使用します。初期化で

Dim frm As New frmClient 
frm.Initialize(Me) 
frm.Show() 
Me.Hide() 

あなたが始める必要があるフォーム...

Private Sub exitForm() 
    'whatever other closing stuff you need to do... 
    callingForm.Show() 
    Me.Close() 
End Sub 

を終了すると、callingFormはその後、親に

Public Sub Initialize(parent As Form) 
    callingForm = parent 
    'whatever else you need to do to init... 
End Sub 

に設定されています。

関連する問題