Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: BindingContext и событие PositionChanged Добавлено: 14.03.09 12:18  

Автор вопроса:  Aston | ICQ: 214-179-991 
Привет все я тут вычитал, что у BindingContext есть 2 события PositionChanged и CurrentChanged. Тут вроде как надо прописать процедуру для одного из событий чтобы оно работало.
Пример таков.
Public Class Form1
    Dim bs As BindingManagerBase
   
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SqlDataAdapter1.Fill(DS1, "tPredmet")
        bs = Me.BindingContext(DS1, "tPredmet")
        AddHandler bs.PositionChanged, AddressOf PositionChanged
    End Sub

    Private Sub PositionChanged(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs)
        me.Label3.Text = (((me.BindingContext(ds1,"tPredmet").Position + 1).ToString + " of " & me.BindingContext(ds1,"tPredmet").Count.ToString)
    End Sub
   
End Class


Подскажите где я тут намудрил, думаю что что то в процедуре, хочу понять просто как это дело работает :)

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 14.03.09 12:55
Private Sub PositionChanged(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs)
Чтоб событие обрабатывалось, нужно дописать Handles ...

Ответить

Номер ответа: 2
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #2 Добавлено: 14.03.09 14:04
Стил Бранд, подскажи плизз, как правильно дописать Handles. Я попытался так, но не работает, подчёркивает bs и PositionChanged в AddHandler bs.PositionChanged, AddressOf PositionChanged

  1. Private Sub PositionChangedd(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs) Handles bs.PositionChanged
  2.         me.Label3.Text = (((me.BindingContext(ds1,"tPredmet").Position + 1).ToString + " of " & me.BindingContext(ds1,"tPredmet").Count.ToString)
  3.     End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #3 Добавлено: 14.03.09 14:06
bs подчёркивает в
  1. Private Sub PositionChangedd(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs) Handles bs.PositionChanged
  2.         me.Label3.Text = (((me.BindingContext(ds1,"tPredmet").Position + 1).ToString + " of " & me.BindingContext(ds1,"tPredmet").Count.ToString)
  3.     End Sub

А PositionChanged подчеркнуло в AddHandler

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 14.03.09 18:07
А где ты тут AddHandler видишь?
Если пишешь под 2003-2005 версию, то проверь что сигнатура метода-обработчика совпадала с сигнатурой события

Кстати, а что мешает просто выбрать событие из списка вверху? все автоматом сгенерится...

Ответить

Номер ответа: 5
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #5 Добавлено: 14.03.09 18:22
AddHandler в самом начале посмотри где я вопрос задал. У меня стоит 2005 Вижуал Студиос. И тут же вопрос как проверить сигнатуру - я думаю, что может и здесь я ошибся. И как выбрать из списка вверху, если оно относится к BindingContext, а его в списке нет.

Ответить

Номер ответа: 6
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #6 Добавлено: 15.03.09 00:52
Всё разобрался в чём была проблема - сигнатура не та была и Handles вообще не надо.
  1. Public Class Form1
  2.     Private bs As BindingManagerBase
  3.     
  4.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.         SqlDataAdapter1.Fill(DS1, "tPredmet")
  6.         bs = Me.BindingContext(DS1, "tPredmet")
  7.         AddHandler bs.PositionChanged, AddressOf PositionChanged        
  8.     End Sub
  9.         
  10.     Private Sub PositionChanged(ByVal sender As Object, ByVal e As System.EventArgs)
  11.         Me.Label3.Text = (((Me.BindingContext(DS1, "tPredmet").Position + 1).ToString + " of " & Me.BindingContext(DS1, "tPredmet").Count.ToString))
  12.     End Sub
  13.         
  14. End Class

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам