读书人

关于自定义类解决方法

发布时间: 2012-01-08 22:48:50 作者: rapoo

关于自定义类
我写了个Label的自定义类,OnPaint事件是读入一个图片,想在Form中显示;

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.ComponentModel;

namespace workflowTest
{
class ImputClass:System.Windows.Forms.Label
{
//图片的路径
string Imagedir=@"E:\Input_Document.jpg";

public ImputClass(): base()
{

}

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
Image myImage = Image.FromFile(Imagedir);
Point p=new Point();
p.X=100;
p.Y=100;

e.Graphics.DrawImage(myImage, p);
}

}
}


下面是form中调用的代码:

ImputClass haha = new ImputClass();

this.Controls.Add(haha);

Point p=new Point();
p.X=100;
p.Y=100;

haha.Location=p;

但是form里没有反应,不知道是为什么?请帮帮忙




[解决办法]
OnPaint函数中的Point坐标太大了,已经超过了Label的默认大小,改为
p.X=0;
p.Y=0;
就OK了
[解决办法]
label工作区域很小的
你这是在相对于它的坐标X=100 ,Y=100的地方画的啊。。。

把label的AutoSize属性设置为 False;再把它拉大看看

[解决办法]

public ImputClass(): base()
{
this.Click += new EventHandler(MethodLabel_Click);
AutoSize=False;
size=(200,200);
}

[解决办法]
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
base.OnPaint(e);
Image myImage = Image.FromFile(Imagedir);
Point p=new Point();
p.X=100;
p.Y=100;

e.Graphics.DrawImage(myImage, p);
}

读书人网 >C#

热点推荐