Как я могу удалить кнопку моей формы при переходе к предварительному просмотру

#c# #mysql #printing

#c# #mysql #печать

Вопрос:

Привет, ребята, хорошего вечера вам … как я могу удалить кнопку 6 из моего предварительного просмотра? я не имею ни малейшего представления, даже когда я ложно определяю видимость кнопки6 предварительный просмотр платежной ведомости
ЗАПУЩЕННАЯ ФОРМА

     Bitmap bitmap;
    private void CaptureScreen()
    {
        Graphics myGraphics = this.CreateGraphics();
        Size s = this.Size;
        bitmap = new Bitmap(s.Width, s.Height, myGraphics);
        Graphics memoryGraphics = Graphics.FromImage(bitmap);
        memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
    }
        private void button6_Click(object sender, EventArgs e)
    {
        Panel panel = new Panel();
        this.Controls.Add(panel);
        Graphics grp = panel.CreateGraphics();
        Size formSize = this.ClientSize;
        bitmap = new Bitmap(formSize.Width, formSize.Height, grp);
        grp = Graphics.FromImage(bitmap);
        Point panelLocation = PointToScreen(panel.Location);
        grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize);
        printPreviewDialog1.Document = printDocument1;
        printPreviewDialog1.PrintPreviewControl.Zoom = 1;
        printPreviewDialog1.ShowDialog();



    }

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(bitmap, 0, 0);
    }

}
  

}
//CODE

Комментарии:

1. Установите жизнеспособность кнопки = 0

2. где сэр @Brad

Ответ №1:

     private void button6_Click(object sender, EventArgs e)
    {
        button6.Visible = false;//add here
        Panel panel = new Panel();
        this.Controls.Add(panel);
        Graphics grp = panel.CreateGraphics();
        Size formSize = this.ClientSize;
        bitmap = new Bitmap(formSize.Width, formSize.Height, grp);
        grp = Graphics.FromImage(bitmap);
        Point panelLocation = PointToScreen(panel.Location);
        grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize);
        printPreviewDialog1.Document = printDocument1;
        printPreviewDialog1.PrintPreviewControl.Zoom = 1;
        printPreviewDialog1.ShowDialog();
    }

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(bitmap, 0, 0);
    }

    private void printPreviewDialog1_FormClosed(object sender, FormClosedEventArgs e)
    {
        button6.Visible = true;//this is to enable button after closing print screen 
    }
  

Комментарии:

1. Пожалуйста, добавьте какое-нибудь описание

2. @Karthi M button6 все еще отображается в предварительном просмотре

3. он все еще существует в предварительном просмотре печати, даже когда я false : (

4. Просто добавьте перед захватом экрана такой же, как у меня.. У меня это работает

Ответ №2:

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

В вашем обработчике события button6_Click вы начинаете со строк:

 button6.Visible = false;
Application.DoEvents();
  

Метод DoEvents () запускает принудительно события в очереди событий. Это потому, что вы работаете в потоке пользовательского интерфейса. Я бы не рекомендовал вам переносить операцию копирования в другой поток, но другим способом было бы запустить таймер пользовательского интерфейса (находится в разделе Компоненты в меню Сервис) и установить время ожидания этого таймера на несколько мс. Затем вы можете выполнить операцию копирования там. Но самое простое решение — просто добавить приложение.DoEvents () так что это моя рекомендация.