Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将PaintEventArgs传递到方法中_C#_.net_Winforms - Fatal编程技术网

C# 将PaintEventArgs传递到方法中

C# 将PaintEventArgs传递到方法中,c#,.net,winforms,C#,.net,Winforms,我在C#中有以下方法: 完成上面提供的代码后,我尝试从ticketData方法中调用adjustColumnValueLength,以便我可以将正在打印的值子串到该列的可用宽度。您应该只从绘制事件处理程序调用该方法。我猜您的代码中有如下内容: private void Control_Paint(object sender, PainEventArgs e) { ... } 您应该从那里(而不是其他地方)调用您的方法: 如果没有,请创建一个事件处理程序: this.Control.Paint

我在C#中有以下方法:


完成上面提供的代码后,我尝试从ticketData方法中调用adjustColumnValueLength,以便我可以将正在打印的值子串到该列的可用宽度。

您应该只从
绘制
事件处理程序调用该方法。我猜您的代码中有如下内容:

private void Control_Paint(object sender, PainEventArgs e) { ... }
您应该从那里(而不是其他地方)调用您的方法:

如果没有,请创建一个事件处理程序:

this.Control.Paint += Control_Paint;

另请阅读:。

我试图从一个方法中调用它,该方法的构造函数类似于此私有void ticketData(对象发送方,System.Drawing.Printing.PrintPageEventArgs e)然后只需将
PrintPageEventArgs.Graphics
传递到方法中,而不是
PaintEventArgs
。他不应该从Paint事件处理程序或OnPaint调用此函数。@PatrickHofman您能提供示例吗?我试图调用类似于so myString=adjustColumnValueLength(myString,150,e)的方法其中e等于在方法构造函数中定义的System.Drawing.Printing.PrintPageEventArgs,我在其中调用adjustcolumnValueLength方法。Imo从传递e参数的Paint事件调用方法或仅调用Graphics对象很好,这是一种很好的自然方法,可以将代码分解为更小的部分。您可以不需要
e
,只要
e.Graphics
。找出它是什么类型以及如何制作。澄清如何/在哪里/为什么调用它。编辑后:您有两个不同的
e
s,但
e.Graphic
s是兼容的。@Henkholtman当用户从应用程序中单击“打印票证”按钮时,会调用上面的btnPrintTicket\u Click方法。这是一个Windows窗体应用程序供参考
private void Control_Paint(object sender, PainEventArgs e) { ... }
private void Control_Paint(object sender, PainEventArgs e)
{
    adjustColumnValueLength("value", 10, e);
}
this.Control.Paint += Control_Paint;