C# 设置Control.Capture=true将隐藏光标

C# 设置Control.Capture=true将隐藏光标,c#,winforms,mouse,C#,Winforms,Mouse,当我将控件的Capture属性设置为true时,我会收到预期的鼠标事件,但光标不可见。这是预期的行为吗?如果是,在捕获光标时如何显示光标 示例代码: 这假设您有一个带有文本框的表单,该文本框的文本已更改事件链接正确 现在,示例代码实际上适用于(Form).Capture的情况,以保持示例代码简短,但我已经对其进行了测试,它还导致我的鼠标消失 public partial class MyForm : Form { public MyForm() { Initial

当我将控件的
Capture
属性设置为true时,我会收到预期的鼠标事件,但光标不可见。这是预期的行为吗?如果是,在捕获光标时如何显示光标

示例代码:

这假设您有一个带有
文本框的
表单
,该文本框的
文本已更改
事件链接正确

现在,示例代码实际上适用于
(Form).Capture
的情况,以保持示例代码简短,但我已经对其进行了测试,它还导致我的鼠标消失

public partial class MyForm : Form
{
    public MyForm()
    {
        InitializeComponent();
    }

    private void TextBox_TextChanged(object sender, EventArgs e)
    {
        this.Capture = true;
    }
}

在文本框中键入某些内容,鼠标将消失。

鼠标捕获会中断正常的鼠标处理流程,包括设置光标,因此您应该手动设置光标。

鼠标捕获和可见性之间没有关联。发布重现问题的代码。@HansPassant示例代码发布。耶,不要这样做。用“在键入时隐藏鼠标光标”选项煮了25年的appcompat黑客程序,你会得到一些绿色的东西,像这样吃你的午餐。我不是想隐藏它,我不想隐藏它。我想知道如何使它再次出现。这似乎解决了问题。非常感谢。您使用了什么代码来设置光标?请澄清。
public partial class MyForm : Form
{
    public MyForm()
    {
        InitializeComponent();
    }

    private void TextBox_TextChanged(object sender, EventArgs e)
    {
        this.Capture = true;
    }
}