c#自定义控件与窗口之间传值

我新建了个类mylinklabel,并继承linklabel控件,这样可以在该控件中添加自己的想法,主窗口form1中有两个radiobutton,现在我想实现在自己定义... 我新建了个类mylinklabel,并继承linklabel控件,这样可以在该控件中添加自己的想法,主窗口form1中有两个radiobutton,现在我想实现在自己定义的控件中获取这两个radiobutton有没有被选中的状态,代码也在mylinklabel里面,而不是利用mylinkelabel的对象实现,忘高手解惑…… 展开
 我来答
kingboyf4
2013-10-15 · TA获得超过283个赞
知道小有建树答主
回答量:201
采纳率:100%
帮助的人:236万
展开全部

实现方法是有的:

  1. 可以通过初始化mylinklabel的时候,就把初始化好的radiobutton传给它。

  2. 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;
        }
    }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c14aa294a
2013-10-15 · 超过10用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:11.6万
展开全部
你是不是想通过“ mylinklabel.radiobutton1.Checked ”类似这样的调用属性方法对这两个radiobutton的选中状态进行使用?
用set和get去写一下mylinklabel的属性就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
307482311
2013-10-15 · TA获得超过1471个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:305万
展开全部
这个建议放在委托中去实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式