Как разместить в окне таблицу строковых значений? - Visual Basic .NET

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

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

Всем здравствуйте. Есть проинициализированный различными значениями двухмерный массив строк s(23,27). Нужно отобразить его содержимое в графическом окне. Делаю так: 1) рисую графический файл с сеткой, присваиваю его свойству Image PictureBox - это подложка. 2) создаю массив меток lbl(23,27) с прозрачным фоном, задаю позицию, размеры этих меток ну и ряд других свойств (шрифт, выравнивание, цвет чернил,...). 3) добавляю этот массив меток в коллекцию PictureBox. 4) инициализирую метки соответствующими значениями из строкового массива s(23,27). Проблема: на офисном компьютере (два ядра по 2,6 GHz, 2 Gb памяти, встроенное видео) картинка появляется с неприятной "анимацией". В течение 1-2 секунд я вижу построчную прорисовку хотя и в ускоренном режиме. На серьёзном компьютере картинка просто быстро, но неприятно мигает. До этого в программе, написанной на VB-6 создание первого ряда из 27 меток производилось в дизайнере и затем этот ряд меток повторялся уже в runtime (Load) ещё 23 раза. Также использовался PictureBox с картинкой сетки (подложкой). Ничего не моргало и мгновенно отображалось даже на Pentium 100 c 128 Mб ОЗУ! Как избавиться от неприятного мигания при создании и размещении меток? (Использование именно Label для отображения значений обуславливается наличием в них таких свойств как выравнивание, смена цвета чернил без смены текста (выделение цветом) ,наличие обработчика события MouseClick)

Решение задачи: «Как разместить в окне таблицу строковых значений?»

textual
Листинг программы
Private Sub SetDoubleBuffered(ByVal obj As Control, ByVal setting As Boolean)
        Dim dgvType As Type = obj.GetType
        Dim pi As System.Reflection.PropertyInfo = dgvType.GetProperty("DoubleBuffered", Reflection.BindingFlags.Instance + Reflection.BindingFlags.NonPublic)
        pi.SetValue(obj, setting, Nothing)
    End Sub

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

10   голосов , оценка 3.7 из 5
Похожие ответы