之前写过使用ScreenLib实现题目中的功能。不过现在用C#了, 也尝试了一下自己来避免软键盘挡住输入区域,谁曾想TextBox.Bottom竟然是read only的,可同时.Top确实可以写的。晕倒。不过好在Height属性可以改,试了一下也成了。
//其实也就这里两句话了。SIP弹出后把TextBox变矮,SIP关掉后TextBox变高。
private void inputPanel1_EnabledChanged(object sender, EventArgs e)
{
if (inputPanel1.Enabled == true)
{
txtMessage.Height = txtMessage.Height - inputPanel1.Bounds.Height;
}
else
{
txtMessage.Height = txtMessage.Height + inputPanel1.Bounds.Height;
}
}
//open the SIP when the TextBox is selected.
private void TextMessageGetFocused(object sender, EventArgs e)
{
inputPanel1.Enabled = true;
}
private void TextMessageLostFocused(object sender, EventArgs e)
{
inputPanel1.Enabled = false;
}