Я сделал кнопку печати в своей программе, и мои намерения состоят в том, чтобы печатать различные строки и столбцы с текстом, изображениями и содержимым переменных.Печать содержимого переменных с использованием графического метода
Я просмотрел метод Graphics и выполнил тест, показанный в приведенном ниже коде. Я получил некоторые переменные, определенные в другом методе, и я хочу напечатать содержимое этих переменных рядом со строкой. Может ли кто-нибудь руководствоваться этим, используя графический метод?
private void btn_print_Click(object sender, RoutedEventArgs e)
{
try
{
PrintDocument pd = new PrintDocument();
pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1169);
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
pd.Print();
}
catch (Exception ex)
{
MessageBox.Show("An error occurred while printing", ex.ToString());
}
}
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
String drawString = "Test";
e.Graphics.DrawString(drawString, new Font("Verdana", 14), new SolidBrush(System.Drawing.Color.Black), 20,20);
}
Вот код кнопки, определяющего переменные:
private void btn_calculate_Click(object sender, RoutedEventArgs e)
{
int aa = Int32.Parse(tb_windvelocity.Text);
int bb = Int32.Parse(tb_height.Text);
int cc = Int32.Parse(tb_area.Text);
int dd = Int32.Parse(tb_sc.Text);
double ee = Math.Sin((Int32.Parse(tb_angle.Text)) * (Math.PI/180));
double g = 0;
if (this.cb_gust.SelectedItem==cb_gust1)
{
g = 3;
}
else if(this.cb_gust.SelectedItem == cb_gust2)
{
g = 15;
}
double ff = 5.73 * (Math.Pow(10,-2)) * (Math.Sqrt(1 + (0.15 * aa)));
double gg = aa * (1 + (ff * (Math.Log(bb/10))));
double hh = 0.06 * (1 + (0.043 * aa)) * Math.Pow((bb/10), (-0.22));
double ii = gg * (1 - (0.41 * hh * Math.Log(g/3600)));
double jj1 = (0.5 * 1.225 * dd * cc * Math.Pow(ii, 2) * ee)/1000;
double jj2 = (0.5 * 1.225 * dd * Math.Pow(ii, 2) * ee)/1000;
lbl_windaction1.Content = Math.Round(jj1,2);
lbl_windaction2.Content = Math.Round(jj2,2);
}
Вы не можете получить доступ к локальным переменным__ из любого другого метода, независимо от того, с какой целью. Поэтому самое простое решение - переместить их на __class level__, возможно, в класс и его члены, возможно, в «DataTable» или если вы хотите увидеть их в «DataGridView» или просто один или несколько «Список» и т. Д. . - Какой тип хранилища лучше всего на самом деле зависит от того, что такое контент и его источник .. –
TaW
Хорошо, так что скажем, я перемещаю их на уровень класса. Можно ли использовать метод Graphics для печати значения из них? Я использую двойники. @TaW –
Да, конечно. Метод DrawString может обращаться к ним так же, как ваш 'string drawString'. Вы добавляете красивую строку форматирования! – TaW