# GH_CanvasValidator class

Namespace: [Grasshopper.GUI.Canvas](https://developer.rhino3d.com/api/gh1/namespace/grasshopper.gui.canvas.md) · Assembly: [Grasshopper](https://developer.rhino3d.com/api/gh1/assembly/grasshopper.md)

```cs
public abstract class GH_CanvasValidator : IGH_CanvasValidator
```

Abstract implementation of IGH_CanvasValidator. Inherit from this class rather than implementing IGH_CanvasValidator from scratch.

**Derived types:** [GH_CanvasDropTargetValidator](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasdroptargetvalidator.md), [GH_CanvasWireValidator](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvaswirevalidator.md)

## Properties

- [Canvas](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/canvas.md): Gets the canvas this validator is associated with.
- [Document](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/document.md): Gets the document (if it exists) that is currently loaded in the canvas.

## Methods

- [AddedToCanvas](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/addedtocanvas.md): Override this method if you want to be informed when this validator gets assigned to a canvas. But *always* call the base class method.
- [AppliesToDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/appliestodocument.md)
- [CanAcceptObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/canacceptobject.md)
- [CanCreateObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/cancreateobject.md)
- [CanCreateWire](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/cancreatewire.md)
- [CanDeleteObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/candeleteobject.md)
- [CanDeleteWire](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/candeletewire.md)
- [CanDragObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/candragobject.md)
- [CanNavigateCanvas](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/cannavigatecanvas.md)
- [CanShowCanvasMenu](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/canshowcanvasmenu.md)
- [CanShowComponentSearchBox](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/canshowcomponentsearchbox.md)
- [CanShowObjectMenu](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/canshowobjectmenu.md)
- [RemovedFromCanvas](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-canvasvalidator/removedfromcanvas.md): Override this method if you want to be informed when this validator gets removed from a canvas. But *always* call the base class method.
