Developers generally don't like third-party UI controls because they're generally frustrating to use. Case in point: in the Infragistics Windows Forms controls package, the UltraGridColumn has sucked a substantial portion of my day away.
If you don't write software, you still appreciate it when it works simply and intuitively. You want to search for something, you go to Google and type in a search term. Brilliant. When you go to some company's website because you want to call the company, you look for something called "contact us" and click it. If you don't get the address and phone number of the company after clicking that link, you get irritated: the simple, intuitive thing didn't work. Jakob Nielsen is all over that stuff.
So. I have a simple problem, which is how to make a column in a grid grey out so my users don't inadvertently edit something they shouldn't. What I expect to write is something like this—or I would, if the member existed:
theReadOnlyColumn.Enabled = false;
Sadly, there is no "Enabled" member. So how about using a member that actually does exist?
theReadOnlyColumn.IsReadOnly = true;
Interesting. That member doesn't allow you to change its value. In fairness, the particle "Is" suggested it was a read-only member (ironic, that), but still, it looked like the right thing to do.
But no, here's the intuitive, simple, gosh-how-didn't-I-see-that-right-away thing to do:
theReadOnlyColumn.CellActivation = Activation.Disabled;
This sort of thing happens when developers create software based on how it works, rather than what it does. It's sloppy, it reflects an inability to think like the person using the product, and it's compounded by a criminal lack of clear "how-to" documentation. (The Infragistics documentation site appears to have no way to search for concepts, requiring you to figure out how Infragistics developers organize things on your own.) This really, really annoys me, and is why I avoid using their products.