У меня проблема с использованием пользовательских компонентов во время выполнения.У меня есть этот пользовательский компонент FlowLayoutPanel:
public partial class UserControl1 : System.Windows.Forms.FlowLayoutPanel
{
[Browsable(false)]
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20;
return cp;
}
}
protected override void OnPaintBackground(PaintEventArgs e){}
public UserControl1(){}
}
ничего сложного в этом нет.Все, что он делает, это делает фон прозрачным.
Я добавил этот компонент в свою панель инструментов, используя его dll, и он прекрасно работает, когда я перетаскиваю его в форму.Проблема в том, что я не могу добавить его программно во время выполнения.
Когда я запускаю приведенный ниже код, он должен нарисовать картинку поверх моего пользовательского FlowLayoutControl.Но, к сожалению, он ничего не делает.
Пользовательский компонент находится в пространстве имен WindowsFormsControlLibrary1.
namespace MyFilm_v2._0
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
UserControl1 test = new UserControl1();
test.BackColor = Color.Transparent;
test.Location = new Point(0, 110);
test.Width = 660;
test.Height = 478;
PictureBox b = new PictureBox();
b.Location = new Point(100, 100);
b.Width = 320;
b.Height = 475;
b.Image = Properties.Resources.movie;
this.Controls.Add(b);
//this.customScrollbar1.Minimum = 0;
//this.customScrollbar1.Maximum = test.DisplayRectangle.Height;
//this.customScrollbar1.LargeChange = customScrollbar1.Maximum / customScrollbar1.Height + test.Height;
//this.customScrollbar1.SmallChange = 15;//when click the arrows
//this.customScrollbar1.Value = Math.Abs(test.AutoScrollPosition.Y);
}
....