2016-06-17 8 views
0

を働いていません。私は自分のテキストボックスのプレースホルダを持っていて、User32.dllからSendMessageのメソッドを見つけました。ここでは(設定ファイルが存在しない場合は、最初の形式の一つであるLoginForm.csに配置された)私のコードは次のとおりです。C#Windowsフォーム - のSendMessage EM_SETCUEBANNERテキストボックスには、私は、WindowsフォームでのC#でアプリケーションを作ってるんだ

民間のconst int型EM_SETCUEBANNER = 0x1501;

[DllImport("user32.dll", CharSet = CharSet.Auto)] 
    private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string lParam); 

クラス内に配置されます。私のコンストラクタとして私が得た:

public LoginForm() 
{ 
    InitializeComponent(); 

    SendMessage(hostname.Handle, EM_SETCUEBANNER, 0, "Hostname"); 
    SendMessage(port.Handle, EM_SETCUEBANNER, 0, "Port"); 
    SendMessage(username.Handle, EM_SETCUEBANNER, 0, "Username"); 
    SendMessage(password.Handle, EM_SETCUEBANNER, 0, "Password"); 
    SendMessage(database.Handle, EM_SETCUEBANNER, 0, "Database"); 
} 

マイhostnameportusernamepassworddatabaseはすべてのテキストボックスです。しかし、私がアプリケーションを実行する場合、プレースホルダは適用されません。単に最後のテキストボックスに焦点を合わせます。

私は間違っていますか?私は間違いがない。

+1

私のために立派に動作し、あなたが自動生成さApplication.EnableVisualStylesを(持っていますか)()? –

+1

ああ、それは問題です、私は持っていませんでした。私は空のProgram.csで始まったので、私はその行を持っていませんでした。ありがとう! :) –

答えて

-1

私は私のProgram.csにApplication.EnableVisualStyles();を追加するのを忘れ、ダムでした。あなたのメインで

関連する問題