C# load 和构造函数有什么区别?

论文MVP网 2008-12-05 02:53:44
public Form1()
{}
和 PUBLIC FORM1_LOAD()
{}
有什么区别呢?
内容写在他俩中有什么区别? 最好举个例子给我看下
还有
private void printbutton_Click(object sender, EventArgs e)
{
using (Brush b = new SolidBrush(Color.Black))
{
Graphics g = this.CreateGraphics();
g.DrawString("123456789", new Font("3 of 9 Barcode", 16), b, new Rectangle(10, 10, 200, 200));//3 of 9 Barcode这个是你安装的字体的名字,在C:\WINDOWS\Fonts下查看
}
}
我写在BUTTON中可以执行,也可以画出条码,但是写在LOAD中为什么不能在程序刚启动的时候直接画出来呢?
...全文
1271 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumingwangba 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qinhl99 的回复:]
Form.Load 事件处理方法用于处理在对象实例化之后的事情,毕竟对象已经实例化了,所以你在Load的操作会触发事件,而构造函数则不会
构造函数和Load都会先后执行。一般来说,构造函数先于Load事件
[/Quote]
我设置断点跟踪了一下,跟不到load方法,只能执行构造方法
论文MVP网 2008-12-09
  • 打赏
  • 举报
回复
结贴去了 谢谢大家
最后告诉大家个问题,我已经研究出来,打印条码的时候是不可以用绘图的方式打印的,因为打印出来的是图形,打印机会按照图形的方式来打印,所以精度根本不能达到条码的打印精度,所以用画图的方式是不可以搞定的,所以画图是只能看而不能打,打出来也读不出来,
解决办法: 1:管厂家要DEMO,和DLL那个里面有例子,这样调用DLL的话,走的是打印机驱动,由打印机自己来完成 任务;内部结构是他自己发送自己的打印机命令给打印机,这点不是咋们应该管的,他自己完成
2:方法就是管厂家要打印机操作数指令,然后不走驱动,也就是自己把打印参数发送到串口或者并口,这个方法麻烦的就是,有的厂家打印参数说明是英文版,而且没有DEMO这点有的时候很郁闷,建议大家用波斯德的打印机,他们厂家提供DLL和DEMO直接添几个参数就搞定了

有不明白或者有什么问题的兄弟联系我QQ 804206885
论文MVP网 2008-12-05
  • 打赏
  • 举报
回复
谢谢大家对第1个问题的评论,我也总结下大家所说的东西,大家看下对不对,也方便后来的人学习,谢谢各位
构造函数就拿窗体来说,他是属于先实例化各个控件,但是不加载的,只是相当于NEW了下,然后当LOAD的时候就是显示窗体的时候同时发生,可以说构造函数是执行在LOAD事件之前

对了 我的第2个问题是怎么样的呢?
public Form1()
{

InitializeComponent();
//this.FormBorderStyle = FormBorderStyle.None;
this.printbutton.Text = "Print Form";
printDocument1.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
}
Bitmap memoryImage;

private void printbutton_Click(object sender, EventArgs e)
{
using (Brush b = new SolidBrush(Color.Black))
{
Graphics g = this.CreateGraphics();
g.DrawString("123456789", new Font("3 of 9 Barcode", 16), b, new Rectangle(10, 10, 200, 200));//3 of 9 Barcode这个是你安装的字体的名字,在C:\WINDOWS\Fonts下查看
}
}





private void CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
}

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

private void button1_Click(object sender, EventArgs e)
{
int i=0;
while (i < 2)
{
this.label1.Text = "*123456789*";
MessageBox.Show(i.ToString());
CaptureScreen();
//printDialog1.ShowDialog();
printDocument1.Print();
i++;
}
}

private void Form1_Load(object sender, EventArgs e)
{
//如果代码写在这里
}

我画图代码写在这里为什么不执行呢?他画不出条码,但是现在的BUTTON_CLICK中就可以执行,为什么呢?希望大家讲解下谢谢
healer_kx 2008-12-05
  • 打赏
  • 举报
回复
Load是一个事件,构造函数是个语言上面的概念。
oo嘛,没有对象,就没有对象去响应事件。
byte377 2008-12-05
  • 打赏
  • 举报
回复
load是一个事件吧 只能被触发才被调用
Mr-Jee 2008-12-05
  • 打赏
  • 举报
回复
load是一个事件吧 大概可以这样解释
我猜是在构造函数调用里调用了load
claymore1114 2008-12-05
  • 打赏
  • 举报
回复
用处都不一样啊
sumerainping 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 llsen 的回复:]
引用 1 楼 qinhl99 的回复:

构造方法就是构造一个对象而已,而LOAD() 是加载控件,相当于oo里的赋初值的方法!


执行时先执行构造函数

比如
LoginForm myFrom = new LoginForm();    1
myForm.Show();                        2

1时候定义类对象并实例化new,这个时候就调用了构造函数
2时候显示画面才加载其控件,比如上面的按钮了,文本框了

对应你说的点按钮可以画,放load里面不行
不应该啊
可能是你其他地方有什…
[/Quote]

有道理。
构造函数是在最开始执行的,创建了一个对象。
在此之后才可以执行其他函数,如load()。
cheng_er 2008-12-05
  • 打赏
  • 举报
回复
构造函数:有
load:一般用来初始操作“有”了的东西
llsen 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 llsen 的回复:]
引用 1 楼 qinhl99 的回复:
构造方法就是构造一个对象而已,而LOAD() 是加载控件,相当于oo里的赋初值的方法!


执行时先执行构造函数

比如
LoginForm myFrom = new LoginForm(); 1
myForm.Show(); 2

1时候定义类对象并实例化new,这个时候就调用了构造函数
2时候显示画面才加载其控件,比如上面的按钮了,文本框了

对应你说的点按钮可以画,放load里面不行
不应该啊
可能…
[/Quote]



继续关注中。。。。。。。。。。
llsen 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qinhl99 的回复:]
构造方法就是构造一个对象而已,而LOAD() 是加载控件,相当于oo里的赋初值的方法!
[/Quote]

执行时先执行构造函数

比如
LoginForm myFrom = new LoginForm(); 1
myForm.Show(); 2

1时候定义类对象并实例化new,这个时候就调用了构造函数
2时候显示画面才加载其控件,比如上面的按钮了,文本框了

对应你说的点按钮可以画,放load里面不行
不应该啊
可能是你其他地方有什么东西执行影响到了

你可以把全部代码粘出来看看
deserveit 2008-12-05
  • 打赏
  • 举报
回复
构造函数:将构造一个对象,但这个对象不会显示到界面上来。
load:使用load前提是这个对象已经存在,load只是把这个对象要显示到显示的信息显示出来。
wuyq11 2008-12-05
  • 打赏
  • 举报
回复
Form.Load 事件处理方法用于处理在对象实例化之后的事情,毕竟对象已经实例化了,所以你在Load的操作会触发事件,而构造函数则不会
构造函数和Load都会先后执行。一般来说,构造函数先于Load事件
qinhl99 2008-12-05
  • 打赏
  • 举报
回复
构造方法就是构造一个对象而已,而LOAD() 是加载控件,相当于oo里的赋初值的方法!

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧