# vtkRenderWindow only works in Load Event

**URL:** https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003
**Category:** Support
**Created:** [August 17, 2020, 11:33pm UTC](https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003 "2020-08-17T23:33:42Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![JimHewitt](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/j/a3d4f5/32.png) [@JimHewitt](https://discourse.vtk.org/u/JimHewitt)
#### Post date: [August 17, 2020, 11:33pm UTC](https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003/1 "2020-08-17T23:33:42Z")

</div>

I’m trying the [ReadPLY](https://lorensen.github.io/VTKExamples/site/CSharp/IO/ReadPLY/) example and it works. However, when I move the call to `Readply()` from `renderWindowControl1_Load1` to a a button click event, it doesn’t work. Is there a way I can do this in the button click event?

---

<div class="post-metadata">

### Author: ![toddy](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/t/edb3f5/32.png) [@toddy](https://discourse.vtk.org/u/toddy)
#### Post date: [August 18, 2020, 12:12am UTC](https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003/2 "2020-08-18T00:12:59Z")

</div>

The vtkRenderer is not available until the window control has loaded, so you need to disable your button until you can obtain a reference to it (in the load event). Then after adding the actor, in the click event `renderWindowControl1.Invalidate()`

---

<div class="post-metadata">

### Author: ![JimHewitt](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/j/a3d4f5/32.png) [@JimHewitt](https://discourse.vtk.org/u/JimHewitt)
#### Post date: [August 18, 2020, 2:27am UTC](https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003/3 "2020-08-18T02:27:04Z")

</div>

@Todd - This is what I have, but it still doesn’t work. I wasn’t able to attach the ply file, but  
you can find it [here](https://www.cs.colostate.edu/~cs410/yr2015fa/Models/Medium/airplane.txt)

`  
public partial class Form1 : Form  
{  
private vtkRenderWindow renderWindow;  
private vtkRenderer renderer;

```
    public Form1()
    {
        InitializeComponent();
    }

    private void renderWindowControl1_Load(object sender, EventArgs e)
    {
        try
        {
            button1.Enabled = false;
            renderWindow = renderWindowControl1.RenderWindow;
            renderer = renderWindow.GetRenderers().GetFirstRenderer();
            //ReadPLY();
            button1.Enabled = true;
        }
        catch (Exception)
        {
            throw;
        }
    }

    private void ReadPLY()
    {
        string filePath = @"C:\temp\airplane.ply";
        vtkPLYReader reader = vtkPLYReader.New();
        reader.SetFileName(filePath);
        reader.Update();

        vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
        mapper.SetInputConnection(reader.GetOutputPort());

        vtkActor actor = vtkActor.New();
        actor.SetMapper(mapper);
        renderer.AddActor(actor);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            ReadPLY();
            renderWindowControl1.Invalidate();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

```

`

---

<div class="post-metadata">

### Author: ![toddy](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/t/edb3f5/32.png) [@toddy](https://discourse.vtk.org/u/toddy)
#### Post date: [August 18, 2020, 4:01am UTC](https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003/4 "2020-08-18T04:01:30Z")

</div>

I assume when you say “it doesn’t work” you mean it doesn’t display? Please be more specific.

in the button click event try  
`renderer.ResetCamera();`  
`renderWindowControl1.Invalidate();`

---

<div class="post-metadata">

### Author: ![JimHewitt](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/j/a3d4f5/32.png) [@JimHewitt](https://discourse.vtk.org/u/JimHewitt)
#### Post date: [August 18, 2020, 4:11am UTC](https://discourse.vtk.org/t/vtkrenderwindow-only-works-in-load-event/4003/5 "2020-08-18T04:11:07Z")

</div>

Sorry, yes, it didn’t display anything. I added `renderer.ResetCamera()` and now it does display, so thank you!
