ببینید ایده ای که من دارم اینکه شما یه کنترلی مثلا یه دکمه بزارید توی فرم بعد اگه او دکمه خورد به تعداد مورد نیاز یه کنترل دیگه ای حالا چه جدول (برای کارای مثل جدول ) و چه تک کلمه ای که مثل یه تکس باکس یا یه لیبل میتونید به فرم اضافه کنید.
این کدی که الان میزارم واسه این بود که من چند تا لیبل رو روی فرم در مختصات مختلف میزارم و قابلیت جابه جایی هم داره.
for (int i = 0; i < Floyid.Distance.GetLength(0); i++)
{
p1.X= r.Next(50, 500);
p1.Y= r.Next(40, 350);
path1.Add(p1);
var mycontrol = new Label();
mycontrol.Size = new Size(40, 20);
mycontrol.Location = new Point(p1.X,p1.Y);
mycontrol.Text = node_counts.ToString();
mycontrol.BackColor = Color.White;
mycontrol.TextAlign = ContentAlignment.MiddleCenter;
mycontrol.Name = node_counts.ToString();
mycontrol.MouseDown += new MouseEventHandler(mycontrol_MouseDown);
mycontrol.MouseMove += new MouseEventHandler(mycontrol_MouseMove);
mycontrol.MouseUp += new MouseEventHandler(mycontrol_MouseUp);
panel1.Controls.Add(mycontrol);
node_counts++;
}
private Control activecontrol;
private Point previouspoint;
void mycontrol_MouseUp(object sender, MouseEventArgs e)
{
activecontrol = null;
Cursor = Cursors.Default;
}
void mycontrol_MouseMove(object sender, MouseEventArgs e)
{
if (activecontrol==null || activecontrol !=sender)
{
return;
}
var location = activecontrol.Location;
location.Offset(e.Location.X - previouspoint.X,e.Location.Y-previouspoint.Y);
activecontrol.Location = location;
}
void mycontrol_MouseDown(object sender, MouseEventArgs e)
{
activecontrol = sender as Control;
previouspoint = e.Location;
Cursor = Cursors.Hand;
}
حالا متناسب با نیازتون از این کد ها و مثال ها استفاده کنید.
در مورد جدول من که می گم مثل همین لیبلی که من ساختم شما دیتاگرید بزارید و مقادیرشو پر کنید و روی فرم بندازید.
حالا اگه دوست داشتید اون لیبل (header) یا اون سر صفحه دیتا گرید باشه یا نه اونم میتونید با یه خط کد جذف کنید.
بازم میگم همه چی بر میگرده به خودتون منم به نوبعی از خودم کمک کردم.