в C # захвата экрана выберите без каких-либо элементов управления в основной программе - PullRequest
0 голосов
/ 03 июня 2018

Привет, я создал программу для захвата области выбора.

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

вот какой код я использую прозрачным и сделать самый верхний

private void Form1_Load(object sender, EventArgs e)
{
    timer1.Interval = (1000/30);
    timer1.Start();
    TransparencyKey = Color.LightBlue;
    BackColor = Color.LightBlue;

    FormBorderStyle = FormBorderStyle.None;
    DoubleBuffered = true;
    SetStyle(ControlStyles.ResizeRedraw, true);

    TopMost = true;
}

Вы можете выбрать нужную область путем перетаскивания или изменения размера формы. Я рисую прямоугольник для границы.

Я использую таймер, поэтому при запуске программы начинаем захватывать, пока пользователь не закроет программу

.проблема его захвата также элементы управления, такие как кнопка у меня в центре

это я хочу скрыть, я нашел решение, чтобы скрыть, прежде чем сделать захват и показать снова эту работу хорошо, но он мигаетвсе элементы управления, и это причиняет боль в глазах, вот пример, когда делают захват

private void timer1_Tick(object sender, EventArgs e)
{
    Opacity   = 0.0;                                // hide form
    var image = CaptureDesktopSize(Cam);            // capture 
    pictureBox1.Image = image; 
    image.Save(@"C:/data/V.png", ImageFormat.Png);
    Opacity = 1.0;                                  // show form
}

, есть способ сделать это, чтобы скрыть элементы управления, которые я не хочуt

я работаю с C #

большое спасибо за этот мой первый вопрос :) я новый пользователь

вот еще один скриншот, чтобы понять, что я имею в виду

введите описание изображения здесь

...