我想我了解创建winforms用户控件的基础知识。我可以执行Add New并选择用户控件,这将为我提供设计表面和设计器文件以及代码隐藏文件等。然后我可以将其更改为继承UserControl之外的其他内容(如列表框或文本框)。
这次对我来说不同的是用户控件需要是一个列表控件(如列表框),它可以是数据绑定的,并且有两个数据绑定控件(两个组合框)。 / p>
我不知道从哪里开始?任何人都可以在工具中引用一个文件或一些显而易见的内容,这些内容会让我快速而轻松吗?我可以采取的任何方法,如扩展现有控件。我需要注意哪些问题?
感谢。
赛斯
修改
我决定采取不同的方法。不过,我正在离开这个问题。这显然比我猜想的要困难。不幸的是,WPF不是我的选择。只是要使用数据网格。
答案 0 :(得分:3)
然后我可以将其更改为继承UserControl以外的其他内容(如列表框或文本框)。
这是你犯错的地方......当你从UserControl派生时,你不应该改变继承。继承自UserControl,您可以在设计图面上放置多个不同的控件(如列表框和两个组合框)。这些组合控件使您的独特(用户)控件成为一个不言自明的名称。明白它? 它非常简单,非常强大,非常可重复使用,很有趣,而且我们经常使用它。
一个很好的参考可能是:Microsoft walkthrough,MonthPicker (simple)
答案 1 :(得分:0)
您将无法覆盖列表控件以符合您的要求。反正不容易。但是有其他选择:
由于控件有自己的事件,您可以覆盖渲染,并绘制看起来像列表控件的视觉特征。接下来,您必须创建委托和事件处理程序,以便您的控件可以向表单的其余部分发出信号,表明其中发生了某些事情。
下一个选择是按照我上面描述的那样做,但是使用WPF。 WPF在自定义UI方面具有更大的灵活性。
答案 2 :(得分:0)
创建用户控件,添加列表框并将其设置为dock = full(或任何符合您设计需求的内容)。
重写DataSource属性并让它调用一个方法,该方法将源组合成一个源,然后将该单个源绑定/重新绑定到列表中。
这有挫折,但这只是一种方式。
另一种方法是不创建用户控件,而是将所有源组合成一个源,然后将其绑定到列表框控件。
WPF在这种情况下无济于事。