아주 간단한 컨트롤을 작성했습니다. C#을 Visual Studio 2008. 그 출력되어야하고 dll입니다. 나는 그것을 사용하고자하는 프로젝트 내의 dll에 대한 참조를 추가했다. 컨트롤을 작성하는 방법에 대한 msdn 기사는 '참조/프로젝트 추가'목록에 나타나야한다고 말합니다.이 목록은 '찾아보기'탭에서 간단히 탐색 한 다음/bin 폴더로 이동하여 추가됩니다. 그 방법으로 참조하십시오. 도구 상자로 드래그했지만 '텍스트 : xhair_tool'로 표시되고 양식에 추가하려고하면 모양이 변경되지 않으므로 잘못 했습니까? 그것은 'Windows 폼 컨트롤'프로젝트로 만들어졌습니다. 아래와 같이 배열을 반환하는 'Target'메서드를 내 보내야합니다.사용자 지정 Windows Forms 컨트롤이 도구 목록에 표시되지 않고 텍스트로 표시되는 기능을 내 보냅니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace xhair_tool
{
public partial class xhair : UserControl
{
public xhair()
{
InitializeComponent();
}
private void xhair_Load(object sender, EventArgs e)
{
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen pen = new Pen(Color.Black, 1);
SolidBrush redBrush = new SolidBrush(Color.Red);
g.DrawLine(pen, 8, 0, 8, 7);
g.DrawLine(pen, 8, 9, 8, 16);
g.DrawLine(pen, 0, 8, 7, 8);
g.DrawLine(pen, 9, 8, 16, 8);
//ControlPaint.DrawReversibleLine(start, end, backColor)
}
/// <summary>
/// Returns the point at the center of the crosshair
/// </summary>
/// <returns>int[x,y]</returns>
public int[] Target
{
get
{
int[] _xy = new int[2];
_xy[0] = this.Left + 8;
_xy[1] = this.Top + 8;
return _xy;
}
}
}
}
감사, R.
또는 동일한 솔루션의 다른 프로젝트에 넣는 경우. – SLaks
@SLaks, 자주 자주 사용하는 많은 기능과 컨트롤이있는 "유틸리티"라이브러리에서이 작업을 수행합니다. 또한 디버깅이 필요할 때 도움이됩니다. 오류가 발생하면 컨트롤 내부에서 문제가 발생합니다. –
@Scott : 무슨 소리 야? – SLaks