Подтвердить что ты не робот

Отобразить изображение в С#

Я хочу отображать изображения с помощью С# с помощью PictureBox. Я создал класс, который содержит a PictureBox и таймер. но при создании объекта из этого ничего не отображается.

что мне делать?

Я правильно использую таймер1?

Вот мой код:

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        c1 c = new c1();
        c.create_move(1);
    }

}

class c1 {

    PictureBox p = new PictureBox();
    Timer timer1 = new Timer();

    public void create_move(int i){

        p.ImageLocation = "1.png";
        p.Location = new Point(50, 50 + (i - 1) * 50);

        timer1.Start();
        timer1.Interval = 15;
        timer1.Tick += new EventHandler(timer_Tick);
    }


    private int k = 0;
    void timer_Tick(object sender, EventArgs e)
    {
         // some code. this part work outside the class c1 properly.
         ...

    }
4b9b3361

Ответ 1

Вам нужно добавить окно изображения в Form. Ознакомьтесь с методом Form.Controls.Add().

Ответ 2

Это потому, что ваши изображения не добавлены в текущую форму.

У вас есть свойство Form.Controls, которое имеет метод Add().

Ответ 3

Убедитесь, что включен Timer. Возможно, вам придется сделать timer1.Enabled = true;, прежде чем вы вызовете метод Start().

Ответ 4

Прежде всего - вам нужно будет добавить pictureBox в форму, если вы хотите, чтобы они отображались. В любом случае - я бы попытался/рекомендовал создать userControl. Добавьте PictureBox в новый элемент управления и TimerControl.

public partial class MovieControl : UserControl
{
    // PictureBox and Timer added in designer!

    public MovieControl()
    {
        InitializeComponent();
    }

    public void CreateMovie(int i)
    {
        pictureBox1.ImageLocation = "1.png";
        pictureBox1.Location = new Point(50, 50 + (i - 1) * 50);

        // set Interval BEFORE starting timer!
        timer1.Interval = 15;
        timer1.Start();
        timer1.Tick += new EventHandler(timer1_Tick);
    }

    void timer1_Tick(object sender, EventArgs e)
    {
        // some code. this part work outside 
    }
}

Добавьте этот новый элемент управления в коллекцию forms.controls и его!

class Form1
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MovieControl mc = new MovieControl();
        mc.CreateMovie(1);
        this.Controls.Add(mc); /// VITAL!!
    }
}