Form1
我做的一张表格叫
TextBlock
. 我正在制作一个文本编辑器,你可以在页面周围放置文本框,然后编辑它们(想想单词)。
这是我的两张表格。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog.Filter = "Text File|*.txt";
var result = saveFileDialog.ShowDialog();
if (result == DialogResult.OK)
{
StreamWriter writer = new
StreamWriter(saveFileDialog.OpenFile());
writer.Write(tb_Main.Text);
writer.Dispose();
writer.Close();
}
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
private void button_tb_Click(object sender, EventArgs e)
{
TextBlock tb_edit = new TextBlock();
tb_edit.Text = "New Text Block";
// tb_edit.Multiline = true;
// tb_edit.Size = new Size(100,100);
// tb_edit.MinimumSize = new Size(50, 50);
tb_edit.form1 = this;
tb_edit.TopLevel = false;
tb_edit.btn_accepttb.BringToFront();
tb_Main.Controls.Add(tb_edit);
tb_edit.Show();
tb_edit.BringToFront();
}
}
public partial class TextBlock : Form
{
public Form1 form1;
public TextBlock()
{
InitializeComponent();
}
private void btn_accepttb_Click(object sender, EventArgs e)
{
TextBox tb_edit = new TextBox();
tb_edit.Text = "New Text Block";
tb_edit.Multiline = true;
tb_edit.Size = this.Size;
int dif = form1.tb_Main.Lines.Count()*(int)tb_edit.Font.Size;
Point loca = new Point(this.Location.X,this.Location.Y+dif);
tb_edit.Location = this.Location;
form1.tb_Main.Controls.Add(tb_edit);
tb_edit.Show();
tb_edit.BringToFront();
form1.tb_Main.Controls.Remove(this);
}
}
它的作用:它复制我的文本块,用于放置和调整大小。当你把它放在你想要的地方,你想要多大的时候,你点击按钮,它就会在那个位置用一个普通的文本框来代替它自己。
我希望它做的是:目前它是一个例外工作。我将它添加到tbu Main(我的主文本框,它占据了整个表单)的控件中,在Form1中,它出现了。它的大小是正确的,除非我用文本填充tb\u Main,然后滚动,新的文本框保持在原来的位置,而其父文本框则在后面滚动。
问:如果我向下滚动到我的文档,并决定我要这个文本框在这里,我如何确保它的位置相对的文本框滚动我把它。所以当我继续滚动时,它基本上会嵌入到我放置它的页面中(当我说“page”时,我指的是我的tbu Main)。