0

我在表单上有一个文本框和一个 vScrollBar。我希望文本框有焦点,但是当它这样做时,使用鼠标上的滚动按钮不会改变滚动条的值。如果滚动条有焦点,我可以用鼠标轻松滚动,但在文本框中输入文本将不起作用。有什么方法可以捕获表单上的所有滚动按钮​​活动并将其重定向到滚动条?

4

2 回答 2

1

处理 TextBox 的 MouseWheel 事件...

public frmSTOverScrollText()
{
    InitializeComponent();
    txtInput.MouseWheel += new MouseEventHandler(txtInput_MouseWheel);
}

void txtInput_MouseWheel(object sender, MouseEventArgs e)
{
    if (e.Delta < 0)
    {
        if (vsInput.Value + vsInput.LargeChange <= vsInput.Maximum)
            vsInput.Value += vsInput.LargeChange;
    }
    else if (vsInput.Value - vsInput.LargeChange >= vsInput.Minimum)
        vsInput.Value -= vsInput.LargeChange;
}
于 2013-08-02T12:30:08.730 回答
0

在表单属性下,在事件类型中添加一个 KeyDown 事件:

yourTextBox.Text += e.KeyValue;

之后,在文本框属性下,在事件类型中添加一个 Enter 事件:

this.Focus();

基本上会发生的事情就是这样。该表单现在会将每个按键定向到文本框。当文本框处于焦点时,所述文本框将自行取消焦点,让表单将任何字符附加到文本框。

于 2013-08-02T12:26:04.487 回答