Tôi đang cố gắng thêm hình động động vào biểu mẫu C# win32 cho một ứng dụng chất lượng gần như sản xuất mà tôi đang cố gắng xây dựng và tôi đã giảm xuống khá nhiều.Làm cách nào để tạo hình ảnh động bằng nút bấm?
Sự cố tôi đang gặp phải là tôi dường như không thể thêm hình tượng hoặc điều khiển vào biểu mẫu động, trong một phương thức. Tôi đã thêm chúng vào biểu mẫu thông qua phương thức khởi tạo Form1, nhưng nếu tôi thêm điều khiển vào, ví dụ, phương thức button_click, nó sẽ không thêm chúng trừ khi tôi có vùng chứa bảng và gõ panel1.Controls.Add (stuff) . Nhưng, sau đó hình tượng xuất hiện ở một vị trí hoàn toàn khác so với dự định - và rõ ràng là, chính bảng điều khiển. Hầu hết các hình ảnh bị chặn bởi bảng điều khiển, và một phần của nó là-outide- bảng điều khiển. Tôi không biết chuyện gì đang xảy ra.
Dưới đây là đoạn code tôi đang sử dụng mà tôi đã học trực tuyến để thêm pictureboxes, trong một phương pháp nút bấm:
PictureBox pb = new PictureBox();
pb.Size = new Size(this.Size.Width/14, this.Size.Width/12); //I use this picturebox simply to debug and see if I can create a single picturebox, and that way I can tell if something goes wrong with my array of pictureboxes. Thus far however, neither are working.
pb.BackgroundImage = Properties.Resources.cardback;
pb.BackgroundImageLayout = ImageLayout.Stretch;
pb.Location = new Point(50, 50);
pb.Anchor = AnchorStyles.Left;
pb.Visible = true;
InitializeComponent();
this.Controls.Add(pb);
PictureBox[] pbName = new PictureBox[totaldeckcount];
for (int i = 0; i < totaldeckcount; i++)
{
pbName[i] = new PictureBox();
pbName[i].Size = new Size(this.Size.Width/14, this.Size.Width/12);
pbName[i].BackgroundImage = Properties.Resources.cardback;
pbName[i].BackgroundImageLayout = ImageLayout.Stretch;
pbName[i].Image = Properties.Resources.cardback;
pbName[i].Anchor = AnchorStyles.Left;
pbName[i].Visible = true;
int x = 0;
int y = 15;
if (i > 10)
{
y += (int)((this.Size.Height * i) + 30);
}
x = (int)((this.Size.Width/12) * Math.IEEERemainder(i, 10));
pbName[i].Location = new Point(x, y);
this.Controls.Add(pbName[i]);
}
Cardback là một kết cấu làm việc, tôi đã nhìn thấy điều bật lên khi tôi cố gắng tạo ra một hình tượng với nó trong phương thức Form1, vì vậy đó không phải là vấn đề. Vấn đề không xuất hiện - là cú pháp của tôi, vì tôi có thể sao chép mã số
PictureBox pb = new PictureBox();
trực tiếp vào phương thức Form1 và nó được thực hiện tốt.
Tôi không thể tìm thấy bất kỳ thứ gì trực tuyến qua google và điều này khiến tôi hoàn toàn bối rối.
Xóa lệnh gọi 'InitializeComponent();' bên trong vòng lặp 'for'. – keyboardP
Và xóa 'pbName [i] .Parent = this;' –
@keyboardP Không có súc sắc, cùng một kết quả. Lý do duy nhất nó ở trong đó một vài lần là bởi vì tôi đã cố gắng để làm cho nó khởi tạo các pictureboxes, haha; nhưng loại bỏ một trong vòng lặp đã không làm gì, cùng một kết quả. Không có gì xuất hiện trên nút bấm. – Codefun64