Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Перемещение контрола с одной панели на другую


Автор: kozhura 3.8.2010, 18:56
Мужики, такой вопрос. Имею:
Код

{ //Всякое...

for (int i = 0; i < a; i++)
{
Label r = new Label();
string h = fg.ReadLine();
r.Text = h;
r.Dock = DockStyle.Top;
r.Width=panel3.Width;
panel3.Controls.Add(r);
r.Cursor = Cursors.Hand;
r.MouseHover += new EventHandler(r_MouseHover);
r.Click += new EventHandler(r_Click);
}
}

void r_Click(object sender, EventArgs e)
{
Label k = sender as Label;
if (k is Label)
{
panel3.Controls.Remove(k);
k.Dock = DockStyle.Top;
k.Width = panel4.Width;
panel4.Controls.Add(k);
k.Click += new EventHandler(k_Click);
}
}
void k_Click(object sender, EventArgs e)
{
Label j = sender as Label;
if (j is Label)
{
panel4.Controls.Remove(j);
j.Dock = DockStyle.Top;
j.Width = panel3.Width;
panel3.Controls.Add(j);
}
}

Получается такая фигня. На панели3 нажимаю на лейбл, он перемещается в панель4, на него же в панели4 кликаю, он перемещается назад в панель3, а потом сколько не нажимай на него в панели3, повторного перемещения на панель4 не происходит(. Что делать?

Автор: diadiavova 3.8.2010, 19:18
Код

void label1_Click(object sender, EventArgs e)
{
    var l = sender as Label;
    l.Parent = (l.Parent is panel3)?panel4:panel3;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)