我想创建一个在类库项目中绘制表的控件。并将此dll添加到工具箱并在我的Windows窗体应用程序中使用它。我尝试谷歌搜索,但我无法找到。 我该怎么办?
我在类库项目中创建了这个类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
namespace ClassLibrary1
{
class PanelZ : System.Windows.Forms.Panel
{
private Color color1 = Color.SteelBlue;
private Color color2 = Color.DarkBlue;
private int color1Transparent = 150;
private int color2Transparent = 150;
private int angle = 90;
public Color StartColor
{
get { return color1; }
set { color1 = value; Invalidate(); }
}
public Color EndColor
{
get { return color2; }
set { color2 = value; Invalidate(); }
}
public int Transparent1
{
get { return color1Transparent; }
set
{
color1Transparent = value;
if (color1Transparent > 255)
{
color1Transparent = 255;
Invalidate();
}
else
Invalidate();
}
}
public int Transparent2
{
get { return color2Transparent; }
set
{
color2Transparent = value;
if (color2Transparent > 255)
{
color2Transparent = 255;
Invalidate();
}
else
Invalidate();
}
}
public int GradientAngle
{
get { return angle; }
set { angle = value; Invalidate(); }
}
public PanelZ()
{
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Color c1 = Color.FromArgb(color1Transparent, color1);
Color c2 = Color.FromArgb(color2Transparent, color2);
Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2, angle);
e.Graphics.FillRectangle(b, ClientRectangle);
b.Dispose();
}
}
}
但是当我将mydll添加到工具箱时,我收到此错误 image here
答案 0 :(得分:2)
在WPF或Winforms中,Toolbox非常了解您正在构建的解决方案中的组件。对于Winforms,只需将System.Windows.Forms
和System.Drawing
的引用添加到您的类库中,然后从Control
(或继承自Control
的任何其他类)继承。
例如,我可以像这样创建一个自定义控件(注意它必须是工具箱的公共控件才能找到它):
using System.Drawing;
using System.Windows.Forms;
namespace ClassLibrary1
{
public class CustomControl : Control
{
public CustomControl()
{
this.BackColor = Color.Red;
}
}
}
构建项目后,我可以在工具箱中与我的应用程序中的表单进行交互时看到它。