PPC中窗体内容以及随着输入法面板的显示状态的滚动处理
2005-04-25 18:10
387 查看
这两天想做一个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,经过如上处理之后,您的窗体中的控件位置首先会随着滚动条的位置的改变而滚动。
其次,当弹出或者隐藏输入法面板的时候,位置也会随之相应调整。
就拿滚动窗体里面的内容来说,在普通的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,经过如上处理之后,您的窗体中的控件位置首先会随着滚动条的位置的改变而滚动。
其次,当弹出或者隐藏输入法面板的时候,位置也会随之相应调整。
相关文章推荐
- PPC中窗体内容以及随着输入法面板的显示状态的滚动处理
- .net 密码框赋值、输入以及页面刷新状态下的处理过程
- android webview 缓存以及无网状态显示处理
- .net 密码框赋值、输入以及页面刷新状态下的处理过程
- UITextField(限制文字输入,调整光标,内容,占位文字显示的位置,以及基本使用)
- 抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程
- 监听EditText输入状态,根据是否有输入内容显示ImageButton(清空按钮)
- 窗体上有两个文本框:一个文本框中最多输入字符6个;一个文本框中输入任何内容都显示*号。再添加一个按钮、2个单选按钮。实现单击按钮后,根据单选按钮,将对应文本框中内容显示在标签
- IOS 键盘的显示与关闭,以及移动显示(UITextView处理完整版)(完美中文键盘输入避免触摸无效,做双重保障)
- 仿知乎程序(四)swipebacklayout的使用,处理TextView中图片的显示以及类360滚动布局
- android 在状态栏显示内容以及更改状态栏颜色
- Android:创建能输入内容的常见对话框以及使用对话框实现逻辑处理
- android TextView自动滚动以及Java中改变显示内容
- flex 弹窗口嵌套iframe,移动窗体iframe内容不显示了问题处理
- win32 获取edit内容与把内容显示到edit控件上和设置控件无效状态
- Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
- Android 应用程序窗体显示状态操作equestWindowFeature()的应用
- Android中使用一个textview实现不同颜色以及内容分割的显示
- jquery中当text文本框为空时,button按钮是disabled状态,否则为enable状态且输入框只能输入数字。并用alert显示第一个数字