c#自定义控件与窗口之间传值
我新建了个类mylinklabel,并继承linklabel控件,这样可以在该控件中添加自己的想法,主窗口form1中有两个radiobutton,现在我想实现在自己定义...
我新建了个类mylinklabel,并继承linklabel控件,这样可以在该控件中添加自己的想法,主窗口form1中有两个radiobutton,现在我想实现在自己定义的控件中获取这两个radiobutton有没有被选中的状态,代码也在mylinklabel里面,而不是利用mylinkelabel的对象实现,忘高手解惑……
展开
3个回答
展开全部
实现方法是有的:
可以通毕尘过初始化mylinklabel的时候,就把初始化好的radiobutton传给它。
this.parent.Controls来查找那个radiobutton控件。
不过有点要啰嗦一下:你这样设计是背向羡滚了“高内聚,低耦合”的说法。
mylinklabel只负责自己内手派禅部的逻辑结构的处理,外部的操作可以用委托或事件来实现。
更多追问追答
追问
用(form1)this.findform()可以实现了,想问下如何用委托或事件来实现呢,能不能举个例子,先谢谢啦……
追答
linklabel控件已经定义了一些事件,你既然继承了它,那事件一样继承了。
我的上面说的意思就是:你最好不要在mylinklabel里面实现外面的业务逻辑,比如获取radiobutton的值。
public class mylinklabel
{
public delegate string GetOutsideValueHandler();
public GetOutsideValueHandler GetRadiobuttonValue;
public string OnGetRadiobuttonValue()
{
if (GetRadiobuttonValue != null)
return GetRadiobuttonValue();
else
return null;
}
}
public class Form
{
public mylinklabel ll;
public Form()
{
ll = new mylinklabel();
ll.GetRadiobuttonValue = GetRadiobuttonValue;
}
public string GetRadiobuttonValue()
{
return xxxx.Value;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你脊旅是不是想通过“ mylinklabel.radiobutton1.Checked ”类似这样的调用属性方法对中野亩这两个radiobutton的选中状态进行使用?
用set和get去写一下mylinklabel的卖森属性就好了
用set和get去写一下mylinklabel的卖森属性就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个建议放在委托中去实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询