2012-07-28 3 views
0

Здравствуйте, я работаю над чем-то для своей диссертации, используя Visual Basic 2005. Я хочу, чтобы для показа ниже текстового поля, но я могу получить точное расположение текстового поля с помощью точек рисования.Показывать форму под текстовым полем

Вот мой код прямо сейчас:

Dim x As Integer = Me.txtStockQUnit.Location.X + Me.Location.X + Me.grpMonitoring.Location.X 
Dim y As Integer = Me.txtStockQUnit.Height + Me.txtStockQUnit.Location.Y + Me.Location.Y + Me.grpMonitoring.Location.Y 
My.Forms.frmQuantityUnitDropListGrid.Location = New Point(x, y) 
My.Forms.frmQuantityUnitDropListGrid.ShowDialog() 

ответ

0

Расположение элементов управления на форме являются относительно верхнего левого угла формы, так что вам не нужно использовать Me.Location для размещения текстового поля.

Следующий пример устанавливает позицию текстового поля и форму на Form_Load:

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    'position a textbox on the form relative to the top left corner of the form 
    txtStockQUnit.Location = New Point(100, 25) 

    'position the form relative the top left corner of the primary display 
    Me.Location = New Point(100, 300) 
End Sub 

Примечание: текстовое поле может быть размещен только на поверхности формы не «» середине воздуха.

+0

Я попробовал код это работает на самом деле большой, но моя проблема заключается в том, что текстовое поле из другой формы, то есть другая форма, которая будет отображаться при возникновении события на текстовое поле, которое является GOT_FOCUS, что форма будет показано ниже текстовое поле ... Я использовал местоположение, чтобы указать позицию формы, но он не мог найти текстовое поле. Я также установил начальную позицию формы в ручную, но не привык. Любые идеи? – naviciroel

0

Просто нашел его в сети и работает как то, что я хочу.

Dim ctl as Textbox 'the textbox which the form will show at its bottom 
Dim ctlpos As Point = ctl.PointToScreen(New Point(0, 0)) 'Point.Empty is not function so se Point(0, 0) 

Me.StartPosition = FormStartPosition.Manual 'set it to manual 
Me.Location = New Point(ctlpos.X - 2, ctlpos.Y + ctl.Height - 2) 'then locate its position 
Me.show 
Смежные вопросы