Creating an InfoPath Custom Control using C# and .NET
A while ago, I helped write an article for the InfoPath team on how to write InfoPath Custom Controls using C#.
https://blogs.msdn.com/infopath/archive/2005/04/15/408728.aspx
Warning, there isn't really full support for C# Controls in InfoPath, so beware, you might need to write workarounds. The supported languages are VB6 written controls and C++ ones.