Bir panelde görüntü kutularını sürükleyip bırakması gereken bir uygulama uyguluyorum. Resim kutuları dinamik olarak programdan eklenir ve böylece autoscroll özelliğini panelde true olarak ayarladım. Panelin alt tarafındaki kutuları sürükledim, panelin boyutu azaldı. Panelde autosize özelliğini yanlış yerleştirdim. Panel başka bir panele yerleştirildi. Çalışma zamanında panelin boyutunu ayarlamak istiyorum. bu.Panelin boyutunu dinamik olarak değiştirin
public form1(int[,] dummy, int columnSize, int rowSize)
{
this.dummy= dummy;
numOfColumns = columnSize;
numOfRows = rowSize;
getData();
addIds = addIdArray;
data = mylist;
InitializeComponent();
//panel1.MinimumSize = new Size(columnSize * 40, rowSize * 40);
//panel1.Height = rowSize * 40;
//panel1.Width = columnSize * 40;
//panel4.Height = rowSize * 40;
//panel4.Width = columnSize * 40;
int x, y;
Structures.EmptyRectSpace space = new Structures.EmptyRectSpace();
for (int i = 0; i < data.Count; i++)// set picture boxes
{
space = (Structures.EmptyRectSpace)data[i];
x = space.startingJ;
y = space.startingI;
int h, w;
h = space.length;
w = space.width;
p = new PictureBox();
p.Width = w * 40;
p.Height = h * 40;
p.BackColor = Color.DarkGreen;
p.Image = Properties.Resources.v;
p.BorderStyle = BorderStyle.FixedSingle;
p.Name = addIdArray[i].ToString();
p.Location = new Point((x + 1 - w) * 40, (y + 1 - h) * 40);
this.panel1.Controls.Add(p);
}
foreach (Control c in this.panel1.Controls)
{
if (c is PictureBox)
{
c.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
}
}
this.panel1.DragOver += new System.Windows.Forms.DragEventHandler(this.panel1_DragOver);
panel1.DragOver += new DragEventHandler(panel1_DragOver);
panel1.DragDrop += new DragEventHandler(panel1_DragDrop);
panel1.AllowDrop = true;
panel2.AllowDrop = true;
foreach (Control c in this.panel2.Controls)
{
c.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
}
this.panel2.DragOver += new System.Windows.Forms.DragEventHandler(this.panel2_DragOver);
panel2.DragOver += new DragEventHandler(panel2_DragOver);
panel2.DragDrop += new DragEventHandler(panel2_DragDrop);
}
Bu, panel içeren formun yapıcısıdır. Yüklendiğinde panele resim kutuları eklenmeli ve orada sürükle bırak paneli uygulanmalıdır.
bana yardım eli verin ..
Web, WinForm veya WCF/Silverlight mı? Kullandığınız gerçek kontrol sınıfı nedir? Boyutu sadece bir kez ayarlamak istediğini mi söylüyorsun? – Blanthor
Çok uygun bir soru! Bunun Windows Formun'unda olduğunu farz ettim ... –
Birkaç öneri: Uygulama öğütücünüzün ilk öğelerini (* int [,] dummy, int columnSize, int rowSize *) taşıyın ve başlatmanızın ve çalışmanızın * tümünü yapın * 'InitializeComponent()' - aksi halde, verilerinizin bir kısmı geçersiz verilerle başlıyor olabilir. – jp2code