| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1249 人关注过本帖
标题:关于自定义控件的问题?
只看楼主 加入收藏
sc_xy
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-2-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
关于自定义控件的问题?
  做了一个自定义控件 picbtn, 里面有一个pictureBox控件 pic1,一个label控件,lab1
  想在控件的picturebox上单击也能触发组件的click
  怎么实现呀?
  在pic1的click中直接写入
    picbtn_Click(this, e);
   没有反映!

   请帮忙!!!
搜索更多相关主题的帖子: 组件 
2012-02-06 14:15
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
收藏
得分:7 
程序代码:
//反过来试下看
//picbtn里面给pic1和picbtn添加单击事件,
public partial class picbtn : UserControl
    {
        public picbtn()
        {
            InitializeComponent();
        }

        private void pic1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("123");
        }

        private void picbtn_Click(object sender, EventArgs e)
        {
            pic1_Click(sender,e);
        }
    }

//Form1里面有个picbtn1
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void picbtn1_Click(object sender, EventArgs e)
        {
            //do
        }
    } 

//将pic1的Modifiers设为Public也不失为一种办法
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.picbtn1.pic1.Click += new EventHandler(picbtn1_Click);//添加事件
        }
        private void picbtn1_Click(object sender, EventArgs e)
        {
            //do
        }
    } 




[ 本帖最后由 xydddaxia 于 2012-2-6 14:46 编辑 ]

站在春哥的肩膀上
2012-02-06 14:32
sc_xy
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-2-6
收藏
得分:0 
public partial class picbtn : UserControl
    {
        private string labtxt;
        private Image imgfile;

        public string btntxt
        {
            get
            {
                return labtxt;
            }
            set
            {
                labtxt = value;
                label1.Text = labtxt;
            }
        }
        public Image btnimgfile
        {
            get
            {
                return imgfile;
            }
            set
            {
                imgfile = value;
                pictureBox1.Image = imgfile;
            }
        }

        //public event EventHandler picClick;
        
        public picbtn()
        {
            InitializeComponent();         
        }        

        private void pictureBox1_MouseEnter(object sender, EventArgs e)
        {
            label1.ForeColor = Color.Red;
        }

        private void pictureBox1_MouseLeave(object sender, EventArgs e)
        {
            label1.ForeColor = Color.Black;
        }      

        private void picbtn_Click(object sender, EventArgs e)
        {
            pictureBox1_Click_1(sender, e);           
        }
        
        private void pictureBox1_Click_1(object sender, EventArgs e)
        {           
               // picbtn_Click(sender, e);                     
        }
        
    }
还是不行?
2012-02-06 16:08
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
收藏
得分:0 
那个单机事件是哪里调用的,有没点完整的代码,实现什么功能

站在春哥的肩膀上
2012-02-06 16:13
sc_xy
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-2-6
收藏
得分:0 
自定义控件是编译成dll的
在其它窗体中引用的
2012-02-06 16:21
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
收藏
得分:0 
那用第二种方法看看

站在春哥的肩膀上
2012-02-06 16:54
sc_xy
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-2-6
收藏
得分:0 
引用picbtn时只能处理picbtn的click事件,只能在单击picbtn这个组件时才能发生(单击这个组件内的图片触发不了事件)
以组件外部是看不到pic控件的
2012-02-07 09:56
BigPei
Rank: 3Rank: 3
来 自:苏州
等 级:论坛游侠
威 望:6
帖 子:43
专家分:161
注 册:2012-1-10
收藏
得分:7 
把自定义的控件的Click事件委托到PictureBox控件的Click事件后。

然我想起了一个实例:水温上升到100°C,提示水开了,警报器响了...

Fighting forever.
2012-02-07 11:40
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
收藏
得分:0 
AppTest.rar (37.18 KB)

站在春哥的肩膀上
2012-02-07 14:16
sc_xy
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-2-6
收藏
得分:0 
版主:
我的自定义控件是单独编译成了dll,
再帮我看看,谢谢了!
xyClass.rar (3.51 KB)
2012-02-07 17:01
快速回复:关于自定义控件的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032102 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved