Создать новую вкладку из объекта (картинка в панели) - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь разработать приложение для рисования, которое добавляет новую страницу (Файл -> Новая отрисовка), которая открывает новую страницу (графический блок в панели на вкладке), а затем рисует на ней, я должен перемещаться между вкладками и быть умею рисовать самостоятельно.

Можете ли вы помочь мне только за ту часть, о которой говорилось выше, огромное спасибо

за мой код:

public class Page
{
public int index;
//create the pictureBox
public Panel panPrincipal = new Panel();
//create the pictureBox
public PictureBox picCanvas = new PictureBox();


public void NouvellePage(Form form)
{
// the Panel
panPrincipal.Location = new Point(56, 72);
panPrincipal.Dock = DockStyle.Fill;
panPrincipal.BackColor = Color.Aqua;
//ajouter le panel au form
form.Controls.Add(panPrincipal);


// the pictureBox
picCanvas.Location = new Point(56, 72);
picCanvas.Size = new Size(1000, 500);
picCanvas.BackColor = Color.White;
// add pictureBox to panel
panPrincipal.Controls.Add(picCanvas);


}
public void Draw(Graphics gr)
{
// Create pen.Pen blackPen = new Pen(Color.Black, 3);

// Create points that define line.
PointF point1 = new PointF(200.0F, 200.0F);
PointF point2 = new PointF(400.0F, 400.0F);

// Draw line to screen.
gr.DrawLine(blackPen, point1, point2);




private void newPageBtn_Click(object sender, EventArgs e)
{
if (tabControl1.TabCount <= 0)
{
a = 0;
}
a++;

//add page
Page page = new Page();
page.NouvellePage(this);
TabPage newPage = new TabPage("Page " + a);
tabControl1.TabPages.Add(newPage);
tableLayoutPanel1.Controls.Add(tabControl1);
newPage.Controls.Add(page.panPrincipal);
pages.Add(page);
int i = tabControl1.SelectedIndex;

// myPage.Add("Page"+a, page); //this  don't work

if (tabControl1.SelectedTab == tabControl1.TabPages[i])


page.picCanvas.MouseMove += new 
System.Windows.Forms.MouseEventHandler(this.picCanvas_MouseMove);
page.picCanvas.MouseDown += new 
System.Windows.Forms.MouseEventHandler(this.picCanvas_MouseDown);
page.picCanvas.Paint += new 
System.Windows.Forms.PaintEventHandler(this.picCanvas_Paint);
page.picCanvas.MouseUp += new 
System.Windows.Forms.MouseEventHandler(this.picCanvas_MouseUp);

page.picCanvas.Invalidate();
...