none
VS2010 Изображение RRS feed

  • Вопрос

  • Есть  TabControl с 2 вкладками и 2 изображения - по одному на каждой вкладке. Код одинаков для каждого изображения  Когда я открываю форму, на первой вкладке (которая открывается вместе с формой) изображение есть,  перехожу на вторую - изображения нет. Если я перехожу потом на первую вкладку а потом опять на вторую - изображение есть! Как сделать, чтобы при первом переходе на вторую вкладку изображение было?
    5 июля 2011 г. 19:40

Ответы

  • Достаточно странное поведение, попробуйте просто в Form_Load для двух pictureBox-ов задать изображения с жесткого диска и посмотреть будет ли в этом случае отображатся второе изображение. Например:

     pictureBox1.Image = Bitmap.FromFile("D:\\Desert.jpg");
     pictureBox2.Image = Bitmap.FromFile("D:\\Penguins.jpg");
    

    Также попробуйте в событии tabPage2_Enter принудительно перерисовать pictureBox:

     pictureBox2.Invalidate();
     // или
     pictureBox2.Refresh();
    

    Еще в том же Form_Load можно попытаться вызвать tab_Page2.Show(), чтобы форсировать отрисовку изображения в pictureBox

     


    Для связи [mail]



    • Помечено в качестве ответа kgnalex 6 июля 2011 г. 15:09
    6 июля 2011 г. 11:08

Все ответы

  • Здравствуйте.

    В чем вы размещаете изображения, в PictureBox? Когда происходит загрузка изображения, в момент открытия таба или в момент открытия формы, или еще когда-нибудь? Откуда берутся изображения?


    Для связи [mail]
  • Изображения размещаются в  PictureBox, берутся из таблицы, кот. расположена в базе Access. А вот как определить, в какой момент загружаются изображения? Оба прописаны в событии Form_Load. Но одно (кот. видно)- в PictureBox на первой вкладке, а другое (кот. не видно)- в PictureBox на второй. Даже если изображения берутся из одного файла (путь к нему указан в таблице Access), то первое видно, а второе - нет. Даже если загрузку второго изображения прописать в событии Tab2_Enter или Tab2_Click - результат тот же.
  • Достаточно странное поведение, попробуйте просто в Form_Load для двух pictureBox-ов задать изображения с жесткого диска и посмотреть будет ли в этом случае отображатся второе изображение. Например:

     pictureBox1.Image = Bitmap.FromFile("D:\\Desert.jpg");
     pictureBox2.Image = Bitmap.FromFile("D:\\Penguins.jpg");
    

    Также попробуйте в событии tabPage2_Enter принудительно перерисовать pictureBox:

     pictureBox2.Invalidate();
     // или
     pictureBox2.Refresh();
    

    Еще в том же Form_Load можно попытаться вызвать tab_Page2.Show(), чтобы форсировать отрисовку изображения в pictureBox

     


    Для связи [mail]



    • Помечено в качестве ответа kgnalex 6 июля 2011 г. 15:09
    6 июля 2011 г. 11:08