Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Have you looked up this thread? <a href="https://stackoverflow.com/questions/5894/genealogy-tree-control">Genealogy Tree Control</a></p> <p>Basically it's suggesting to use <a href="http://www.geni.com/" rel="nofollow noreferrer">Geni</a>, which might be suitable for you, too</p> <p>Edit: if you want to go "on foot", you can do a lot of things depending on your experience level. at first, you need a suitable data structure, e.g.</p> <pre><code>public class Genealogy { Person me; [...] } public class Person { Person father, mother; [...] } </code></pre> <p>this allows (very basic) to mirror your genealogy. next, for visualization, you can at first try to fuzz around with the <a href="http://msdn.microsoft.com/en-gb/library/system.windows.forms.treeview.aspx" rel="nofollow noreferrer">TreeView</a> class. this will give you a simple textual representation of your hierarchy if you implement the right interfaces. if you want more advanced visualization, you will probably have to create your own UserControl-derived class, in which you will perform all the rendering of your tree. (then, the control can be placed on the usual windows form elements etc.) then, you can follow a recursive principle like</p> <pre><code>public class Genealogy { Person me; public void draw() { // Plots me! me.draw(0, 0); } } public class Person { Person father, mother; public void draw(int x, int y) { // Plot parents father.draw(x - width/2, y - height); mother.draw(x + width/2, y - height); // Plot the person image + name at (x,y) [...] } } </code></pre> <p>i dont have the commands for UI-drawing in my head right now, but this is the essential strategy i would pursue. of course, you'll want to add margins, line and everything to spice up your tree.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload