单击文本框后,如何在文本框下方显示表单?
目前Form1
有textBox1
和Form1
具有StartPosition = CenterScreen
,该textBox1
有textBox1_MouseClick
单击文本框后,如何在文本框下方显示表单?
代码textBox1_MouseClick
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
}
在Form2
也已经StartPosition = CenterScreen
当我点击textBox1
的Form2
将覆盖textBox1
。
我想要发生的是它不会覆盖textBox1
当Form2
将被显示时,它应该显示在textBox1
之下它就像一个工具提示。我怎样才能做到这一点?
更新的代码:
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
Form2 frm2 = new Form2();
frm2.StartPosition = FormStartPosition.Manual;
frm2.Location = new Point(this.Location.X + textBox1.Location.X, this.Location.Y + textBox1.Location.Y);
frm2.ShowDialog();
}
private void textBox2_MouseClick(object sender, MouseEventArgs e)
{
Form2 frm2 = new Form2();
frm2.StartPosition = FormStartPosition.Manual;
frm2.Location = new Point(this.Location.X + textBox2.Location.X, this.Location.Y + textBox2.Location.Y);
frm2.ShowDialog();
}
NO TEXTBOX点:
TextBox1的点:
TextBox2中CLICKED:
我之前发布的是一个长期的通用解决方案。为了快速解决手头的问题,您应该简单地这样做:
frmKeyboard.Location = this.PointToScreen(new Point(txtYourTextBox.Left, txtYourTextBox.Top + txtYourTextBox.Height));
你最好用UserControl代替表单来做。只需将UserControl的位置设置为(textbox1.Left,textbox1.Top + textbox1.Height)。
您应该在继承自标准TextBox的项目中添加一个自定义TextBox类,然后连线它的Enter/Leave事件,在其中显示/隐藏您的键盘控件并连线其“按键”事件以修改您的自定义文本框的文本。这将使您可以根据需要创建多个文本框实例。你甚至可以让你的键盘控件成为自定义TextBox的静态成员,以节省一些资源。
,但我下TextBox1的文本框等? – 2013-03-03 05:46:14
那么你想在哪里显示它呢?在右侧? – dotNET 2013-03-03 05:48:32
下的textbox1,但它只是一个弹出,因为我真正想要发生的是,当一个点击文本框自定义键盘将显示,我曾经点击的键盘将显示在textbox1这就是为什么我想显示它下textbox1 – 2013-03-03 05:52:17
您也可以使用这样的事情:
private Point GetPosition()
{
return new Point(this.Location.X + this.textBox1.Location.X, this.Location.Y + this.textBox1.Location.Y);
}
private void button1_Click(object sender, EventArgs e)
{
Form2 fm = new Form2();
fm.Location = this.GetPosition();
fm.ShowDialog();
}
这是不准确的呢。您必须将Form Borderwith添加到该位置。对于Form2集StartPosition =手册
你是什么意思添加表格边框? – 2013-03-03 06:17:44
this.Location包含您的标题栏和边框宽度,而textbox.Location是相对于表单矩形的。 – 2013-03-03 06:27:45
哦,我将form2 formborderstyle设置为无 – 2013-03-03 06:31:36
更新我的问题:) – 2013-03-03 07:05:17