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(); // } } }