2017-01-08 2 views
0

Ich möchte ein Steuerelement erstellen, die eine Tabelle in Klassenbibliothek Projekt zeichnen. Fügen Sie diese DLL zu Toolbox und verwenden Sie es in meiner Windows-Formular-App. Ich versuche und google aber ich kann nicht finden. was soll ich tun?wie benutzerdefinierte Steuerelement in Visual Studio 2015 erstellen und hinzufügen, um Toolbox

habe ich diese Klasse in Klassenbibliotheksprojekt

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(); 
    } 
} 

}

aber wenn ich mydll zu Toolbox hinzufügen, bekomme ich diesen Fehler image here

Antwort

2

In WPF oder WinForms die Toolbox smart ist über Komponenten, die Teil der von Ihnen erstellten Lösung sind. Fügen Sie für Winforms einfach einen Verweis auf System.Windows.Forms und System.Drawing zu Ihrer Klassenbibliothek hinzu, und erben Sie dann von Control (oder einer anderen Klasse, die von Control erbt).

Zum Beispiel kann ich eine benutzerdefinierte Steuerung wie folgt erstellen (Beachten Sie, dass es sich um eine öffentliche Kontrolle für die Toolbox zu finden sein):

using System.Drawing; 
using System.Windows.Forms; 

namespace ClassLibrary1 
{ 
    public class CustomControl : Control 
    { 
     public CustomControl() 
     { 
      this.BackColor = Color.Red; 
     } 
    } 
} 

Sobald ich das Projekt erstellen, kann ich dann sehen, es in der Toolbox, wenn Sie mit meinem Formular in meiner Anwendung interagieren.

enter image description here

+0

kann ich es in Klassenbibliotheksprojekt erstellen und fügen Sie diese DLL-Toolbox? – zfarzaneh

+0

Wenn sie sich in separaten Lösungen befinden, können Sie sie der Toolbox hinzufügen, indem Sie das Rechtsklick-Menü in der Toolbox verwenden, "Objekte auswählen" auswählen und zu Ihrer DLL navigieren. –

+0

Ich habe die Antwort aktualisiert, um die Ursache Ihres Fehlers anzuzeigen. Es muss eine "öffentliche" Kontrolle sein –

Verwandte Themen