您的位置:首页 > 其它

PPC中窗体内容以及随着输入法面板的显示状态的滚动处理

2008-01-31 11:22 302 查看

这两天想做一个PPC上的小程序,才发现它上面很多东西做起来好麻烦。。。。

就拿滚动窗体里面的内容来说,在普通的WinForm下是很容易的,这里都得要自己实现。

终于在微软的示例中找到一个例子 ,不过发现窗体上如果有输入面板控件的话,如果输入法面板显示出来则会遮盖住窗体的一部分,那么就会比较麻烦。一直找不到好的解决方案,经过一番折腾,终于算是搞妥了这个问题,现将解决思路写出来,大家看看有没有什么优化的地方。

首先:窗体中所有要显示的控件都应该放到一个Panel里面,其次在窗体上放上一个VScrollBar,当然如果你也需要横向滚动条那么也放上一个吧,如下图所示:

private void Form1_Load(object sender, System.EventArgs e)

private int preValue;

private void vScrollBar1_ValueChanged(object sender, System.EventArgs e)

private void inputPanel1_EnabledChanged(object sender, System.EventArgs e)

private void ShowInputPanel(object sender,System.EventArgs e)

private void HideInputPanel(object sender,System.EventArgs e)

private void SetScrollBar(object sender)

最后,将所有需要显示输入法面板的控件如下处理,使其获得焦点的时候可以显示输入法面板并且调整窗体中控件位置:

this.textBox1.GotFocus += new System.EventHandler(this.ShowInputPanel);

所有要隐藏输入法面板的控件再作如下处理,使其获得焦点的时候隐藏输入法面板并且调整控件位置:

this.radioButton1.GotFocus += new System.EventHandler(this.HideInputPanel);

OK,经过如上处理之后,您的窗体中的控件位置首先会随着滚动条的位置的改变而滚动。

其次,当弹出或者隐藏输入法面板的时候,位置也会随之相应调整。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐