Winforms UserControl показывает прямоугольники с инвертированными цветами - PullRequest
0 голосов
/ 27 апреля 2009

В приложении Winforms (C # 2, FX2.0, VC2008) я использую производный от Panel элемент управления для отображения пользовательских элементов управления. Элементы управления расположены вертикально, и в видимой области панели их обычно больше, чем уместно.

Я нарисовал небольшой набросок:

Панель http://www.ericschaefer.org/Panel.png

Иногда (обычно после прокрутки внутри панели) прямоугольные области имеют инвертированные цвета (зеленая часть на эскизе). Эти области являются случайными по размеру, но, кажется, всегда находятся на правом краю панели. Как вы можете видеть на эскизе, кнопки со стрелками на панели прокрутки панелей также инвертированы, но не ползунок и область прокрутки.

Под инвертированными цветами я имею в виду, что черный становится белым, белый становится черным, синий становится коричневым и т. Д. *

У меня нет идей.

  • Может ли это быть вызвано моим приложением?
  • Можно ли даже рисовать на кнопках со стрелками полосы прокрутки?
  • Есть идеи?

РЕДАКТИРОВАТЬ : " Снимок экрана "

РЕДАКТИРОВАТЬ : Я был неправ насчет панели. В прошлом это была Panel, но теперь это UserControl. Как это:

public class MyPanel : UserControl
{
    public MyPanel()
    {
        DoubleBuffered = true;
        BorderStyle = BorderStyle.Fixed3D;
        BackColor = Color.DarkBlue;
        VScroll = true;
        HScroll = false;
        AutoScroll = true;
        AutoScrollMargin = new Size( 0, 4 );
    }
}        

Ответы [ 3 ]

1 голос
/ 27 апреля 2009

На вашей фотографии это выглядит так, как будто что-то подсвечено, но граница не совпадает ни с одним видимым элементом управления.

Есть ли у вас элемент управления, который как-то спрятан за остальными?

1 голос
/ 27 апреля 2009

Вы используете System.Windows.Forms.Panel? Что вы имели в виду, когда сказали, что Panel получила контроль?

Если вы используете System.Windows.Forms.Panel, то это похоже на проблему с пользовательским элементом управления, а не с панелью.

Не могли бы вы предоставить больше информации о пользовательском элементе управления, если это возможно?

0 голосов
/ 12 мая 2009

Решено: Видимо это была вина драйвера сенсорного экрана. Теперь я могу воспроизвести поведение. Если вы нажмете кнопку «прокрутка вниз» на любой полосе прокрутки на сенсорном экране и удерживаете ее нажатой некоторое время, она продолжает прокручиваться после отпускания (кнопка остается нажатой). После этого вы можете нажимать там, где хотите, в левой части полосы прокрутки всегда будут «перевернутые цвета». Это происходит с любым приложением (explorer.exe!). Теперь это стало еще лучше: обычно в Windows, если вы перетаскиваете кнопку большого пальца полосы прокрутки, вы можете отойти от полосы прокрутки, если удерживать кнопку мыши нажатой. Но если вы уйдете слишком далеко, кнопка вернется в исходное положение (с которого вы начали перетаскивать). Попытайся! Прямоугольники с перевернутыми цветами имеют такую ​​же ширину, как и область, где вы можете дрейфовать без нажатия кнопки назад. Я даже не пытаюсь понять это. Мы установили новый драйвер для сенсорного экрана, который не продолжает прокручиваться даже после того, как вы отпустили кнопку «прокрутка вниз» и проблема исчезла. Мое кровяное давление возвращается к норме, но все седые волосы, вероятно, не темнеют, я думаю ... В любом случае, спасибо ...

...