Hola, intentaré aclararte algunas cosas:
cuando busco por ejemplo como usar el control MonthTimer siempre me salen referéncias a Clases, es decir crear objetos Timer, y en muchos casos las propiedades de objetos no están disponibles en el control mismo.
1. No existe ningún control llamado "
MonthTimer" en la librería de classes de .Net framework, el nombre del miembro más parecido es un '
Timer', quizás por eso solo te salen resultados sobre la class '
Timer', no es que te muestre resultados incorrectos o que no esté documentado, es que has buscado un miembro inexistente, ¿quizás quisiste decir/buscar un "
Monthcalendar" o un '
DateTimePicker'?.
2. En esencia un Control es un conjunto de miembros (clases, propiedades, funciones, enumeraciones, estructuras, etc), ¿que tipo de documentación esperas encontrar en MSDN o en otro lugar?.
en muchos casos las propiedades de objetos no están disponibles en el control mismo.
Eso no es para nada cierto, lo que ocurre es que muchos miembros se llaman de la misma manera pero están ubicados en distintos namespaces, por ejemplo eso es lo que ocurre con la class Timer:
System.Timers.Timer
System.Threading.Timer
System.Windows.Forms.Timer
Cada class 'Timer' tiene un propósito diferente, unas propiedades diferentes, y cada class tiene su distinta documentación en la MSDN.
Aparte de eso, no todas las classes/controles pertenecen a la misma tecnología, por ejemplo la class TextBox de un WinForms no tiene los mismos miembros(propiedades) que la class TextBox de WPF:
System.Windows.Forms.TextBox
System.Windows.Controls.TextBox
Es normal que si no comprendes o no te fijas en los detalles importantes no le encuentres lógica a que algunas propiedades no existan...
Asegúrate de leer el namespace en la documentación de MSDN para saber a que miembro se está refiriendo:
Además, en ocasiones me sale en inglés, según el caso.
Sin ánimo de entrar en debates sobre la programación, en mi opinión, un requisito fundamental es tener conocimientos del idioma universal, leer, comprender, y trabajar en Inglés, ya que todo con lo que estás utilizando es en Inglés empezando por la propia sintaxis del lenguaje, pero bueno, aun así los códigos en español y en chino siempre seguirán existiendo para el disgusto de todos :-/.
Bueno, dicho esto, vamos al lio, te explico, el 90% de la documentación de MSDN está traducida en varios idiomas, es cierto que no toda la documentación lo está, pero si te incomoda buscar documentación de MSDN en Google y que te salga una página en inglés, siempre puedes probar a modificar la región del idioma en la url:
Del inglés:
https://msdn.microsoft.com/en-us/library/system.windows.forms.timer%28v=vs.110%29.aspx
Al Castellano:
https://msdn.microsoft.com/es-es/library/system.windows.forms.timer%28v=vs.110%29.aspx
Otra cosa me fastidia es no encontrar ejemplos por ejemplo de como usar una determinada función API, tan sólo obtengo descripciones.
En ese aspecto te doy la razón, aparte de que muchas funciones están indocumentadas, MSDN no suele exponer ejemplos útiles para funciones avanzadas, y muchas veces con las descripciones del propósito de la función o de sus parámetros no es suficiente para entender el funcionamiento o el modo de emplear la función, la verdad es que si, tienes razón.
La mejor "base de datos" de ejemplos de utilización de la API de Windows en .Net que puedes encontrar es
Pinvoke.net, que está incluida en la cita del post que publiqué arriba.
PD: Si tienes dudas específicas sobre el uso de alguna función de la WinAPi, siempre puedes preguntar aquí
Saludos!