El botón no quiere dejar de ser visible.
Entonces, estoy tratando de hacer una aplicación simple de captura de pantalla en Windows Forms, pero me gustaría que mi botón desaparezca cada vez que tomo una captura. Desafortunadamente, no quiere ser invisible, incluso después de establecer Visible en false:
public Form1()
{
InitializeComponent();
this.BackColor = Color.Red;
this.TransparencyKey = BackColor;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
}
Image tmp = Image.FromFile("C:/Users/Bartek/source/repos/Hadr/Hadr/Image/image.png");
private void button1_Click_1(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(tmp.Width, tmp.Height);
Graphics g = Graphics.FromImage(bmp);
button1.Visible = false;
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
pictureBox1.Image = bmp;
bmp.Save("C:/Folder/image1.png", System.Drawing.Imaging.ImageFormat.Png);
}
He establecido el acoplamiento (dock) en el PictureBox para que ocupe todo el espacio, y coloqué el botón de la forma que se muestra en la pantalla:
Amablemente solicito ayuda.
davy.ai
Parece que establecer la visibilidad del botón en falso en el evento
button1_Click_1
no está funcionando. Una posible solución sería utilizar unTimer
para retrasar el cambio de visibilidad. Aquí tienes un código de ejemplo:En este ejemplo, utilizamos un
Timer
para retrasar el cambio de visibilidad del botón. Configuramos el temporizador en el constructor y lo iniciamos en el eventoOnLoad
. También nos suscribimos al eventoTick
para manejar el cambio de visibilidad. Cuando se hace clic en el botón, iniciamos el temporizador y continuamos con la lógica de captura de pantalla. Cuando el temporizador alcanza el tiempo establecido, lo detenemos y ocultamos el botón. Esto debería funcionar y el botón debería desaparecer después de un retraso.