winforms 查看列表框时是否禁止滚动条向下跳转?

xqnpmsa8  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(145)

我在windows窗体中创建了一个聊天室,有一个列表框,显示所有收到的消息,当然,我把聊天框设置为当有新消息发送时自动滚动到底部。但是,如果用户正在查看旧消息,而有新消息发送,滚动条会立即跳到底部。
我在想我可以做些什么

if(scrollBarPosition != scrollBarBottom) doNotJumpToBottom

除了我找不到任何滚动条位置变量。下面是我跳转到底部的代码:

chatListBox.TopIndex = chatListBox.Items.Count - 1;
tvmytwxo

tvmytwxo1#

我建议你在你的列表框旁边添加一个复选框,以允许或防止自动化。
例如,如果您决定选中checkBox,则listBox将跟随传入事件到达底部,您可以执行以下操作:

listBox1.Items.Add(newItem); // this is where a new entry comes
    if (checkBox1.Checked)
    {
        chatListBox.TopIndex = chatListBox.Items.Count - 1;
    }

因此(在该示例中),如果未选中该框,则用户可以自由地向上或向下滚动到他想要的位置,并通过选中该框来继续查看传入的项目。

相关问题