Скрытие развёрнутого пункта menuStrip - C#

Узнай цену своей работы

Формулировка задачи:

Работаю в Visual studio 2010 в Windows Forms. http://ib2.keep4u.ru/s/2013/04/23/d4...07d49dd50c.jpg Вот такая вот картинка. Когда нажимаю на "Сделать скриншот" происходит запись изображенного ниже графика(построенного на SimpleOpenGlControll) в bitmap объект, а потом запись этого объекта в массив. Всё это время, пока происходят вышеуказанные действия не скрывается менюшка открытая пунктом записи, и соответственно, изображение записанное в битмап записывается вместе с попавшимся куском менюшки. http://ib2.keep4u.ru/s/2013/04/23/76...f0b8dab05a.jpg Вопрос: Как мне организовать: 1)Либо принудительное закрытие менюшки перед записью обьекта в bitmap; 2)Либо подождать пока менюшка сама закроется и после этого начать запись. Пробовал: 1) изменять свойство Visible этого элемента на 'False" на время выполнения метода; 2) искать события скрытия менюшки, ненашёл. Ниже привожу код записи в битмап(на случай если я ничего не понимаю и всё дело в нём):
 private Bitmap GetBitmap()
        {
            Gl.glFlush();
            Bitmap bitmap = new Bitmap(AnT.Width, AnT.Height);
            BitmapData bitmapData = bitmap.LockBits(
                new Rectangle(0, 0, bitmap.Width, bitmap.Height),
                ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);
            Gl.glReadBuffer(Gl.GL_FRONT);
            Gl.glReadPixels(0, 0, bitmap.Width, bitmap.Height,
                Gl.GL_BGR_EXT, Gl.GL_UNSIGNED_BYTE, bitmapData.Scan0);
            bitmap.UnlockBits(bitmapData);
            bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
            return bitmap;
        }
private void SaveOpenGlPole (bool i)
        {
            string str, str1, str2, str3;
            
            image = GetBitmap();
            str1 = "c:\\Изображение № ";
            str2 = number_image.ToString();
            str3 = ".gif";
            str = str1 + str2 + str3;
            image_rec[number_image] = image;
            image_rec_str[number_str_image] = str;
            number_str_image++;
            number_image++; 
        }
private void сделатьСкриншотToolStripMenuItem_Click(object sender, EventArgs e)
        {
            записьToolStripMenuItem.Visible = false;
            SaveOpenGlPole(true);
            записьToolStripMenuItem.Visible = true;
        }
Очень надеюсь на вашу помощь.
Архив с программой, на всякий случай, если я непонятно объяснил. http://rghost.ru/45496022

Решение задачи: «Скрытие развёрнутого пункта menuStrip»

textual
Листинг программы
private void сделатьСкриншотToolStripMenuItem_Click(object sender, EventArgs e)
        {           
            Skrin();            
        }
        private void Skrin()
        { System.Threading.Thread.Sleep(3000); SaveOpenGlPole(true); }
 
        private void SaveOpenGlPole(bool i)
        {
            string str, str1, str2, str3;
 
            image = GetBitmap();
            str1 = "c:\\Изображение № ";
            str2 = number_image.ToString();
            str3 = ".gif";
            str = str1 + str2 + str3;
            image_rec[number_image] = image;
            image_rec_str[number_str_image] = str;
            number_str_image++;
            number_image++;
        }
 
        private Bitmap GetBitmap()
        {
            Gl.glFlush();
            Bitmap bitmap = new Bitmap(AnT.Width, AnT.Height);
            BitmapData bitmapData = bitmap.LockBits(
                new Rectangle(0, 0, bitmap.Width, bitmap.Height),
                ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);
            Gl.glReadBuffer(Gl.GL_FRONT);
            Gl.glReadPixels(0, 0, bitmap.Width, bitmap.Height,
                Gl.GL_BGR_EXT, Gl.GL_UNSIGNED_BYTE, bitmapData.Scan0);
            bitmap.UnlockBits(bitmapData);
            bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
            return bitmap;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.444 из 5