1

こんにちはガイズこのリンクで、ボーダレスウィンドウアプリでalt + tabを使用する方法に関するコードを見つけました Alt-Tabダイアログからフォームを非表示にする方法

しかし、問題はそれがC#でコーディングされているため、c#を使用してvb.netに変換すると、vb.netオンライン変換に....

次のような c# コードから:

protected override CreateParams CreateParams {
  get {
    // Turn on WS_EX_TOOLWINDOW style bit
    CreateParams cp = base.CreateParams;
    cp.ExStyle |= 0x80;
    return cp;
  }
}

次に、オンライン変換を使用して vb.net に変換しました。そしてここに行きます:

Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
    ' Turn on WS_EX_TOOLWINDOW style bit
    Dim cp As CreateParams = MyBase.CreateParams
    cp.ExStyle = cp.ExStyle Or &H80
    Return cp
End Get

End プロパティ

だから私のコードで。ここに行きます:

Imports System.Windows.Forms
Namespace OSOASA
Partial Public Class WindowLoginForm
    Protected Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            ' Turn on WS_EX_TOOLWINDOW style bit
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H80
            Return cp
        End Get
    End Property
End Class
End Namespace

それは私に2つのエラーを与えます

最初: 「プロパティ 'CreateParams' は、基本クラスのプロパティをオーバーライドしないため、'オーバーライド' として宣言できません。」

2 番目: 「'CreateParams' は 'System.Windows.Window のメンバーではありません」

4

1 に答える 1

2

からウィンドウを削除する方法を次に示しますAlt + Tab。メソッドを呼び出すだけHelper.RemoveFromAltTab(Me)です。このコードをテストしたところ、.in の場合に正常に動作ShowInTaskbar="False"Windowます。

Imports System
Imports System.Runtime.InteropServices
Imports System.Windows
Imports System.Windows.Interop

Public Class Helper
    Friend Const GwlExstyle As Integer = -20
    Friend Const WsExToolwindow As Integer = &H80

    <DllImport("user32.dll", EntryPoint:="GetWindowLong", CharSet:=CharSet.Auto)> _
    Private Shared Function GetWindowLong32(hWnd As IntPtr, nIndex As Integer) As IntPtr
    End Function

    <DllImport("user32.dll", EntryPoint:="SetWindowLong", CharSet:=CharSet.Auto)> _
    Private Shared Function SetWindowLong(hWnd As IntPtr, nIndex As Integer, value As UInteger) As IntPtr
    End Function

    Friend Shared Sub RemoveFromAltTab(hwnd As IntPtr)
        Dim ws As UInteger = GetWindowLong32(hwnd, GwlExstyle)
        SetWindowLong(hwnd, GwlExstyle, ws Or WsExToolwindow)
    End Sub

    Friend Shared Sub RemoveFromAltTab(w As Window)
        RemoveFromAltTab((New WindowInteropHelper(w)).Handle)
    End Sub
End Class
于 2012-05-24T20:44:31.390 に答える