我在C#中在运行时将一个PictureBox添加到Form中,它确实有效(我认为)。唯一的问题是我无法从外部或从方法内部更改PictureBox的属性,例如。我甚至无法改变BackColor。
这是我的尝试:
import cv2
import numpy
img = cv2.imread('thresh.png')
edges = cv2.Canny(img, 50, 150, apertureSize=3)
minLineLength = 0
maxLineGap = 5
lines = cv2.HoughLinesP(edges, 1, numpy.pi / 180, 100, minLineLength, maxLineGap)
for x in range(len(lines)):
for x1, y1, x2, y2 in lines[x]:
cv2.line(img, (x1, y1), (x2, y2), (0, 0, 0), 2)
cv2.imwrite('houghlines3.jpg', img)
PictureBox现在应该填满整个表格,并且背景为红色,但它不起作用。
另外,如何公开添加PictureBox"#34;所以我可以从另一种方法改变属性吗?
我试过这样:
private void Form1_Load(object sender, EventArgs e)
{
PictureBox canvas = new PictureBox();
canvas.Dock = DockStyle.Fill;
canvas.BackColor = Color.Red;
}
答案 0 :(得分:0)
这是一个好的开始:
PictureBox canvas = new PictureBox
{
Dock = DockStyle.Fill,
BackColor = Color.Red
};
private void button1_Click(object sender, EventArgs e)
{
canvas.BackColor = Color.Red;
}
但您必须将该框添加到表单中:
private void Form1_Load(object sender, EventArgs e)
{
this.Controls.Add(canvas);
}
一旦按预期工作,您应该像canvas
那样调用_canvas
字段,因为这是此类(表单)的私有字段。