Beispiel #1
0
        private void ShowDataList()
        {
            if (tb != null)
            {
                if (this.FindForm() != null)
                {
                    var   frm  = this.FindForm();
                    Point p    = getPoint();
                    int   flag = 0;
                    if (flag == 0)
                    {
                        int       x  = p.X;
                        int       y  = p.Y + this.Height + 1;
                        Point     p1 = new Point(x, y);
                        Point     p2 = new Point(x + dataList.Width, y + dataList.Height);
                        Rectangle r  = new Rectangle(0, 0, frm.Width, frm.Height);
                        if (r.Contains(p1) && r.Contains(p2))
                        {
                            dataList.Left = x;
                            dataList.Top  = y;
                            flag          = 1;
                        }
                    }
                    if (flag == 0)
                    {
                        int       x  = p.X + this.Width - dataList.Width;
                        int       y  = p.Y + this.Height + 1;
                        Point     p1 = new Point(x, y);
                        Point     p2 = new Point(x + dataList.Width, y + dataList.Height);
                        Rectangle r  = new Rectangle(0, 0, frm.Width, frm.Height);
                        if (r.Contains(p1) && r.Contains(p2))
                        {
                            dataList.Left = x;
                            dataList.Top  = y;
                            flag          = 1;
                        }
                    }

                    if (flag == 0)
                    {
                        int       x  = p.X;
                        int       y  = p.Y - dataList.Height;
                        Point     p1 = new Point(x, y);
                        Point     p2 = new Point(x + dataList.Width, y + dataList.Height);
                        Rectangle r  = new Rectangle(0, 0, frm.Width, frm.Height);
                        if (r.Contains(p1) && r.Contains(p2))
                        {
                            dataList.Left = x;
                            dataList.Top  = y;
                            flag          = 1;
                        }
                    }
                    if (flag == 0)
                    {
                        int       x  = p.X + this.Width - dataList.Width;
                        int       y  = p.Y - dataList.Height;
                        Point     p1 = new Point(x, y);
                        Point     p2 = new Point(x + dataList.Width, y + dataList.Height);
                        Rectangle r  = new Rectangle(0, 0, frm.Width, frm.Height);
                        if (r.Contains(p1) && r.Contains(p2))
                        {
                            dataList.Left = x;
                            dataList.Top  = y;
                            flag          = 1;
                        }
                    }


                    if (flag == 0)
                    {
                        dataList.Left = p.X;
                        dataList.Top  = p.Y + this.Height;
                    }

                    //

                    dataList.Visible = true;
                    frm.Controls.Add(dataList);
                    dataList.BringToFront();
                    //
                }
            }
        }