タイトル : Re^2: 画面遷移 投稿日 : 2015/08/17(Mon) 14:04 投稿者 : 貴将
ありがとうございます。 返事が遅くなりすみません。 1番目の案は、いろいろと許可申請等の問題があり保留となり 2番目の案「SPI_GETFOREGROUNDLOCKTIMEOUT」を組込み実行しました。 数回実行したのですが、以前とかわらずダメでした。 1. 元の値を退避しておくで(oldValueの値)を確認したのですが 常に0でした。 下記にソースを記載します。 Imports System.Runtime.InteropServices Public Class frmD Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoW" _ (ByVal uiAction As UInteger, _ ByVal uiParam As UInteger, _ ByRef pvParam As UInteger, _ ByVal fWinIni As UInteger) As Boolean Dim oldValue As UInteger Private Const SPI_GETFOREGROUNDLOCKTIMEOUT As UInteger = &H2000 Private Const SPI_SETFOREGROUNDLOCKTIMEOUT As UInteger = &H2001 : : : : Private Sub frmD_Load(sender As Object, e As EventArgs) Handles Me.Load On Error Resume Next Me.SuspendLayout() Me.DoubleBuffered = True 'カーソルを砂時計 System.Windows.Forms.Cursor.Current = Cursors.WaitCursor ' 1. 元の値を退避しておく SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0UI, oldValue, 0UI) ' 2. ForegroundLockTimeoutを0に書き換える SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0UI, 0UI, 0UI) Me.Activate() Me.TopMost = True : : 画面表示処理 : : End Sub Private Sub frmD_Shown(sender As Object, e As EventArgs) Handles Me.Shown SplitContainer1.Panel1.VerticalScroll.Value = 0 SplitContainer1.Panel1.HorizontalScroll.Value = 0 SplitContainer1.Panel1.Update() SplitContainer1.Panel1.VerticalScroll.Value = 0 SplitContainer1.Panel1.HorizontalScroll.Value = 0 SplitContainer1.Panel1.Update() Me.Activate() Me.TopMost = True Me.TopMost = False ' 3. 元に戻す SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0UI, oldValue, 0UI) 'カーソルをデフォルト System.Windows.Forms.Cursor.Current = Cursors.Default Me.ResumeLayout(False) End Sub : : : : End Class 以上 |