Not (MyImage Is Nothing) Then.Dispose()IfSubSub BtnTypeOfMusicTools_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTypeOfMusicTools.Click.Show()SubSub BtnMusicTools_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMusicTools.Click.Show()SubSub CmbType_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbType.SelectedIndexChanged.Items.Clear()()()()SubSub CmbModel_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbModel.TextChanged()()SubSub BtnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRefresh.Click.CmbType.Items.Clear()_Load(sender, e)SubSub BtnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExit.Click.Close()SubSub New()()SubOverrides Sub Finalize().Finalize()SubClass
Форма Models.vb:
Imports System.IOSystem.Windows.FormsClass ModelsnMaxId As SinglearrModel As New ArrayListarrTypes As New ArrayListdataSource As IEnumerableCurrentModelNumber As Single, CurrentIndex, nPos As SinglecManager As CurrencyManagernAddEdit As ByteCostM As StringmShowSearch As BooleanM As New ModelS As New ToolTypebShowSearch As BooleanSub MusicTools_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load()()= 0_P()_objects()(True, True, True, False, False, True, True)= 0= False.Select(nPos).GroupBoxForSerch.Enabled = False(False)SubSub ReadFromFile()BR As BinaryReaderFS As FileStream= New FileStream(".\Oq.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite)= New System.IO.BinaryReader(FS).BaseStream.Seek(0, SeekOrigin.Begin).Clear()FS.Position < FS.Length.Id = BR.ReadSingle.IdNmb = BR.ReadSingle.NameOfModel = BR.ReadString.TypeOfTool = BR.ReadString.Cost = BR.ReadString.Amount = BR.ReadSingle.Country = BR.ReadString.PictureM = BR.ReadString.Add(New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM))WhileM.Id <= 0 Then.Id = 1.IdNmb = 1.NameOfModel = "".TypeOfTool = "".Cost = "".Amount = 1.Country = "".PictureM = "".Add(New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM))If.DataSource = arrModel.Parent = Me= M.Id= CType(DataGrid2.BindingContext(arrModel), CurrencyManager).Close().Close()SubSub ReadFromFileTypes()i As IntegerBR As BinaryReaderFS As FileStream= New FileStream(".\Types.dat", _.OpenOrCreate, _.ReadWrite)= New BinaryReader(FS).BaseStream.Seek(0, SeekOrigin.Begin).Clear()= 1FS.Position < FS.Length.Id = BR.ReadSingle.TypeOfTool = BR.ReadString.Items.Add(S.TypeOfTool)+= 1.Add(New ToolType(S.Id, S.TypeOfTool))WhileS.Id <= 0 Then.Id = 1.TypeOfTool = "".Add(New ToolType(S.Id, S.TypeOfTool))If.Close().Close()SubSub current_P().Id = Convert.ToSingle(DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 0)).IdNmb = Convert.ToSingle(DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 1)).NameOfModel = DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 2).TypeOfTool = DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 3).Cost = DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 4).Amount = DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 5).Country = DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 6).PictureM = DataGrid2.Item(DataGrid2.CurrentCell.RowNumber, 7)Ab As New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM)= arrModel.IndexOf(Ab)= M.IdSubSub current_objects().TxtId.Text = M.Id.ToString.TxtIdNmb.Text = M.IdNmb.ToString.CmbType.SelectedIndex = M.IdNmb - 1.TxtModel.Text = M.NameOfModel.TxtCost.Text = M.Cost.TxtAmount.Text = M.Amount.TxtCountry.Text = M.Country.TxtPictureM.Text = M.PictureMSubSub ShowButtons(ByVal lAdd As Boolean, ByVal lEdit As Boolean, ByVal lDel As Boolean, ByVal lSave As Boolean, ByVal lCancel As Boolean, ByVal lExit As Boolean, ByVal lFind As Boolean).BtnAdd.Enabled = lAdd.BtnEdit.Enabled = lEdit.BtnDel.Enabled = lDel.BtnSave.Enabled = lSave.BtnCancel.Enabled = lCancel.BtnExit.Enabled = lExit.BtnFind.Enabled = lFindSubSub ButtonFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonFirst.Click.UnSelect(cManager.Position).Position = 0.Select(cManager.Position)_P()_objects()SubSub ButtonPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrev.Click.UnSelect(cManager.Position).Position -= 1.Select(cManager.Position)_P()_objects()SubSub ButtonNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonNext.Click.UnSelect(cManager.Position).Position += 1.Select(cManager.Position)_P()_objects()SubSub ButtonLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLast.Click.UnSelect(cManager.Position).Position = arrModel.Count - 1.Select(cManager.Position)_P()_objects()SubSub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click(False, False, False, True, True, True, False).Enabled = False.PlnNavigation.Enabled = False= 1()(True).TxtModel.Focus()SubSub DataGrid2_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid2.CurrentCellChanged_P()_objects()SubSub ShowBoxes(ByVal lShow As Boolean).TxtModel.ReadOnly = Not lShow.CmbType.Enabled = lShow.TxtCost.ReadOnly = Not lShow.TxtCountry.ReadOnly = Not lShow.TxtAmount.ReadOnly = Not lShow.TxtPictureM.ReadOnly = Not lShowSubSub BtnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEdit.Click(False, False, False, True, True, True, False).Enabled = False.PlnNavigation.Enabled = False= 2(True).TxtModel.Focus()SubSub ClearBoxes().TxtId.Text = "".TxtIdNmb.Text = "".TxtCost.Text = "".TxtModel.Text = "".TxtAmount.Text = "".TxtCountry.Text = "".TxtPictureM.Text = "".CmbType.SelectedIndex = 0SubSub RefreshObjects().DataSource = Nothing.DataSource = arrModel= CType(DataGrid2.BindingContext(arrModel), CurrencyManager)SubSub BtnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDel.ClickMsgBox("Поточну модель оргтехніки " + M.NameOfModel + " буде видалена з файлу." + vbCrLf + "Продовжити?", _.YesNo + MsgBoxStyle.Question, "Видалення моделі") = MsgBoxResult.Yes Then.RemoveAt(CurrentIndex)()arrModel.Count = 0 Then.Id = 1.IdNmb = 1.NameOfModel = "".TypeOfTool = "".Cost = "".Amount = 1.Country = "".PictureM = "".Add(New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM))Ab As New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM)= arrTypes.IndexOf(Ab)= S.IdIf().Position = 0_objects()("Запис видалено")IfSubSub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.ClickLen(Me.TxtModel.Text) = 0 Then("Не введено назви моделі", MsgBoxStyle.Information, "Увага!").TxtModel.Focus()SubIfLen(Me.TxtCost.Text) = 0 Then("Не введено вартості", MsgBoxStyle.Information, "Увага!").TxtCost.Focus()SubIf(True, True, True, True, True, True, True).Enabled = True.PlnNavigation.Enabled = True(nAddEdit)= 0SubSub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click(False, False, False, True, True, True, False).Enabled = True.PlnNavigation.Enabled = True_objects()(True)= 0SubSub SaveToArrayList(ByVal nAddEdit As Byte)Case nAddEdit1.Id = nMaxId + 1.IdNmb = Me.CmbType.SelectedIndex + 1.NameOfModel = Me.TxtModel.Text.TypeOfTool = Me.CmbType.SelectedItem.Cost = Me.TxtCost.Text.Amount = Me.TxtAmount.Text.Country = Me.TxtCountry.Text.PictureM = Me.TxtPictureM.Text.Add(New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM)).Position = arrModel.Count - 1= nMaxId + 12.Id = CurrentModelNumber.IdNmb = Me.CmbType.SelectedIndex + 1.NameOfModel = Me.TxtModel.Text.TypeOfTool = Me.CmbType.SelectedItem.Cost = Me.TxtCost.Text.Amount = Me.TxtAmount.Text.Country = Me.TxtCountry.Text.PictureM = Me.TxtPictureM.TextAb As New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM).Item(CurrentIndex) = AbSelect()_P()_objects()(False)()("Записи збережено")SubSub SaveAllToFile()BW As BinaryWriterFS As FileStreamaListEnum As IEnumerator= New FileStream(".\officeequipment.dat", FileMode.Create, FileAccess.Write)= New BinaryWriter(FS).BaseStream.Seek(0, SeekOrigin.Begin)= arrModel.GetEnumeratoraListEnum.MoveNext(BW, aListEnum.Current)While.Close().Close()= NothingSubSub SaveRecord(ByVal writer As BinaryWriter, ByVal record As Model).Write(record.Id).Write(record.IdNmb).Write(record.NameOfModel).Write(record.TypeOfTool).Write(record.Cost).Write(record.Amount).Write(record.Country).Write(record.PictureM)SubSub BtnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFind.Click.TxtSearchModel.Focus()bShowSearch = False Then= True.Text = "Завершити пошук".GroupBoxForSerch.Enabled = True= False.Text = "Пошук".GroupBoxForSerch.Enabled = FalseIf.Checked = True.Text = "".Text = "".Text = ""SubSub BtnDoSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDoSearch.Click.UnSelect(cManager.Position)RadioButton1.Checked = True Then= Search(1, (Trim(Me.TxtSearchModel.Text)).ToUpper)Me.TxtSearchModel.Text = "" Then("Не введено жодного значення для пошуку!", MsgBoxStyle.Information, "УВАГА!!!")IfIfRadioButton2.Checked = True Then= Search(2, (Trim(Me.TxtSearchCost.Text)).ToUpper)Me.TxtSearchCost.Text = "" Then("Не введено жодного значення для пошуку!", MsgBoxStyle.Information, "УВАГА!!!")IfIfRadioButton3.Checked = True Then= Search(3, (Trim(Me.TxtSearchCountry.Text)).ToUpper)Me.TxtSearchCountry.Text = "" Then("Не введено жодного значення для пошуку!", MsgBoxStyle.Information, "УВАГА!!!")IfIfnPos >= 0 Then.Position = nPos.Focus().Select(nPos)("Запис не знайдено!", MsgBoxStyle.Information, "УВАГА!!!")IfSubFunction Search(ByVal bField As Integer, ByVal sStr As String) As Integeritm As Object, i As IntegerCurA As New Model(0, 0, "", "", "", 0, "", "")= -1= -1bField = 1 ThenEach itm In arrModel+= 1= itmString.Compare(sStr, 0, (CurA.NameOfModel).ToUpper, 0, Len(sStr), False) = 0 Then= iFunctionIfbField = 2 ThenEach itm In arrModel+= 1= itmString.Compare(sStr, 0, (CurA.Cost).ToUpper, 0, Len(sStr), False) = 0 Then= iFunctionIfbField = 3 ThenEach itm In arrModel+= 1= itmString.Compare(sStr, 0, (CurA.Country).ToUpper, 0, Len(sStr), False) = 0 Then= iFunctionIf("Запис не знайдено!", MsgBoxStyle.Information, "УВАГА!!!")IfFunctionSub BtnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExit.Click.Close()SubSub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged.Enabled = True.Focus().Enabled = False.Enabled = False.Text = "".Text = ""SubSub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged.Enabled = True.Focus().Enabled = False.Enabled = False.Text = "".Text = ""SubSub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged.Enabled = True.Focus().Enabled = False.Enabled = False.Text = "".Text = ""SubSub TxtAmount_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TxtAmount.ValidatingNot IsNumeric(TxtAmount.Text) Then("У це поле слід вводити число!").Text = "1"IfSubSub DataGrid2_Navigate(ByVal sender As System.Object, ByVal ne As System.Windows.Forms.NavigateEventArgs) Handles DataGrid2.NavigateSubSub CmbType_ChangeUICues(ByVal sender As Object, ByVal e As System.Windows.Forms.UICuesEventArgs) Handles CmbType.ChangeUICuesSubSub CmbType_ControlAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles CmbType.ControlAddedSubSub CmbType_DataSourceChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbType.DataSourceChangedSubSub CmbType_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbType.EnabledChangedSubSub CmbType_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles CmbType.KeyUpSubSub CmbType_RegionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbType.RegionChangedSubClass
Форма Types.vb:
Imports System.IOSystem.Windows.FormsClass TypesnMaxId As SinglearrTypes As New ArrayListdataSource As IEnumerableCurrentTypeNumber As Single, CurrentIndex, nPos, nOldPos As SinglecManager As CurrencyManagernAddEdit As BytebShowSearch As BooleanS As New ToolTypeSub Types_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load()= 0_P()_objects()(True, True, True, True, False, False)= 0= False.Select(nPos).Enabled = False(False)SubSub ReadFromFile()BR As BinaryReaderFS As FileStream= New System.IO.FileStream(".\Types.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite)= New System.IO.BinaryReader(FS).BaseStream.Seek(0, SeekOrigin.Begin).Clear()FS.Position < FS.Length.Id = BR.ReadSingle.TypeOfTool = BR.ReadString.Add(New ToolType(S.Id, S.TypeOfTool))WhileS.Id <= 0 Then.Id = 1.TypeOfTool = "".Add(New ToolType(S.Id, S.TypeOfTool))If.DataSource = arrTypes= S.Id= CType(DataGrid1.BindingContext(arrTypes), CurrencyManager).Close().Close()SubSub current_P().Id = Convert.ToSingle(DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 0)).TypeOfTool = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 1)Ab As New ToolType(S.Id, S.TypeOfTool)= arrTypes.IndexOf(Ab)= S.IdSubSub Current_objects().TxtId.Text = S.Id.ToString.TxtTypeOfTool.Text = S.TypeOfToolSubSub showbuttons(ByVal lAdd As Boolean, ByVal lDel As Boolean, ByVal lFind As Boolean, ByVal lEdit As Boolean, _lSave As Boolean, ByVal lCancel As Boolean).BtnAdd.Enabled = lAdd.BtnDel.Enabled = lDel.BtnFind.Enabled = lFind.BtnEdit.Enabled = lEdit.BtnSave.Enabled = lSave.BtnCancel.Enabled = lCancelSubSub ButtonFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonFirst.Click.UnSelect(cManager.Position).Position = 0.Select(cManager.Position)_P()_objects()SubSub ButtonPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrev.Click.UnSelect(cManager.Position).Position -= 1.Select(cManager.Position)_P()_objects()SubSub ButtonNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonNext.Click.UnSelect(cManager.Position).Position += 1.Select(cManager.Position)_P()_objects()SubSub ButtonLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLast.Click.UnSelect(cManager.Position).Position = arrTypes.Count - 1.Select(cManager.Position)_P()_objects()SubSub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click(False, False, False, False, True, True).Enabled = False.PlnNavigate.Enabled = False= 1()(True).TxtTypeOfTool.Focus()SubSub ShowBoxes(ByVal lShow).TxtTypeOfTool.ReadOnly = Not lShowSubSub ClearBoxes().TxtId.Text = "".TxtTypeOfTool.Text = ""SubSub ReturnOldContentsBoxes()_objects()SubSub BtnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDel.ClickMsgBox("Поточний вид " + S.TypeOfTool + " буде видалено з файлу." + vbCrLf + "Продовжити?", _.YesNo + MsgBoxStyle.Question, "Видалення виду") = MsgBoxResult.Yes Then.RemoveAt(CurrentIndex)()arrTypes.Count = 0 Then.Id = 1.TypeOfTool = "".Add(New ToolType(S.Id, S.TypeOfTool))Ab As New ToolType(S.Id, S.TypeOfTool)= arrTypes.IndexOf(Ab)= S.IdIf().Position = 0_objects()("Запис видалено")IfSubSub RefreshObjects().DataSource = Nothing.DataSource = arrTypes= CType(DataGrid1.BindingContext(arrTypes), CurrencyManager)SubSub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.ClickLen(Me.TxtTypeOfTool.Text) = 0 Then("Не введено назви!", MsgBoxStyle.Information, "Увага!").TxtTypeOfTool.Focus()SubIf(True, True, True, True, False, False).Enabled = True.PlnNavigate.Enabled = True(nAddEdit)= 0SubSub BtnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEdit.Click(False, False, False, False, True, True).Enabled = False.PlnNavigate.Enabled = False= 2(True).TxtTypeOfTool.Focus()SubSub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click_objects()SubSub SaveToArrayList(ByVal nAddEdit As Byte)Case nAddEdit1.Id = nMaxId + 1.TypeOfTool = Me.TxtTypeOfTool.Text.Add(New ToolType(S.Id, S.TypeOfTool)).Position = arrTypes.Count - 1= nMaxId + 12.Id = CurrentTypeNumber.TypeOfTool = Me.TxtTypeOfTool.Text.TxtId.Text = S.Id.TxtTypeOfTool.Text = S.TypeOfToolAb As New ToolType(S.Id, S.TypeOfTool).Item(CurrentIndex) = AbSelect()_P()_objects()(False)()("Записи збережено")SubSub SaveAllToFile()BW As BinaryWriterFS As FileStreamaListEnum As IEnumerator= New FileStream(".\Types.dat", System.IO.FileMode.Create, System.IO.FileAccess.Write)= New BinaryWriter(FS).BaseStream.Seek(0, SeekOrigin.Begin)= arrTypes.GetEnumerator()aListEnum.MoveNext(BW, aListEnum.Current)While.Close().Close()= NothingSubSub SaveRecord(ByVal writer As BinaryWriter, ByVal record As ToolType).Write(record.Id).Write(record.TypeOfTool)SubSub DataGrid1_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged_P()_objects()SubSub BtnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFind.ClickbShowSearch = False Then.Enabled = True= True.Text = "Завершити пошук".Enabled = False= False.Text = "Пошук"If.TxtSearchTypeOfTool.Text = "".TxtSearchTypeOfTool.Focus()SubSub BtnDoSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDoSearch.Click.UnSelect(cManager.Position)Len(Me.TxtSearchTypeOfTool.Text) > 0 Then= Search(Trim((Me.TxtSearchTypeOfTool.Text).ToUpper))nPos >= 0 Then.Position = nPos.Focus().Select(nPos)("Запис не знайдено", MsgBoxStyle.Information, "Увага!")If("Не введено жодного значення" + "для пошуку", MsgBoxStyle.Information, "Увага!")IfSubFunction Search(ByVal sStr As String) As Integeritm As Object, i As IntegerCurA As New ToolType(0, "")= -1= -1Each itm In arrTypes+= 1= itmString.Compare(sStr, 0, (CurA.TypeOfTool).ToUpper, 0, Len(sStr), False) = 0 Then= iFunctionIfFunctionSub BtnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExit.Click.Close()SubSub DataGrid1_Navigate(ByVal sender As System.Object, ByVal ne As System.Windows.Forms.NavigateEventArgs) Handles DataGrid1.NavigateSubClass