Скрытие развёрнутого пункта 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д