这是一个语音朗读的文本框,朗读过程中,正在被读到的词会被高亮选中,当光标(高亮选中的词)走到文本框最下的时候,滚动条每次只向下滚动一行,有什么办法可以滚动1屏。
我用滚动条事件滚动条会乱滚,应该是相应了SendKeys.Send("{PGDN}");滚动事件导致死循环了。
private void frmSpeech_Load(object sender, EventArgs e)
{
txtContent.VScroll += new EventHandler(txtContent_VScroll);
}
private void txtContent_VScroll(object sender, EventArgs e)
{
if (btnPlay.Text == ">")
{
SendKeys.Send("{PGDN}");
}
}
并且,并且就算解决了上述问题,这个方法只在txtContent获得焦点的时候有效,有什么方法可以在txtContent失去焦点、或者整个窗体都失去焦点依然有效?
------解决思路----------------------
ExtentHeight 获取可见内容区域的垂直大小。
滚动条滚动位置与ExtentHeight 对应上
------解决思路----------------------
换WPF的吧。可以控制滚动的 偏移量,winform的就不知道了。