首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MouseClick on TableLayoutPanel?

MouseClick on TableLayoutPanel?
EN

Stack Overflow用户
提问于 2016-12-21 02:46:48
回答 1查看 204关注 0票数 0

我有一个TableLayoutPanel,其中添加了一些控件,如Label和PictureBox。现在,我正在尝试在这个MouseClick中添加一个TableLayoutPanel处理程序。如果我确实删除了这些控件标签并使用PictureBox,就会正确地触发Handler,但是对于控件,我尝试将这些控件发送回原来的位置,例如:Label.SendToBack(),但它也不起作用。我认为问题在于控件标签和PictureBox,因为没有它们可以正常工作。

我怎么能解决这个问题?

代码语言:javascript
复制
void initComponents(){
            IList<Mesa> lista = mDAO.findAll();
            if (lista.Count > 0){
                foreach (Mesa mesa in lista){
                    customPanel = new TableLayoutPanel();
                    customPanel.MouseClick += cms_MouseClick; //mouseclick of customPanel
                    customPanel.BorderStyle = BorderStyle.None;
                    customPanel.BackColor = Color.FromArgb(255, 255, 128);
                    customPanel.Size = new Size(100, 100);
                    customPanel.Name = Convert.ToString(mesa.id);

                    //label mesa
                    numMesa = new Label();
                    numMesa.Font = new Font(numMesa.Font.Name, 12, FontStyle.Bold);
                    numMesa.Text = Convert.ToString(mesa.id);
                    numMesa.SendToBack();

                    //picturebox
                    picture = new PictureBox();
                    picture.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right);
                    picture.Image = IguanaBar.Properties.Resources.mesabar;
                    picture.SizeMode = PictureBoxSizeMode.StretchImage;
                    picture.SendToBack();

                    //label aviso
                    aviso = new Label();
                    aviso.Anchor = (AnchorStyles.Right);
                    aviso.Font = new Font(aviso.Font.Name, 6, FontStyle.Bold);
                    aviso.Text = "LIVRE";
                    aviso.ForeColor = Color.Green;
                    aviso.TextAlign = ContentAlignment.MiddleCenter;
                    picture.SendToBack();

                    //add components
                    customPanel.Controls.Add(numMesa);
                    customPanel.Controls.Add(picture);
                    customPanel.Controls.Add(aviso);

                    //add panel a panel principal                    
                    panelMesas.Controls.Add(customPanel);
                }                
            }            

            //popup menu
            cms = new ContextMenuStrip();
            cms.Items.Add("Vender");
            cms.Items.Add("Finalizar");
            cms.Items.Add("Trocar");
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-21 02:58:17

你可以改变

代码语言:javascript
复制
 numMesa.SendToBack();
 picture.SendToBack();

代码语言:javascript
复制
  numMesa.MouseClick += cms_MouseClick; //mouseclick of customPanel
  picture.MouseClick += cms_MouseClick; //mouseclick of customPanel
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41254315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档