Robert,
You asked me to look at your code. Unfortunately, I cannot do much to help you. You have so many problems with very basic stuff and trying to the work you're not quite prepared for — just yet.
I'll give you few notes. First, the fact you include files which are not your source code tells me you're may be not sure what part of files is your source code. If this is true, you cannot really preserve your code. Remember, you should work with Revision Control to be safe and productive. Your naming is very poor; it does not compliant with Microsoft naming rules. Practically, all names from auto-generated code (like "Form1") should be renamed, given sensitive names, no underscore. Don't tell me this is insignificant: this is supportability. You apparently don't think about supportability. You code is fill of immediate string constants which you never should use. Even "" is unacceptable, you should use string.Empty. Also, I don't think you listen for good advice. People pointed out, "Convert.ToInt32(800)" is pure nonsense, but it's still in your code.
OK, I'll spend my time, will give you a number of advices, but if you don't listen to them… Why would I be interested is such frustration?
Next, look at your contants "C:", and "C:\\" in "UDirTree.cs". This is simply a crime: hard-coded directory. There is no situation when it can be useful. Any files your user is working with can be anywhere; a computer may not have such disk at all.
I finally realized that you do not understand what are your doing looking at CImage.cs (why all those "C" in file names? Files should also be named nicely…). What is that switch(indice) case 0, case 1..? This is nonsense! What if you add/remove/reorder list items? Everything will get broken. There is a property SelectedObject. No case needed, you simply cast your selected object to your run-time type of your item, and to present the item in UI in human-readable name make a type with overridden ToString. The technique is described in my answer to this question:
Displaying an image from a list box[
^].
The underlying type is enumeration. You can present them in human-readable way using this:
Human-readable Enumeration Meta-data[
^].
You generally need to get rid of all those immediate constants. This is especially important for strings. Developing UI in the language other than English is very problematic. This is really good idea to develop everything in English in globalized manner and then localize it.
I think this is enough. You really need to work at more simple tasks but understanding every single line you write.
Thank you.
---SA