Главная страница
Навигация по странице:

  • Компонент Этот компонент находится в списке All Windows Forms

  • Имя свойства Описание

  • All Windows Forms

  • Борис Пахомов Санкт Петербург бхв петербург 2013 удк 004. 4 Ббк 32. 973. 26018. 2 П


    Скачать 17.38 Mb.
    НазваниеБорис Пахомов Санкт Петербург бхв петербург 2013 удк 004. 4 Ббк 32. 973. 26018. 2 П
    АнкорMS Visual C.pdf
    Дата04.08.2018
    Размер17.38 Mb.
    Формат файлаpdf
    Имя файлаMS Visual C.pdf
    ТипДокументы
    #22453
    страница22 из 37
    1   ...   18   19   20   21   22   23   24   25   ...   37

    Properties. Вы там найдете свойства
    ShowShortcutKeys и
    ShortcutKeys
    . Первое из них обеспечивает видимость клавиш быстрого вызова (
    ShortcutKeys
    ) в наименовании опции (если эти клавиши будут определены. А второе свойство как рази задает комбинацию клавиш, при нажатии которой опция станет выполняться так, как если бы вы на ней щелкнули мышью. Задание происходит в два этапа, как показано на рис. 11.26. Какой вывод Если пользователь запомнит комбинации клавишу исполнительных опций, то ему нет необходимости двигаться по всему дереву меню (что делается с помощью мыши, а стоит только нажать нужную комбинацию и соответствующая опция исполнится. Текст обработчика события для этой опции представляет собой следующее private: System::Void toolStripMenuItem3_Click(System::Object^ sender,
    System::EventArgs^ Нажата комбинация ", "Приложение 11.01-2011", Результат показан на рис. 11.27. Вернемся теперь ко второму вопросу, поставленному пользователем разработчику каким образом ограничить доступ ко всему меню некоторым операторам Для этого делается следующее главная опция или отдельные подопции либо лишаются возможности доступа к ним, либо делаются вообще невидимыми. Первое достигается за счет переброски свойства опции Enabled в значение false
    , авто- рое — за счет присвоения свойству
    Visible тоже значения false
    . Но это делается не "в лоб. Следует разработать механизм авторизации доступа к меню, который станет по регистрационным данным пользователя открывать одни опции, делать невидимыми другие и недоступными третьи.
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    271 Рис 1
    1
    .2
    6
    . Вид меню с заданными клавишами быстрого вызова Часть II. Приложения Windows Рис 11.27. Выполнение опций меню с помощью горячих клавиш
    Некоторые свойства
    MenuStrip

    BackgroundImage
    — задает (с помощью выбора через диалоговое окно) фоновое изображение, которое помещается вменю и на фоне которого будут видны его опции. Также можно поступать и с опциями, тку них тоже есть такое свойство (рис. 11.28). С помощью свойства
    BackgroundImageLayout изображение можно "подогнать" под соответствующий формат.

    Items
    — через диалоговое окно этого свойстваформируются главные опции меню.

    LayoutStyle
    — стиль размещения меню. Выбирается из выпадающего списка.

    Checked
    — с помощью этого свойства можно контролировать, была ли выбрана данная команда меню. Это очень важно при эксплуатации приложения если в вашем меню множество опций, а вы некоторые из них уже выполнили, то если не пометить выполненные, возможно по ошибке станете выполнять какую- нибудь опцию снова. Существует свойство
    CheckOnClick
    , которое (если установить его значение в true
    ) обеспечит необходимую пометку выполненной опции но при условии, что ее свойство
    Checked тоже имеет значение true
    ). Пример работы с этим свойством показан на рис. 11.29. Обработчик события имеет вид if(this->toolStripMenuItem5->CheckOnClick==false)
    {
    this->toolStripMenuItem5->Checked=true;
    this->toolStripMenuItem5->CheckOnClick=true;
    }
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    273
    else
    {
    this->toolStripMenuItem5->Checked=false;
    this->toolStripMenuItem5->CheckOnClick=false;
    Рис 11.28. Формирование фонового изображения на полосе меню
    Рис.
    11.29. Пример работы со свойством События Перечень событий компонента приведен на рис. 11.30. Рис 11.30. Перечень событий Компонент Компонент находится в списке All Windows Forms палитры компонентов. Этот компонент придает другому компоненту, с которым он связывается, дополнительные функциональные возможности, он может быть связан с любым другим компо-

    274 Часть II. Приложения Windows Form
    нентом (формой, кнопкой и т. д, имеющим свойство
    ContextMenuStrip
    . Когда компонент помещается в форму, его имя будет видно в любом из компонентов формы, у которого есть свойство
    ContextMenuStrip
    . Это обычное меню, где пользователь определяет порядок действий при активизации компонента, с которым данное меню связано. Если меню связано с формой, то оно появляется, когда пользователь нажимает в активной форме правую кнопку мыши. На рис. 11.31 показано действие контекстного меню. Меню появляется в том месте, где находится указатель мыши. Задание опций контекстного меню аналогично заданию опций в главном меню. Рис 11.31. Контекстное меню формы
    Компонент Этот компонент находится в списке All Windows Forms палитры компонентов. Сего помощью в форме выводится список элементов с пиктограммами, его можно использовать в пользовательском интерфейсе аналогично использованию правого окна в Windows Explorer. Вид компонента в форме показан на рис. 11.32. Рис 11.32. Вид
    ListView в форме
    Начнем с того, что рассматриваемый компонент позволяет выводить информацию в виде таблицы, которая может иметь столбцы с заголовками, а внутри поля выво-
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    275 да — строки, сгруппированные в задаваемые группы. Например, можно задавать такие группы, как "Группа адресов Интернета, "Группа текстовых файлов" и т. д. В таком порядке и рассмотрим перечень задач из открывающегося окна, показанного на рис. 11.32. Если выбрать опцию
    Edit Columns
    (редактирование столбцов, то для их задания и возможного редактирования откроется диалоговое окно, показанное на рис. 11.33. Рис 11.33. Диалоговое окно для задания столбцов вывода с помощью В этом окне в его левой половине кнопкой Add будем добавлять новую колонку к компоненту. При очередном добавлении в правом окне каждый раз станет открываться окно свойств, которые позволяют придавать добавленному элементу определенные свойства задать его имя (это делается в свойстве
    Text
    ), ширину текста и т. д. Но если вы, задав хотя бы имена и нажав кнопку О, завершающую задание колонок, посмотрите на компонент
    ListView
    , вы заданных заголовков не увидите. Чтобы они появились в компоненте, надо в окне задач (рис. 11.33, справа) выбрать опцию
    View
    , открыть ее выпадающее меню ив нем выбрать опцию
    Details
    . Только тогда сформированные вами заголовки сих именами появятся в
    ListView
    . Эти заголовки будут разделены вертикальными линиями, за которые можно мышью зацепляться и перетягивать их влево-вправо, чтобы получше отрегулировать видимость заголовка, т. к. его наименование может не помещаться в отведенное ему по умолчанию место. Сформируем теперь группы, в которые станут объединяться строки в момент их вывода в окно
    ListView
    . Для этого выполним опцию
    Edit Groups
    (редактирование групп) вменю задач компонента (рис. 11.34). Правила формирования групп очень схожи с правилами формирования колонок диалоговое окно очень похоже. Однако после формирования групп мы их не увидим в окне
    ListView
    . Они в нем появятся только после задания элементов вывода (
    Items
    ), те. самих конкретных данных. При их задании в свойствах каждого элемента будет свойство
    Group
    , те. надо будет задать, к какой группе принадлежит создаваемый элемент. В поле этого свойства имеется выпадающий список, в котором будут видны все группы, которые

    276 Часть II. Приложения Windows мы создали предварительно. Форма задания выводимых элементов аналогична заданию колонок и групп тоже диалоговое окно, также открывается окно свойств заданного элемента и т. д. Рис 11.34. Формирование групп вывода информации через Здесь следует отметить, что когда мы задаем имя элемента в свойстве
    Text
    , это имя попадает в первую определенную ранее колонку. Содержимое остальных заданных колонок определяется заданием свойства
    SubItems
    . В его поле надо щелкнуть на кнопке с многоточием, в результате чего откроется диалоговое окно уже знакомого нам формата, в котором мы добавляем элемент за элементом первый добавленный будет значением второй колонки
    ListView
    , второй добавленный — третьей и т. д. Последовательность формирования элементов вывода через опции
    Edit Items
    , формирование субэлементов и общий результат использования компонента
    ListView для вывода показана на рис. 11.35—11.37. В соответствии с рис. 11.32 компонент
    ListView имеет пять режимов просмотра свойство
    View
    ):

    LargeIcon
    — выводит большие пиктограммы рядом с текстом элемента. Элементы появляются в многоколоночном варианте, если компонент достаточно широк режим такой же, как и предыдущий, за исключением того, что пиктограммы появляются маленькими

    List
    — выводит маленькие пиктограммы, но элементы всегда выводятся в одну колонку

    Details
    — выводит элементы во многих колонках
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    277 Рис 11.35. Последовательность формирования элементов вывода через опцию
    Edit Рис 11.36. Последовательность формирования субэлементов вывода

    278 Часть II. Приложения Windows Рис 11.37. Общий результат вывода — этот режим доступен только для Windows XP. Вывод можно подстроить, отрегулировав размер вывода по высоте и ширине, задав свойство
    TileSize
    , а также отрегулировав количество выводимых строк с помощью свойства Пример вывода информации с помощью компонента
    ListView мы видели на рис. 11.37. Однако, глядя на него, мы ничего, кроме заданной информации, не имеем. А хотелось бы, чтобы, щелкая мышью на имени выводимого элемента, мы извлекали его содержимое для просмотра. Для достижения этой цели надо бы еще обработать как-то элемент наподобие того, как это делается с элементом обыкновенного меню. Об этом чуть позже. Не все свойства
    ListView работают во всех режимах вывода. В табл. 11.3 приведены некоторые свойства
    ListView и соответствующие им режимы вывода. Таблица Некоторые свойства и соответствующие им режимы вывода

    Имя свойства
    Описание
    Режим вывода Сего помощью задают заголовки колонок или Tile
    Groups Задает структуру, в которую можно объединить группу элементов
    Все режимы, кроме Задает стиль заголовка колонки (могут лисами заголовки служить кнопками выполнения каких- либо действий, будут ли показаны заголовки или нет Некоторые свойства

    ListView

    Items
    — это ключевое свойство, которое содержит элементы, выводимые компонентом. Задание выводимых компонентом элементов мы только что рассмотрели.
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    279

    SelectedItems
    свойство содержит набор элементов, которые подверглись выборке если это свойство установлено в true
    , то пользователь может выбрать множество элементов.

    CheckBoxes
    — если это свойство установлено в true
    , то
    ListView может выводить окна контроля рядом с элементами (в режиме
    Title свойство не поддерживается. Включение
    CheckBoxes позволяет выводить список элементов или подэлементов для режима
    Details
    ), которые пользователь может затем выбирать, щелкая на окне контроля (после этого там появляется галочка. То есть с помощью этого свойства можно выбирать множество элементов, не используя при этом обычный способ (нажатие клавиши и щелканье мышью на элементе, который требуется выбрать. Причем выборку можно производить и при отключенном свойстве
    MultiSelect
    . Чтобы определить, помечен ли галочкой элемент, надо создать обработчик события
    ItemCheck
    . Чтобы получить все помеченные галочкой элементы, надо использовать свойство
    CheckedItems
    , которое содержит текущий помеченный элемент. Свойство имеет ссылку на класс
    CheckedListViewItemCollection
    , который содержит все помеченные элементы. Чтобы получить индексы всех помеченных элементов, надо использовать свойство если значение этого свойства равно какому-то компоненту типа
    ImageList
    , то вместо окон контроля (check boxes) станут выводиться изображения из компонента
    ImageList с индексами 0 и 1. Причем изображение с индексом 0 будет выводиться вместо неотмеченного галочкой окна контроля, а вместо помеченного галочкой станет выводиться изображение, соответствующее индексу 1.

    Activation
    — это свойство показывает, какого типа действие (
    Standard
    ,
    OneClick или
    TwoClick
    ) должен совершить пользователь, чтобы активизировать элемент в списке. Действие типа
    OneClick требует одного щелчка мыши для активизации элемента, при этом один щелчок меняет цвет элемента. Действие типа
    TwoClick требует для активизации элемента двойного щелчка мыши, при этом в окнах контроля появляются галочки. Действие типа
    Standard также требует одного щелчка, но при этом элемент не меняет своего цвета и окно контроля галочкой не помечается.

    HotTracking
    — это свойство используется для показа элемента, являющегося ги- перссылкой, когда над ним проходит курсор мыши. При этом элемент подсвечивается и подчеркивается (как гиперссылка). Это означает, что на такую ссылку можно нажимать как на кнопку. Форма курсора мыши при установке
    HotTracking
    = true меняется со стандартного на курсор типа
    Hand
    (рука.

    GridLines
    — с помощью этого свойства можно задавать решетку в поле вывода элементов (столбцы и строки будут разделены горизонтальными и вертикальными линиями.

    280 Часть II. Приложения Windows Form

    LabelEdit
    — если это свойство установлено в true
    , то пользователь имеет возможность модифицировать текст элемента (надо щелкнуть текст элемента, чтобы перевести его в состояние редактирования. Однако тексты подэлементов не могут таким образом редактироваться — для этого надо открыть диалоговое окно двойным щелчком на подэлементе.

    Group
    — с помощью этого свойства создаются структуры, объединяющие в себе элементы. Когда открывается диалоговое окно для задания элемента, в нем есть свойство
    Group
    , в котором (в выпадающем списке) имеются все созданные группы. Какую группу мы выберем из этого списка, к той группе и станет относиться формируемый элемент. Группы тоже создаются в специальном диалоговом окне, которое открывается, если щелкнуть в поле свойства
    Group в окне Properties для компонента
    ListView
    . Вид диалогового окна для создания группы был показан на рис. 11.34. Следует помнить, что если свойство Activation установлено вили в
    TwoClick
    , то указанное редактирование элементов будет проигнорировано, несмотря назначение свойства LabelEdit. Кроме того, надо отключить свойство HotTracking
    , т.
    к.
    по его определению щелчок на элементе будет запускать его на выполнение.
    События Перечень событий компонента представлен на рис. 11.38. Среди множества событий компонента мы видим немало знакомых, однако появились и чисто специфические (касающиеся работы с элементами компонента
    ListView
    ). Рис 11.38. Перечень событий
    ListView
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    281 Ранее мы рассматривали свойство
    HotTracking
    , которое позволяло элементы
    ListView делать кнопками при наведении на них курсора мыши сам курсор менял форму на курсор типа
    Hand
    (рука, что являлось признаком возможности щелчка на этом элементе. Что значит щелкнуть на элементе Это означает сделать его активным. Поищем среди событий
    ListView то, которое связано с активизацией элемента. Такое событие есть и его имя
    ItemActivate
    (оно возникает именно после активизации элемента. Проверим это на практике, сформировав обработчик этого события, куда поместим обычную функцию выдачи сообщения, которая выдаст информацию, что при щелчке на элементе мы попали именно в обработчик события Итак, свойство
    HotTracking устанавливаем в true
    , а обработчик события
    ItemActivate сформируем в виде private: System::Void listView1_ItemActivate(System::Object^ sender,
    System::EventArgs^ Реакция на курсор Hand", "Приложение 10.1-2011", Компилируем приложение и выполняем. Результат показан на рис. 11.39. Рис 11.39. Использование элементов вывода
    ListView в качестве кнопок
    Какой вывод из этого А вывод такой мы можем использовать
    ListView для запуска различных приложений, имена которых сможем формировать как элементы это

    282 Часть II. Приложения Windows го компонента. В частности, например, записав в качестве элементов необходимые нам для работы адреса интернет-сайтов и умея в обработчике запускать Web- браузер, мы сможем создать себе удобный справочник сайтов. Кстати, такой компонент в палитре компонентов имеется. Его мы сейчас и рассмотрим. Компонент Компонент находится в списке All Windows Forms. Вид компонента в форме показан на рис. 11.40. Рис 11.40. Вид
    WebBrowser в форме
    Неопытный пользователь сразу и не найдет компонент на форме он причалил ко всем сторонам формы и только маленькая стрелка в правом верхнем углу формы указывает, что форма не пуста. Если на этой стрелке щелкнуть мышью, откроется перечень опций компонента (всего одна опция. Из этой опции следует, что щелкнув на ней, можно отменить свойство
    Dock компонента, ион перестанет причаливать к форме, а станет иметь естественный вид. Этот компонент позволяет выводить страницы прямо в вашем приложении. Его можно использовать вместо Internet Explorer (у него имеется ряд свойств, методов и событий, которые позволяют выполнять функции Internet Explorer). Например, можно использовать опцию Navigated, чтобы пользоваться списком адресов, можно использовать опции GoBack дает возможность перейти к предыдущей странице, дает возможность перейти к последующей Web- странице, приостанавливает текущую навигацию и связанные с ней звуки и анимацию) и перезагружает текущую страницу) для создания навигационных кнопок на линейке инструментов. Можно обработать событие
    Navigated для обновления линейки адресов значением свойства
    Url здесь задается или сюда записывается интернет-адрес текущей страницы, можно обработать заголовочную линейку значением свойства
    DocumentTitle дает заголовок текущей Web- страницы.
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    283 Если вы хотите сгенерировать свою собственную страницу внутри приложения, то должны установить свойство
    DocumentText
    (через него можно ввести или прочитать текст текущей страницы. Если вы знакомы с моделью DOM
    (Document Object Model), то также можете манипулировать содержимым текущей страницы, используя свойство С помощью этого свойства вы можете сохранять и модифицировать документы непосредственно в памяти, минуя работу с файлами. Теперь мы готовы к совместному применению компонентов
    ListView и
    WebBrowser
    , чтобы создать свой справочник интернет-адресов. Примерна этапе дизайна показан на рис. 11.41. Рис 11.41. Разработка совместного использования компонентов
    ListView и Рис 11.42. Созданный справочник интернет- адресов
    Результат работы приложения показан на рис. 11.42, файл приложения приведен в листинге 11.3.

    284 Часть II. Приложения Windows Листинг 11.3

    #pragma once namespace WindowsFormsApplication8 { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;
    ///
    /// Summary for Form1
    ///
    public ref class Form1 : public System::Windows::Forms::Form
    { public:
    Form1(void)
    {
    InitializeComponent();
    //
    //TODO: Add the constructor code here
    //
    } protected:
    ///
    /// Clean up any resources being used.
    ///

    Form1()
    { if (components)
    { delete components;
    }
    } private: System::Windows::Forms::WebBrowser^ webBrowser1; protected: private: System::Windows::Forms::ListView^ listView1; private: System::Windows::Forms::Button^ button6; private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::Button^ button2;
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    285
    private:
    ///
    /// Required designer variable.
    ///

    System::ComponentModel::Container ^components;
    #pragma region Windows Form Designer generated code
    ///
    /// Required method for Designer support — do not modify
    /// the contents of this method with the code editor.
    ///
    void InitializeComponent(void)
    {
    System::Windows::Forms::ListViewGroup^ listViewGroup1 = (gcnew
    System::Windows::Forms::ListViewGroup(L"Интернет-сайты",
    System::Windows::Forms::HorizontalAlignment::Left));
    System::Windows::Forms::ListViewItem^ listViewItem1 = (gcnew
    System::Windows::Forms::ListViewItem(L"www.boris-pahomov.narod2.ru"));
    System::Windows::Forms::ListViewItem^ listViewItem2 = (gcnew
    System::Windows::Forms::ListViewItem(L"www.bhv.ru")); this->webBrowser1 = (gcnew System::Windows::Forms::WebBrowser()); this->listView1 = (gcnew System::Windows::Forms::ListView()); this->button6 = (gcnew System::Windows::Forms::Button()); this->button1 = (gcnew System::Windows::Forms::Button()); this->button2 = (gcnew System::Windows::Forms::Button()); this->SuspendLayout();
    //
    // webBrowser1
    // this->webBrowser1->Location = System::Drawing::Point(222, 53); this->webBrowser1->MinimumSize = System::Drawing::Size(20, 20); this->webBrowser1->Name = L"webBrowser1"; this->webBrowser1->Size = System::Drawing::Size(503, 250); this->webBrowser1->TabIndex = 0;
    //
    // listView1
    // this->listView1->Activation = System::Windows::Forms::
    ItemActivation::OneClick; listViewGroup1->Header = L"Интернет-сайты"; listViewGroup1->Name = L"Group1"; this->listView1->Groups->AddRange(gcnew cli::array<
    System::Windows::Forms::ListViewGroup^ >(1) {listViewGroup1}); this->listView1->HotTracking = true; this->listView1->HoverSelection = true; listViewItem1->Group = listViewGroup1;

    286 Часть II. Приложения Windows Form
    listViewItem2->Group = listViewGroup1; this->listView1->Items->AddRange(gcnew cli::array<
    System::Windows::Forms::ListViewItem^ >(2) {listViewItem1, listViewItem2}); this->listView1->Location = System::Drawing::Point(12, 53); this->listView1->Name = L"listView1"; this->listView1->Size = System::Drawing::Size(202, 169); this->listView1->TabIndex = 1; this->listView1->UseCompatibleStateImageBehavior = false; this->listView1->View = System::Windows::Forms::View::Tile; this->listView1->ItemActivate += gcnew System::EventHandler(this,
    &Form1::listView1_ItemActivate);
    //
    // button6
    // this->button6->Location = System::Drawing::Point(59, 229); this->button6->Name = L"button6"; this->button6->Size = System::Drawing::Size(75, 23); this->button6->TabIndex = 7; this->button6->Text = Выход this->button6->UseVisualStyleBackColor = true; this->button6->Click += gcnew System::EventHandler(this,
    &Form1::button6_Click);
    //
    // button1
    // this->button1->Location = System::Drawing::Point(222, 22); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(75, 23); this->button1->TabIndex = 8; this->button1->Text = Назад this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this,
    &Form1::button1_Click);
    //
    // button2
    // this->button2->Location = System::Drawing::Point(337, 22); this->button2->Name = L"button2"; this->button2->Size = System::Drawing::Size(75, 23); this->button2->TabIndex = 9; this->button2->Text = Вперед this->button2->UseVisualStyleBackColor = true; this->button2->Click += gcnew System::EventHandler(this,
    &Form1::button2_Click);
    //
    // Form1
    // this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
    Глава
    11. Компоненты, создающие интерфейс между пользователем и
    приложением
    287
    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(726, 299); this->Controls->Add(this->button2); this->Controls->Add(this->button1); this->Controls->Add(this->button6); this->Controls->Add(this->listView1); this->Controls->Add(this->webBrowser1); this->Name = L"Form1"; this->Text = L"Form1"; this->ResumeLayout(false);
    }
    #pragma endregion private: System::Void listView1_ItemActivate(System::Object^ sender,
    System::EventArgs^ e)
    {
    ListView::SelectedListViewItemCollection^ breakfast = this->listView1->SelectedItems;
    System::Collections::IEnumerator^ myEnum = breakfast->GetEnumerator(); while ( myEnum->MoveNext() )// надо запустить перечисление, т. кв выборке может быть много элементов
    {
    ListViewItem ^it = safe_cast(myEnum->Current);
    String ^s; s=it->Text;
    //Uri ^Url; this->webBrowser1->Navigate(s);
    //this->webBrowser1->Url= dynamic_cast (s);//it->Text;
    }
    конец обработчика private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e)
    { this->Close();
    } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
    {
    //GoBack this->webBrowser1->GoBack();
    } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
    {
    //GoForward this->webBrowser1->GoForward();
    }
    };
    }

    288 Часть II. Приложения Windows Компонент Компонент находится в списке
    1   ...   18   19   20   21   22   23   24   25   ...   37


    написать администратору сайта