0

重複
の可能性: C# プログラムで SendMessage_EX を 2 回使用できない

特定の行のテキストを取得するために EM_GETLINE メッセージを使用しますが、2 回目に呼び出すと空の文字列が返されます。

このコードを実行し、button1 を 2 回クリックします。最初のクリックではテキストがメッセージ ボックスに表示されますが、2 回目ではメッセージ ボックスが空の状態で表示されます。

    private void button1_Click(object sender, EventArgs e)
    {
        StringBuilder str = new StringBuilder(256);
        SendMessage_Ex(richTextBox1.Handle, EM_GETLINE, 0, str);
        MessageBox.Show(str.ToString());
    }
    public const int EM_GETLINE = 0xc4;
    [DllImport("user32.dll", EntryPoint = "SendMessageA")]
    public static extern int SendMessage_Ex(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);
4

0 に答える 0