VBA - Visual Basic 2008

Ответить
 • Просмотры: 7
Аватара пользователя
Большой Кол

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



Но мне нужны координаты относительно формы(или какого-либо объекта) откуда их извлечь? Т.е. как мне кажется должно быть какое-то свойство объекта которое их показывает, что-то типа - Объект.Мышь.координаты.Х но какой точный синтаксис? Или я ошибаюсь?
Аватара пользователя
Большой Кол

Re: VBA - Visual Basic 2008

Сообщение Большой Кол »

Простите пожалуйста , а нельзя ли привести пример кода, с PointToClient , так чтобы получить в переменные X1 и Y1 типа Integer координаты мыши на Windows Form ? Просто я только азы изучаю,вот сейчас до графики добрался, читаю я про PointToClient на MCDN , но там примеры мудреные(для меня) . Например я так понял, что тут замешен тип данных Point , я пока не сообразил как его в Integer преобразовать.
Аватара пользователя
Admiral

Re: VBA - Visual Basic 2008

Сообщение Admiral »

Большой Кол в большинстве случаев перевод значений с Point в две переменные Integer не требуется. Point это две переменные Integer объединённые в одну структуру.



Код:

Код: Выделить всё

    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

Сообщение eldish »

Всем привет!

можете помочь?

при открытии веб страницы на WebBrouser надо сделать так что бы Вертикальный и горизонтальные Бары двинулись и показали одну точку

или какой то блок
Аватара пользователя
eldish

Re: VBA - Visual Basic 2008

Сообщение eldish »

Пардон, как Вы это (указание единственной, и при том, похоже, наперед заданной точки посредством скролл-баров) представляете на практике? Типа, хоть картинку можете нарисовать? А то я весь в неведении!
Аватара пользователя
lxa85

Re: VBA - Visual Basic 2008

Сообщение lxa85 »

Может кто подскажет, где ошибся?

Есть форма ввода данных. При попытке внести данные, нажав на кнопку, выскакивает сообщение (в отладке 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

Сообщение lxa85 »

Devils0411, вы уверены, что у класса "Object" есть св-во SetPassword ?

Что-то мне подсказывает, что Object - это исходный класс для всех объектов. Т.е. довольно то таки типовая "болванка", из которой можно сделать что то интересное.



Код:

Код: Выделить всё

Dim objUser As New Object

создать объект objUser из класса Object



Код:

Код: Выделить всё

objUser.SetPassword() - ?
Аватара пользователя
Devils0411

Re: VBA - Visual Basic 2008

Сообщение Devils0411 »

lxa85,

Убрал переменную 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

Сообщение Devils0411 »

Проблему решил. Вот таким образом:



Код:

Код: Выделить всё

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
Ответить

Вернуться в «Программирование и базы данных»