我想在C#Visual Studio 2010中从标准控件创建我的用户控件,该控件在设计时保持独立
问题是,当我创建这样的标准用户控件时:
public partial class MyUserControl: UserControl
{
public MyUserControl()
{
InitializeComponent();
}
}
我在上面添加了2个按钮和1个文本框,它们就成为了UserControl的一部分
然后,当设计控件并将其添加到窗体上时,我可以移动它、调整大小等,但不能单击或选择按钮1、按钮2或TextBox1。
此外,双击button1不会创建button1_click事件,而是创建UserControl_Load事件
我希望实现类似于DataBindingNavigator控件的效果,即可以独立单击每个按钮。
我知道我可以做一个公共属性设置/返回用户控件按钮或文本框,但它们会出现在设计器中,不可能选择它们。
你认为可以用标准控制吗?如果是,如何做到这一点
致以最良好的问候,
mj82
你不能这样做,因为这样做没有意义。
假设你可以按照你的要求去做——然后在表单上你可以移动用户控件按钮等等——本质上是在from surface本身上设计用户控件。好吧,但其他所有也有该用户控件的表单呢?这就是为什么一旦您放弃用户控件,它就被修复了。你没有为每个表单实例设计一个用户控件,你设计了控件,然后它对每个表单都是一样的
与单击按钮相同。你想创建一个点击事件处理程序,但根据你的要求,这会在表单中发生。但按钮不在你的表单上,它在你的用户控件上,它的点击事件必须在用户控件中处理,而不是在父表单中。
用户控件背后的理念是不必做你描述的事情。它们是预先组装好的构建块。
DataBindinghNavigator不过是一个工具之旅。如果你想要这种行为,只需使用工具条。
通常,您会将控制事件的处理程序放在UserControl中。如果UserControl需要将某些事件通知页面,请将这些事件添加到UserControl中。
如果您想要在页面上独立触发事件的单独控件,那么这些控件可能不应该是UserControl的一部分。
您需要做的是在控件中创建事件触发器,然后在窗体中创建事件处理程序,以在单击"button_1"时处理操作等。您不能从窗体设计视图创建事件,因为这是应该内置到控件中的内容。
如果您需要用代码动态操作用户界面,那么您应该尝试研究MVC。http://www.asp.net/mvc