编程语言采用的C#,预期实现动态添加RichTextBox以实现并列编辑框的效果
1 其中,from的AutoScroll属性设置为Ture
2 窗体的热键设置了Ctrl+N为添加RichTextBox,新添加的Top=0 ,Left =Name*300 ,RichTextBox Width=300
private void KanBan_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.N )
{
RichTextBox txtBox = new RichTextBox();
//System.Drawing.Point p = new Point(0, UName * 300);//创建一个坐标,用来给新的按钮定位
//b.Location = p;//把按钮的位置与刚创建的坐标绑定在一起
txtBox.Name = "Rtxt" + (UName + 1).ToString();
if (UName == 0)
{
System.Drawing.Point p = new Point(0, 0);//创建一个坐标,用来给新的按钮定位
txtBox.Location = p;
txtBox.Height = this.Height - 80; //设置新添加的RichTextBxo的高度
txtBox.Width = 300; //设置新添加的RichTextBox的宽度
UName = UName + 1; //计数器加一
}
else
{
System.Drawing.Point p = new Point(UName * 300,0 );//创建一个坐标,用来给新的按钮定位
txtBox.Location = p;
txtBox.Height = this.Height - 80; //设置新添加的RichTextBxo的高度
txtBox.Width = 300; //设置新添加的RichTextBox的宽度
UName = UName + 1; //计数器加一
}
this.Controls.Add(txtBox); //添加RichTextBox
txtBox.Focus(); //新添加的RichTextBox获得焦点
}
}
运行结果及报错内容
运行时,前几个RichTextBox添加时,新添加的RichTextBox都是紧相邻添加,但添加的数值一旦超过了窗体的宽度,新添加控件的位置就出现了错位,不是紧贴上一个控件了,越往后,偏移的位置越大
我的解答思路和尝试过的方法
也尝试过用Top,Left定义新添加控件的位置,出现的状况和现在一样
也试验过用VB.net来重写,结果和这个一样,都是数值超出了窗体宽度之后,新控件出现的位置就开始偏移
我想要达到的结果
本来希望达到的效果是,新动态添加的控件,紧贴上一个控件的右侧出现,每个RichTextBox都是紧贴着添加,哪位碰到过类似问题,盼能解惑,谢谢