|
[ Главная ] [ Статьи ] [ Для новичков ] [ Примеры ] [ Программы ] [ Microsoft Agent 2.0 ] [ Пособие ] [ Уроки ] [ Разное ] |
4. Язык программирования Visual Basic4.1 Команда Print(англ. print: печатать)При помощи команды Print можно из какой-нибудь процедуры печатать тексты на форме. Текст должен при этом стоять в кавычках ("). Пример: [мои прим.: тексты в кавычках не мои и переведены почти дословно :-))))] Print "Эй, перед монитором! Привет!" Пишет на окне: Эй, перед монитором! Привет! Команду Print можно применять также для решения: Print "413 + 512 равно" Print 413 + 512 Выдаёт на форме: 413 + 512 равно
Всё, что стоит после команды Print в кавычках, при выполении компьютером, будут буква за буквой, цифра за цифрой и знак за знаком точно также "списаны". А всё, что стоит позади команды, не в кавачках, должно быть написано программным языком Basic - это будет "переведено" компьютером. Так, к примеру, 413 + 512 для компьютера значит "результат сложения 413 плюс 512". И этот результат должен быть при помощи команды Print напечатан. Поэтому там и стоит "925". При помощи команды Print можно также печатать значения свойств или переменных (cм. ниже): Print Form1.Caption Пишет именно то, что
стоит в его заголовке, т.к. Form1.Caption означает для компьютера "значение
свойства надписи окна с именем Form1". Ну, а что будет напечатано командой
И ещё три заметки к этой команде: 1.Деление и умножение в Basic'e производится при помощи звёздочки (*) и слэша (/). Кроме того компьютер понимает нецелые числа, однако вместо запятой нужно применять точку, как в Англии и США. Print 8 / 2 Print 3 * 2.5 выдаст: 4
Однако в результате, который будет выдан, число 7,5 будет написано с запятой! Только в самих Basic-кодах нужно применять точку. 2.Если нужно распечатать несколько вещей в одной строке, то их нужно перечислить всех после команды Print через точку с запятой (;): Print "1 + 1 всё ещё равно "; 1 + 1; Print ", а три умножить на нуль равно "; 3 * 0 получим: 1 + 1 всё ещё равно 2, а три умножить на три равно 0 3.Если нужно напечатать текст не с начала строки, можно использовать указание Tab(...). Текст будет напечатан, как и стоит после Tab в скобках: Print Tab(10) "Кое-что неопровержимо: мяч круглый!" Print Tab(10) "Ха-ха!"; Tab(30) "Прфффффц!" Получим на экране:
Кое-что неопровержимо: мяч круглый!
Между "Ха-ха!" и левым краем 10 пробелов, а между "Прфффффц!" и левым краем (!) 30 пробелов. Внимание: символы на мониторе по-различному широкие, и W шире, чем i. Поэтому между позицией 10 и позицией 30 необязательно поместятся 20 букв! 4.2 Графические командыПри помощи графических команд можно создавать по-настоящему красивые рисунки в вашем приложении [мои прим.: у каждого свои вкусы и запросы - у кого брилианты слишком мелкие, а у кого суп слишком жидкий...]. Чтобы "объяснить" в цифрах компьютеру что и куда он должен писать используют координаты. Обращение с координатами Вы будете учить в этом курсе. Расстояния на мониторе, в Visual Basic измеряются не в сантиметрах, а с помощью специальной единицы измерения "твип". Один твип - это очень маленькое расстояние: взгляните на форму в режиме "design" - она вся изрисована серыми точками. Так вот от точки до точки помещается 120 твипов! Итак, чтобы начертить линию на форме, нужно задать координаты её начала и конца. Пример: Line (1000,1500)-(5000,1500) Line (начальная точка)-(конечная точка) Этой командой будет нарисована горизонтальная линия, т.к. начальная точка и конечная точка имеют одинаковое расстояние к верхнему краю окна (1500 твипов). Начало линии - 1000 твипов от левого края формы, а конец линии на 5000 твипов. Всего линия 4000 твипов длиной. Если нужно, можно задавать ещё и цвет, в котором надо рисовать (чёрный цвет стоит по умолчанию). Для этого однако нужно знать, как Windows обращается с цветами: в компьютере имеется для каждого цвета, которые он "знает", просто одно число, т.к. числа, как известно, компьютер может обрабатывать особенно хорошо. Но для нас труднее понять, что светло-коричневый цвет соответсвует числу 8887245, поэтому в бэйсике имеется "компромисс": GRB-функция. Этим компьютеру "объясняют", как должны смешиваться цвета. В телевизорах и компьютерных мониторах каждый цвет - это смесь из красного, зелёного и синего цвета. В каждом цвете разное содержание каждого из них. Однако это смешивание не действует, как в ящике с красками: если, например, смешать одинаково много синего, зелёного и красного, можно получить серый цвет. Line (1000,1500)-(5000,3000), RGB(255,0,0) Этим рисуется красная диагональная линия. Цвет описан с помощью RGB-функции, где отдельно задаётся каждый цвет (в пределах от 0 до 255). По этому принципу можно достигнуть любого цвета. Давайте я покажу, как это делается. Важные
цвета:
Итак, например, оранжевый цвет в бэйсике называется RGB(255,128,0). Если нужно нарисовать прямоугольник, для этого хватит всего одной Line-команды, в которой вместо начальной и конечной точки нужно задать координаты левого верхнего и правого нижнего угла прямоугольника, и после цвета вписать ещё ", B" (В, потому что прямоугольник на английском называется box): Line
(1000,1500)-(5000,3000),RGB(255,0,0),B
чертит вместо линии прямоугольник из красных линий. Можно также "прицепить" за "B" букву "F". Тогда прямоугольник будет заполенен краской. Если Вы не хотите задавать цвет, обе запятые писать нужно всё-равно: при помощи команды Line (1000,1500)-(5000,3000),,BF Будет начерчен чёрный, заполненый прямоугольник. Будьте внимательны и не пропускайте запятые между которыми мог бы стоять цвет! Рисовать круги компьютер может, конечно же, тоже! Для этого имеется команда Circel. К этому нужно, конечно, добавить где и каким размером должен быть круг. Для этого описывают сначала координаты середины круга, и потом задают величину круга - его радиус в твипах. Кроме того можно устанавливать цвет круга. Circle (3000,4000),2000,RGB(0,190,0) компьютер рисует тёмно-зелёный круг с радиусом 2000 твипов и серединой с координатами (3000,4000). Также можно рисовать отдельные точки, а именно при помощи команды PSet: PSet (1000,500),RGB(255,128,0) рисует оранжевую точку с координатами (1000,500). Цвет, как и во всех других командах, можно тоже убирать. И, наконец, ещё одна важная команда: при помощи команды Cls можно всё, что было прежде нарисовано или написано командами PSet, Line, Print или Circle просто стереть. Если на форме находятся какие-нибудь объекты, они при этом стёрты не будут. Имя Cls происходит из ангийских слов clear screen: очистить экран. 4.3 Переменные и константыКонстанты - это просто имена для цифр или набора символов. После написания программы, её будет намного проще читать, понимать, если, например, повсюду, где есть число pi (pi = 3,14159...), действительно стоит Pi, а не каждый раз цифры 3.14159. Поэтому в начале процедуры пишут: const PI = 3.14159 и если где-нибудь позже будет написано: Print 2 * PI компьютер заменит Pi нужным числом и выдаст 6,28318 на форме. Между VB-программистами принято константы писать всегда только большими буквами, чтобы их можно было отличить от переменных. Переменные намного важнее констант, возможно даже важнейшая часть программирования. Переменные и константы вообще-то почти одно и тоже, кроме одного различия: значение переменной - числа или символы - в ходе программы могут быть изменены. Если к примеру в программе-игре имеется переменная Punktzahl, содержащая определённое кол-во пунктов, где-нибудь можно написать: Punktzahl = 1000 и для всех команд, которые появятся после этого, переменная Punktzahl будет всегда равна числу 1000 - пока возможно не появится комманда "Punktzahl = 1001". Punktzahl называют именем переменной, и 1000 в этом примере является её значением. Команду "Punktzahl = 1000" называют присвоением: переменной Punktzahl будет присвоено значение 1000. Переменные могут содержать не только числа и символы, но и даты, время и т.д. Если UserName, BirthDay и EndOfTime переменные, тогда можно написать: UserName = "John" (здесь очень важны кавычки, т.к. иначе компьютер подумает, что John тоже является переменной!) BirthDay = #29.10.1970# EndOfTime = #8:30# (как символы выделяют кавычками, так дату или время выделяют символoм "#"). Дату и время можно поместить в одну переменную: DateAndTime = #13.2.1994 11:30# И если после этого в программе появится команда Print UserName; " должен "; DateAndTime; Print " к зубному врачу!" компьютер напишет на форме: John должен 13.02.1994 11:30:00 к зубному врачу! Важно: Если в программе нужно применять переменную, её нужно прежде объявить (для этого используется слово продекларировать), а именно в отведённом для этого месте кода. Найти это место можно в окне Code, кликнув вверху слева, где стоят объекты, и в появившемся меню выбрать "(General)". В обоих верхних полях высвятятся надписи "(General)" и "(Declarations)". На этом месте должна была бы стоять строка "Option Explicit". Здесь нужно описать все переменные, которые будут использоваться в программе, а именно с ключевым словом Dim. Например, если нужна переменная Punktzahl, то нужно вписать следующее: Dim Punktzahl Команда Dim сообщает компьютеру: создай переменную с именем, которое следует после Dim. Внимание: переменная не получает при этом никакого значения, и его можно присвоить внутри какой-нибудь процедуры. И ещё кое-что об именах переменных: имена перменных в Visual Basic могут состоять только из 40 букв, цифр и символа "_" (на клавиатуре находится под тирe "-"). Однако начало имени должно быть буквой! Кроме того нельзя применять слова зарезервированые бэйсиком, как имена переменнных, т.к. иначе компьютер всё перепутает... Если это случится просто из-за невнимательности и Вы применили зарезервированное слово, это легко можно будет определить, т.к. слово станет синим, как только курсор переместится на другую строку. Тогда нужно выдумать какое-нибудь другое имя перменной. Примеры для возможных имён перменных: Appel; Level42; PunktZahl; Punktzahl_die_der_Spieler_erreicht_hat; Hui_Buh Примеры для невозможных имён перменных: 4gewinnt (начинается числом) Name (ключевое слово бэйсика) Hui Buh (состоит из двух слов) Hoechste_Punktzahl_die_je_ein_Spieler_erreicht_hat (длиной больше сорока символов) Stan&Ollie (содержит недопустимый символ) 4.4 Свойства объектовСвойства объектов имеют
много общего с переменными: так, например, они тоже имеют имя (к примеру
Form.Caption) и значение (к примеру "Моя первая программа V2.0b"). Большинству
из них можно также присваивать значения в ходе программы:
Form.Caption = "Теперь здесь стоит что-то другое..." впечатляет, когда вдруг в заголовке окна вдруг появляется что-нибудь другое! Кроме того, можно кругом, где только могут стоять имена переменных, подставлять их имена: Line (1000,1000)-(5000,5000),Form.BackColor,BF означает, на форме должен быть нарисован прямоугольник таким же цветом, как и сама форма. Т.е. в этом случае он будет невидим. 4.5 Команды со значением (функции)Если Basic-программисты говорят о функциях, то они подразумевают под ними специальные команды, которые находятся в программах там, где должны быть числа или символы. Пример, который был уже затронут выше - это RGB-функция, которую подставляют туда, где должны быть коды цветов. Вместо того, чтобы в программе писать : PSet (500,1000), 8887245 чтобы нарисовать свело-коричневую точку, можно просто написать: PSet (500,1000), RGB(205,155,135) что означает тоже самое! RGB-функция переводит части красного, зелёного и синего цветов в длиный номер цвета. Поэтому Print RGB(205,155,135) не выдаст ничего другого как число 8887245 в окне. И тут же другой пример функции: Print Weekday("29.10.1970") компьютер напишет цифру 5, номер дня недели той даты, которая стоит в скобках (причём: 1-воскресенье, 2-понедельник, 3-вторник и т.д.). Короче дата будет переведена в номер дня недели. (англ. weekday: день недели) Всё, что стоит после функции в скобках, называют аргументами или параметрами функции. "Результат" функции зависит, конечно же, от этих параметров: если я впишу другую дату, то и получу другой день недели (во всяком случае чаще всего). Важно то, чтобы были заданы правильные параметры: если функции нужна дата, то и нужно дать ей дату, иначе появится сообщение об ошибке (и функция будет бессмысленной). 4.6 MsgBox, InputBoxПри помощи этих двух команд можно вызывать так называемые диалоговые окна на экран - это такие окна, которые о чём-то уведомляют пользователя или о чём-то спрашивают. Тогда пользователь "принуждён" на них отреагировать, т.к. пока он этого не сделает, не сможет использовать программу дальше. С помощью команды MsgBox (англ. message box: ящик сообщения) получают окно, в котором просто стоит текст, и в котором можно видеть некоторые иконки. Пользователь должен ответить, чтобы продолжить дальше. Простейшая программа, если нужен только текст и ОК-кнопка: MsgBox "Не надо паники!" появится маленькое окошко с текстом "Не надо паники!". Окошко с заголовком можно получить при помощи команды: MsgBox "Не надо паники!", 0,"Клёво..." Почему между запятыми стоит нуль сейчас будет разъяснено, но сначала вот что: позади второй запятой можно определять надпись для заголовка диалогового окна, в этом примере - "Клёво...". Если эта часть будет пропущена, в этом заголовке будет просто имя проекта. А теперь этот "мистический" нуль: эта часть кода определяет для компьютера, какая иконка и сколько кнопок должно быть показано в диалоговом окне. Часть этого кода я хочу здесь раскрыть: 0 показать только "OK" (это будет сделано также тогда, когда там не будет ничего вообще). 1 показать "OK" и "Отмена". 2 показать "Отмена", "Повторить" и "Игнорировать". 3 показать "Да", "Нет" и "Отмена". 4 показать "Дa" и "Нет". 5 показать "Повторить" и "Отмена". Команда MsgBox "... пока смерть не разлучит вас?", 3 поставит пользователя перед выбором между "Да", "Нет" и "Отмена". Однако такие команды в программах не встречаются, т.к. программа так никогда может и не узнать решение пользователя! Поэтому для таких случаев имеется практичный вариант команды MsgBox: команда MsgBox как функция! Можно к примеру объявить переменную "Reshenie" и потом написать: Reshenie = (MsgBox "... пока смерть не разлучит вас?", 3) Если эта строка будет выполнена, на экране появится диалоговое окно с тремя кнопками, и в зависимости от того какую кнопку нажмёт пользователь, переменная Reshenie получит соответсвующее значение: Значение Нажатая кнопка 1 OK 2, 3 Отмена 4 Повторить 5 Игнорировать 6 Дa 7 Нет Программа может тогда при помощи команды If (см. ниже) продолжать в зависимости от значения переменной. Но только как функция имеется очень похожая команда InputBox (англ. input: ввод). Которую применяют, если от пользователя требуется больше чем просто решение - например, его имя или возвраст. Пример: FirstName = InputBox("Введите ваше имя!") Выдаст диалоговое окно с текстом, двумя кнопками (ОК и Отмена) и полем для ввода (некрасивое, но практичное). То, что введёт пользователь будет стоять в переменной FirstName. Если будет нажата кнопка "Отмена", тогда перменная FirstName окажется пустой. Как и у команды MsgBox имеется возможность задать заголовок окна. Также имеется возможность вписать текст в текстовое поле, так сказать, предложить пользователю один из вариантов. Otpusk = InputBox("Ваше времяпровождение?","Что я люблю","Компьютер") выдаст под заголовком "Что я люблю" вопрос "Ваше времяпровождение?" и в поле ввода уже будет стоять ответ "Компьютер". [мои прим.: Вы должны будете либо согласится с предлогаемым вариантом и подтвердить или ввести свой и подтвердить]. Попробуйте! 4.7 Математические операторыРешать компьютер, конечно же, может! Повсюду в Basic-программе, где стоят цифры, может вместо них стоять также сложные математические выражения, из которых полается одно число. Компюьер знает также правила деления на нуль, скобки и т.д. Кроме того, повсюду, где находятся цифры могут находиться переменные, константы, функции или также свойства объектов, вместо которых компьютер подставит потом числа. Математические операторы в Visual Basic (в порядке, в котором они будут решаться): () скобки ^ возвести в степень * умножение / деление + плюс - минус и пара функций: Sqr(число) вычесть корень (англ. square root) Fix(число)
обрезает все числа после запятой, округление
Fix(3.5) - это 3, Fix(-3.5)- это -3. Символы, конечно же, нельзя приминять в таких случаях, но их можно объединять символом &: Dim One, Two One = "Компьютер" Two = One & " - это сумасшествие!" Print Two выдаст на форме: Компьютер - это сумасшествие! 4.8 Выбор: If...ThenОчень часто бывает, что компьютер в зависимости от значения переменной должен выполнять различные вещи. Например, в переменной может стоять какую кнопку нажал пользователь в диалоговом окне (см. MsgBox). Для таких случаев имеются команды If...Then...Else...End If (англ. if: если, then: тогда, else: иначе). Легче всего понять со следующим примером: Otwet = MsgBox("Как дела?" ,4) If Otwet = 6 Then ' выбрано "да" MsgBox "Это чудесно!" Else ' иначе, т.е. выбрано "нет" MsgBox "Ну тогда удачи!" End If В зависимости от того, правильно или ложно решение "Otwet = 6" (пользователь выбрал "да"), будут выполнены различные команды. Те команды, которые находятся между Then и Else будут выполнены если условие истинно, а команды между Else и End If, если условие ложно. Но в любом случае после End If исполнение команд будет продолжено. Часть Else можно вообще-то не вставлять, если оно не нужно. Кроме того существует ещё и короткая форма: если должна быть выполнена только одна команда и если условие истинно, можно также писать в этом роде: If GamerLife = 1 Then Print "У Вас осталась только одна жизнь!" В этом случае не нужны слова End If. Конечно же, существуют также сложные условия: If a / 7 = Fix(a / 7) Then Print a; " можно поделить на семь без остатка!" End If В Бэйсике существуют следующие возможности, для того что сравнить два выражения: < меньше <= меньше либо равно > больше >= больше либо равно = равно <> не равно Эти сравнения можно также использовать при сравнении символов. Причём "меньшее" выраженее не то, которое короче, а то которое в алфавите стоит ближе к началу. И "Apfelkern" меньше, чем "Birne"! Также имеются логические операторы And(и), Or(или) и Not(не). При помощи них можно связывать различные условия и противопоставлять: Not Life <=3 - тоже самое, что и Life > 3. Old >= 10 And Old <= 18 - истино тогда и только тогда, когда значение Old находится в промежутке от 10 до 18 Old < 10 Or Old > 18 истинно тогда, и только тогда, когда значение Old не находится в промежутке от 10 до 18 Со сложными условиями с And, Or и Not можно иногда легко запутаться! 4.9 Комментарии строк ( ' или Rem )Иногда программы, которые мы пишем становятся очень сложными. Усложнёными настолько, что если просмотреть коды спустя пару недель и они будут возможно уже изменены, то станет почти невозможным понять, что там имеется ввиду и как это работает. Но это нормально! И поэтому ко всему, что Вы делаете в сложной программе, надо делать пометки. Чтобы вводить такие заметки в программу, существует возможность комментирования строк: всё, что стоит позади символа "'" будет распознано компьютером при запуске программы, как строки, которые не нужно брать во внимание. Пример: Line (0,0)-(2000,2000) 'линия сверху слева в 'право вниз в окне Вместо ' можно также применять слово Rem (англ. remark = заметка), но уже для полной строки, не разбитой на две части, иначе можно запутаться: Rem линия сверху слева в право вниз в окне Считается хорошим тоном повсюду вставлять комментарии в свою программу, чтобы потом её лучше понимать самому и другим программистам. 4.10 Команда EndЗакончить программу можно, нажав на кнопку "End" в панели VB. Однако иногда нужно прекратить программу командой, например, если игра подошла к концу и возникла критическая ошибка. Для этого существует команда End, которой тотчас же прекращает программу. Visual Basic возвращается тогда сразу в режим design. 4.11 Цикл Do...LoopПод словом "цикл" (на английском loop) программисты подразумевают часть программы, которая будет исполнена несколько раз подряд. Вы познакомитесь ещё со многими примерами из этого курса, т.к. циклы нужны очень часто. Здесь же я только объясню, как правильно применять цикл Do...Loop: Этот цикл существует для того, чтобы выполнять ряд команд, так называемые тела циклов, так долго, пока не будет испонено какое-нибудь определённое условие - условие прерывания. Или до тех пор, пока пока какое-нибудь определённое условие будет не исполнено. Два следующие примера делают одно и тоже: они вызывают диалоговое окно на экран до тех пор, пока пользователь не нажмёт "Да". А потом они выдают шутку: Do YesNo = MsgBox("Хотите шутку?",4) ' диалоговое окно с выбором между "Да" и "Нет" Loop Until YesNo = 6 ' 6 соотвествует ответу "Да" MsgBox "Печь можно и без муки!" ' сама шутка !!! -[мои прим. Ах, как смешно! :)] ' (c) Helge Schneider (англ. until: до тех пор, во время) другая версия: Do YesNo = MsgBox("Хотите шутку?",4) Loop While YesNi <> 6 MsgBox "Печь можно и
без муки!"
(англ. while: пока не...). Условие "YesNo = 6" или "YesNo <> 6" будет перепроверяно каждый раз после выполнения, и в зависимости от того, верно или ложно ли условие, будет выполнен цикл ещё раз или прекращён и далее будут исполнены команды, следующие за ним. Если условие должно быть перепроверяно уже перед первой "петлёй" цикла, можно поставить While или Until в начале цикла: Do Until Aepfel > 6 (...) ' здесь находится тело цикла Loop или: Do While Aepfel <= 6 (...) ' здесь находится тело цикла Loop Настоятельно рекомендую как вверху отделять тело цикла сверху и снизу пустыми строками!!! Также можно покидать цикл в середине тела, а именно при помощи команды Exit Do. Тогда сразу будет исполнена следующая команда после цикла. В основном Exit Do применяют вместе с If...Then. Также, если цикл может быть покинут только при помощи Exit Do, проверку условия Until или While можно и не испоьзовать: Do (...) If Aepfel > 6 Then Exit Do (...) Loop Программист всегда должен быть внимателен, чтобы цикл в любом случае когда-нибудь мог закончиться! Так называемые бесконечные циклы относятся к частым ошибкам программистов. Часто в этом случае может помочь только прерывание программы при помощи клавиш Ctrl + Break. 4.12 Оператор GoTo(англ. go to: иди к/на [мои прим.: :-))]) При помощи GoTo можно приказать программе, продолжать в каком-нибудь другом месте программы, вместо того, чтобы исполнять следующие команды. Т.е. GoTo заставляет перепрыгнуть программу от одних операторов к другим. Но прежде перед тем местом, куда должны "прыгнуть" программа, нужно установить метку - это всего лишь слово с двоеточием позади. Этоже слово, но без двоеточия, ставится потом позади команды GoTo. Этим определяют куда программа должна перепрыгнуть. Метка должна стоять в той же процедуре, что и сама команда GoTo и оно не должно быть зарезервированным словом VB, переменной или константой! Кроме того метка должна всегда стоять перед нужным оператором. (...) Metka: ' это метка на которую нужно прыгнуть (...) GoTo Metka ' сейчас программа перепрыгнет наверх ' то, что здесь стоит никогда не будет выполнено! Если используется много GoTo-команд, программа станет нечитаемой ("спагетти-код"). Поэтому эту команду надо избегать. Учёные специализируюшиеся на компьютерах доказали, что все программы можно писать без GoTo, и применять вместо этого If...Then...Else и Do...Loop. 4.13 Генератор случайных чисел (Randomize, RND)(англ. random: случайно) Иногда в программе нужно где-нибудь применить случайное число. Для этого в Бэйсике существует функция RND: она возвращаетчисло между 0 (включительно) и 1 (исключительно), но какое именно - чистая случайность! Чтобы получить случайное значение между 0 и каким-нибудь другим числом, например, между 0 и 256, случайное число можно просто умножить на это число: RND * 256 выдаст случайное число между 0(включительно) и 256(исключительно). Командой PSet (RND*1000,RND*1000), RGB(RND*256,RND*256,RND*256) поставит точку со случайными координатами в верхнем левом углу окна со случайным цветом. Если заставить компьютер сделать это пару сотен раз, окно будет скоро выглядеть засыпанным конфетти! Осторожно: Каждый раз
старте программы случайные числа будут всё время онинаковыми! Компьютер
берёт случайные числа из, так сказать, одинаково рассортированых карт.
Чтобы этого избежать в начале программы нужно просто "перетусовать карты".
И для этого имеется команда Randomize. Если в программе Вам
нужно использовать случайные числа, эту команду лучше всего вызывать из
события Form_Load.
|
|
|
|
>>>Если у вас есть статья которой нет на сайте
пришлите ее мне--------> Послать статью >>>Если вы хотите задать вопрос пишите--------> Мне нужна помощь |
|
|
|