我在显示面板内的项目时遇到问题,这是附加到数据流布局,面板有标签,文本框,按钮,复选框和图像,当我运行程序时,只有图像显示消失,即使我已经设置了面板中的每个控件,面板都是从数据流布局控件内的数据库循环,当我尝试更改面板的大小时,没有任何显示。
我只是希望有人指出正确的方向,感谢任何帮助
谢谢
我所做的远远不够:
foreach ("looped according to the database")
{
Panel pan = new Panel();
PictureBox img = new PictureBox();
Button btn = new Button();
Label house = new Label();
TextBox Street = new TextBox();
CheckBox check = new CheckBox();
pan.Location = new Point();
pan.Size = new System.Drawing.Size();
MemoryStream ms = new MemoryStream();
img .Image = Image.FromStream(ms);
img .Tag = Product.ID;
img .SizeMode = PictureBoxSizeMode.StretchImage;
img .Location = new System.Drawing.Point();
img .Size = new System.Drawing.Size();
img .TabIndex = 0;
house .Text = Product.Name;
house .Location = new System.Drawing.Point();
house .Size = new System.Drawing.Size();
house .AutoSize = true;
house .TabIndex = 1;
Street.Location = new System.Drawing.Point();
Street.Size = new System.Drawing.Size();
Street.TabIndex = 2;
btn.Text = "info";
btn.Size = new System.Drawing.Size();
btn.Location = new System.Drawing.Point();
btn.ForeColor = Color.Green;
btn.TabIndex = 2;
pan.Controls.Add(img);
pan.Controls.Add(check);
pan.Controls.Add(House);
pan .Controls.Add(Street);
pan.Controls.Add(btn);
this.ProductsFlowPanel.Controls.Add(pan);
}
}
我正在努力实现与此类似的东西; image
答案 0 :(得分:0)
我发现了一些事情,
您在开始时创建的面板对象将在第10行和第11行重新分配:
Panel pan = new Panel();
...
pan = new Point(); //probably remove this
pan = new System.Drawing.Size(); //and this
此外,所有控件的大小和位置只是空点和大小,例如:
img .Location = new System.Drawing.Point();
img .Size = new System.Drawing.Size();
应该更像这样:
img .Location = new System.Drawing.Point(10,10);
img .Size = new System.Drawing.Size(50,50);
答案 1 :(得分:0)
好的,你的代码中有些东西肯定是错的。我不知道是否会导致问题,但这是你要求的方向。
语法:something x = new something();
用于创建something
此前提条件是something()
类应该可以访问。
现在让我们分解something x;
< - 这声明something
为x
x = new something()
< - 这会向x
对象发起something
。
您在代码中执行的操作是:
Panel pan = new Panel(); //pan is now an object of `Panel()` class.
pan = new Point(); //pan is now an object of `Point()` class.
pan = new System.Drawing.Size(); //pan is now an object of `System.Drawing.Size()` class.
现在,在C#中,接受了最后一个声明。所以基本上,pan
不再是Panel
类的对象。这意味着你的面板逻辑不会起作用。
我注意到的另一件事是所有控件的大小和位置都只是空点和大小。
应该是这样的:
img .Location = new System.Drawing.Point(50,50);
img .Size = new System.Drawing.Size(100,100);
希望这会有所帮助:)