#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 () так что это моя рекомендация.