VBA - Visual Basic 2008
-
Большой Кол
Re: VBA - Visual Basic 2008
Доброй ночи, вы писали :
В простейшем случаи
Код:
Protected Overrides Sub OnMouseClick(ByVal e As System.Windows.Forms.MouseEventArgs)
MsgBox("Координаты клика мыши в области формы: " & e.Location.ToString, MsgBoxStyle.Information, "Отслежен клик мыши")
End Sub
А нельзя ли уточнить, я хочу получить координаты X Y курсора мыши . Координаты мыши на экране получить достаточно просто :
Dim X1 As Integer
Dim Y1 As Integer
X1 = MousePosition.X.ToString
Y1 = MousePosition.Y.ToString
Но мне нужны координаты относительно формы(или какого-либо объекта) откуда их извлечь? Т.е. как мне кажется должно быть какое-то свойство объекта которое их показывает, что-то типа - Объект.Мышь.координаты.Х но какой точный синтаксис? Или я ошибаюсь?
В простейшем случаи
Код:
Protected Overrides Sub OnMouseClick(ByVal e As System.Windows.Forms.MouseEventArgs)
MsgBox("Координаты клика мыши в области формы: " & e.Location.ToString, MsgBoxStyle.Information, "Отслежен клик мыши")
End Sub
А нельзя ли уточнить, я хочу получить координаты X Y курсора мыши . Координаты мыши на экране получить достаточно просто :
Dim X1 As Integer
Dim Y1 As Integer
X1 = MousePosition.X.ToString
Y1 = MousePosition.Y.ToString
Но мне нужны координаты относительно формы(или какого-либо объекта) откуда их извлечь? Т.е. как мне кажется должно быть какое-то свойство объекта которое их показывает, что-то типа - Объект.Мышь.координаты.Х но какой точный синтаксис? Или я ошибаюсь?
-
Большой Кол
Re: VBA - Visual Basic 2008
Простите пожалуйста , а нельзя ли привести пример кода, с PointToClient , так чтобы получить в переменные X1 и Y1 типа Integer координаты мыши на Windows Form ? Просто я только азы изучаю,вот сейчас до графики добрался, читаю я про PointToClient на MCDN , но там примеры мудреные(для меня) . Например я так понял, что тут замешен тип данных Point , я пока не сообразил как его в Integer преобразовать.
-
Admiral
Re: VBA - Visual Basic 2008
Большой Кол в большинстве случаев перевод значений с Point в две переменные Integer не требуется. Point это две переменные Integer объединённые в одну структуру.
Код:
В этом примере координаты в сообщении согласно клиентской формы, а в самом заголовке в координатах экрана.
Координаты e.Location уже даны относительно формы на экране, по этому для примера PointToClient взят Cursor.Position.
Если же в PointToClient подставить e.Location то метод может вернуть отрицательные координату(ы).
В сообщении 330 для перевода в переменную Integer применять ToString не требуется.
Код:
Код: Выделить всё
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
'MsgBox(PointToClient(e.Location).ToString, MsgBoxStyle.Information, e.Location.ToString)
MsgBox(PointToClient(Cursor.Position).ToString, MsgBoxStyle.Information, Cursor.Position.ToString)
'Dim X As Integer = PointToClient(e.Location).X
'Dim Y As Integer = PointToClient(e.Location).Y
End SubВ этом примере координаты в сообщении согласно клиентской формы, а в самом заголовке в координатах экрана.
Координаты e.Location уже даны относительно формы на экране, по этому для примера PointToClient взят Cursor.Position.
Если же в PointToClient подставить e.Location то метод может вернуть отрицательные координату(ы).
В сообщении 330 для перевода в переменную Integer применять ToString не требуется.
-
Большой Кол
Re: VBA - Visual Basic 2008
Огромное спасибо. PointToClient(Cursor.Position).ToString показывает именно то что мне нужно, осталось лишь придумать как выцедить из них цифры. PointToClient(e.Location) , по моему показывает данные от балды, но это не страшно, разберусь.
-
eldish
Re: VBA - Visual Basic 2008
Всем привет!
можете помочь?
при открытии веб страницы на WebBrouser надо сделать так что бы Вертикальный и горизонтальные Бары двинулись и показали одну точку
или какой то блок
можете помочь?
при открытии веб страницы на WebBrouser надо сделать так что бы Вертикальный и горизонтальные Бары двинулись и показали одну точку
или какой то блок
-
eldish
Re: VBA - Visual Basic 2008
Пардон, как Вы это (указание единственной, и при том, похоже, наперед заданной точки посредством скролл-баров) представляете на практике? Типа, хоть картинку можете нарисовать? А то я весь в неведении!
-
lxa85
Re: VBA - Visual Basic 2008
Может кто подскажет, где ошибся?
Есть форма ввода данных. При попытке внести данные, нажав на кнопку, выскакивает сообщение (в отладке VS): "Общий член "SetPassword" для типа Object не найден"
Код:
Есть форма ввода данных. При попытке внести данные, нажав на кнопку, выскакивает сообщение (в отладке VS): "Общий член "SetPassword" для типа Object не найден"
Код:
Код: Выделить всё
Public Class FormPass
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Label1.Text = "Смена пароля для пользователя: " & vbCrLf & (FormLentaAD.ListBox2.SelectedItem)
Me.CheckBox_chg.Checked = False
End Sub
Public Sub Buttonchg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonchg.Click 'Кнопка "Сменить"
Dim objUser As New Object
If newpwd IsNot confimpwd Then
objUser.SetPassword(Me.newpwd.Text.ToString)
objUser.AccountDisabled = False
'Установка смены пароля при первом входе
If CheckBox_chg.Checked Then objUser.Put("pwdLastSet", 0)
Else : MsgBox("Пароли не совпадают")
End If
End Sub
End Class-
lxa85
Re: VBA - Visual Basic 2008
Devils0411, вы уверены, что у класса "Object" есть св-во SetPassword ?
Что-то мне подсказывает, что Object - это исходный класс для всех объектов. Т.е. довольно то таки типовая "болванка", из которой можно сделать что то интересное.
Код:
создать объект objUser из класса Object
Код:
Что-то мне подсказывает, что Object - это исходный класс для всех объектов. Т.е. довольно то таки типовая "болванка", из которой можно сделать что то интересное.
Код:
Код: Выделить всё
Dim objUser As New Objectсоздать объект objUser из класса Object
Код:
Код: Выделить всё
objUser.SetPassword() - ?-
Devils0411
Re: VBA - Visual Basic 2008
lxa85,
Убрал переменную ObjUser, как класс. Подправил код
Код:
Но сравнения не происходит. Если я в форме, указываю пароль и подтверждение одинаковыми - выдается сообщение, что пароли не верны.
Т.е. сравнение переменных newpwd, confimpwd происходят некорректно.
Переменные задаются в TextBox'ах
Убрал переменную ObjUser, как класс. Подправил код
Код:
Код: Выделить всё
Public Sub Buttonchg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonchg.Click 'Кнопка "Сменить"
If newpwd Is confimpwd Then
CurentUserObj.SetPassword(Me.newpwd.Text.ToString)
CurentUserObj.AccountDisabled = False
'Установка смены пароля при первом входе
If CheckBox_chg.Checked Then CurentUserObj.Put("pwdLastSet", 0)
MsgBox("Пароль для пользователя изменен")
Else : MsgBox("Пароли не совпадают")
End If
End Sub
End ClassНо сравнения не происходит. Если я в форме, указываю пароль и подтверждение одинаковыми - выдается сообщение, что пароли не верны.
Т.е. сравнение переменных newpwd, confimpwd происходят некорректно.
Переменные задаются в TextBox'ах
-
Devils0411
Re: VBA - Visual Basic 2008
Проблему решил. Вот таким образом:
Код:
Код:
Код: Выделить всё
Select Case String.Compare(newpwd.Text, confimpwd.Text, False)
Case Is = 0
CurentUserObj.SetPassword(Me.newpwd.Text)
CurentUserObj.AccountDisabled = False
'Установка смены пароля при первом входе
If Me.CheckBox_chg.Checked Then CurentUserObj.Put("pwdLastSet", 0)
MsgBox("Пароль для пользователя изменен")
Me.Close()
Case Is 0
MsgBox("Пароли не совпадают")
End Select