Я пытаюсь перевести этот код VB.NET на C#, но я новичок в C#.Как перевести этот код VB.NET на C#?
Это мой код VB.NET код:
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (_
ByVal hwnd As Integer, _
ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, _
ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
Private Const SWP_NOSIZE As Integer = &H1
Private Const SWP_NOMOVE As Integer = &H2
Private Shared ReadOnly HWND_TOPMOST As New IntPtr(-1)
Private Shared ReadOnly HWND_NOTOPMOST As New IntPtr(-2)
Private windows As New WindowInteropHelper(Me)
Public Function MakeTopMost()
SetWindowPos(windows.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End Function
И это мой C# Код:
[DllImport("user32.dll", EntryPoint = "SetWindowPos")]
public static extern IntPtr SetWindowPos(string hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags);
private const int SWP_NOSIZE = 0x1;
private const int SWP_NOMOVE = 0x2;
public void MakeTopMost()
{
SetWindowPos(windows.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
Error in MakeTopMost(): invalid Arguments
Вам не нужно использовать '0x1' вместо' & H1' в C#? –
Шестигранная константа в C# записывается как 0x1; – Steve
O это работает спасибо, только мне нужно перевести функцию MakeTopMost(), или «я думаю, это плохо» – grijalvaromero