Репликация Windows 7 «добавить устройство» диалоговое окно в C # - PullRequest
2 голосов
/ 29 ноября 2011

Я пытаюсь воспроизвести диалоговое окно «Добавить устройство» (из-за своей репутации я не могу прикрепить изображение, просто зайдите в «Устройства и принтеры» и нажмите Добавить устройство ") из Windows 7 в C #, а точнее, в виде элемента управления" ListView ". Есть ли какой-либо элемент управления в .NET Framework, который позволил бы мне сделать список элементов со значком слева и текстом на правильно?

В худшем случае я просто переопределю метод рисования ListView.

1 Ответ

0 голосов
/ 29 ноября 2011

Ну, нашел ответ. Это было намного проще, чем я думал. Я не понимал, как в режиме «Плитка» рисуются предметы. Итак, я только что сделал небольшой метод DrawItem.

Это работает для меня, но потребуется модификация для любых других проектов.

    private void Devices_DrawItem(object sender, DrawListViewItemEventArgs e)
    {

        e.DrawBackground();

        // Get the device image, changes depending of it's status.
        Image DeviceIcon = Devices.LargeImageList.Images[e.Item.ImageIndex];

        // Draw the device image.
        e.Graphics.DrawImage(DeviceIcon, e.Bounds.Left, e.Bounds.Top);

        // Draw the device name.
        e.Graphics.DrawString(e.Item.Text, new Font(Devices.Font, Devices.Font.Style | FontStyle.Bold), SystemBrushes.ControlText, e.Bounds.Left + DeviceIcon.Width + 5, e.Bounds.Top + 3);

        // Draw the device type.
        e.Graphics.DrawString(e.Item.SubItems[1].Text, Devices.Font, SystemBrushes.ControlText, e.Bounds.Left + DeviceIcon.Width + 5, e.Bounds.Top + 18);

        // Draw the device port.
        e.Graphics.DrawString(e.Item.SubItems[2].Text, Devices.Font, SystemBrushes.ControlText, e.Bounds.Left + DeviceIcon.Width + 5, e.Bounds.Top + 33);

        e.DrawFocusRectangle();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...