Private ignoreListLoaded As Boolean Private Sub Form_Load() lstIgnore.Clear cmdRemove.Enabled = False ignoreListLoaded = False ' Первый раз запрашиваем список Form1.SendMessageToUser "", "/ignore-list" End Sub Private Sub Form_Resize() Dim margin As Integer Dim btnWidth As Integer Dim btnHeight As Integer Dim spacing As Integer margin = 120 btnWidth = 1000 btnHeight = 350 spacing = 120 ' Если форма слишком маленькая — не ломаем интерфейс If Me.Width < 2500 Then Exit Sub If Me.Height < 2000 Then Exit Sub ' --- ListBox --- lstIgnore.Left = margin lstIgnore.Top = margin lstIgnore.Width = Me.ScaleWidth - btnWidth - (margin * 3) lstIgnore.Height = Me.ScaleHeight - (margin * 2) ' --- Кнопки справа --- cmdAdd.Width = btnWidth cmdRemove.Width = btnWidth cmdClear.Width = btnWidth cmdOK.Width = btnWidth cmdAdd.Height = btnHeight cmdRemove.Height = btnHeight cmdClear.Height = btnHeight cmdOK.Height = btnHeight cmdAdd.Left = Me.ScaleWidth - btnWidth - margin cmdRemove.Left = cmdAdd.Left cmdClear.Left = cmdAdd.Left cmdOK.Left = cmdAdd.Left cmdAdd.Top = margin cmdRemove.Top = cmdAdd.Top + btnHeight + spacing cmdClear.Top = cmdRemove.Top + btnHeight + spacing cmdOK.Top = cmdClear.Top + btnHeight + spacing End Sub Private Sub cmdOK_Click() Unload Me End Sub Private Sub cmdAdd_Click() Dim user As String Dim i As Integer frmAddUserToIgnore.Show vbModal, Me user = frmAddUserToIgnore.AddedUser If user = "" Then Exit Sub ' Проверка на дубликат For i = 0 To lstIgnore.ListCount - 1 If LCase(lstIgnore.List(i)) = LCase(user) Then MsgBox "User already in ignore list.", vbExclamation Exit Sub End If Next ' ЛОКАЛЬНО добавляем lstIgnore.AddItem user ' Отправляем серверу Form1.SendMessageToUser "", "/ignore-add " & user End Sub Private Sub cmdRemove_Click() If lstIgnore.ListIndex = -1 Then Exit Sub Dim user As String user = lstIgnore.List(lstIgnore.ListIndex) ' Отправляем серверу Form1.SendMessageToUser "", "/ignore-del " & user ' Удаляем ЛОКАЛЬНО lstIgnore.RemoveItem lstIgnore.ListIndex cmdRemove.Enabled = False End Sub Private Sub cmdClear_Click() If MsgBox("Clear entire ignore list?", vbYesNo + vbQuestion) = vbNo Then Exit Sub Form1.SendMessageToUser "", "/ignore-clear" lstIgnore.Clear cmdRemove.Enabled = False End Sub