Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

Наш простой элемент управления будет выводить графическое изображение, соответствующее одной из четырех стандартных мастей колоды карт (трефы, бубны, черви, пики). Требуемые для этого графические изображения поставляются как часть Visual Studio; их можно найти в C:Program Files\Microsoft Visual Studio.NET\Common7\Graphics\bitmaps\assorted с именами файлов

CLUB.BMP
,
DIAMOND.BMP
,
HEART.BMP
и
SPADE.BMP
. Скопируйте их в каталог проекта, чтобы ими можно было воспользоваться. 

Добавим некоторый код к новому элементу управления. В файл

PCSUserC1.ascx
, представленный в виде кода HTML, добавим следующие строки:

<HTML>

 <HEAD> </HEAD>

 <BODY>

<TABLE CellSpacing=4>

<TR vAlign=middle>

<TD>

<asp:Image Runat="server" ID="suitPic" ImageURL="club.bmp " />

</TD>

<TD height=20>

<asp:Label Runat="server" ID="suitLabel">Club</asp:Label>

</TD>

</TR>

</TABLE>

 </BODY>

</HTML>

Этот код определяет состояние по умолчанию элемента управления, которое будет изображением трефы с меткой. Прежде чем добавлять дополнительную функциональность, протестируем такое поведение по умолчанию, добавляя этот элемент управления в проект Web-страницы

WebForm1.aspx
.

Чтобы использовать специальный элемент управления в файле

.aspx
, сначала необходимо определить, как мы будем на него ссылаться, то есть, имя тега, который будет представлять элемент управления в коде HTML. Чтобы сделать это, используется директива
<%@ Register %>
в верхней части кода следующим образом:

<%@ Register TagPrefix="PCS" TagName="UserC1" Src="PCSUserC1.ascx" %>

Здесь используются атрибут

Src
для указания на файл, содержащий элемент управления пользователя, и атрибуты
TagPrefix
и
TagName
для определения имени тега для использования (в форме
TagPrefix: TagName
). Теперь мы можем использовать этот элемент управления, добавляя следующий элемент:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false"

 Inherits="PCSUserCWebApp1.WebForm1" %>

<%@ Register TagPrefix="PCS" TagName="UserC1" Src= "PCSUserC1.ascx" %>

<HTML>

 <HEAD>

<meta name=vs_targetSchema content="Internet Explorer 5.0">

<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">

<meta name="CODE_LANGUAGE" Content="C#" >

 </HEAD>

 <BODY MS_POSITIONING="GridLayout">

<form method="post" runat="server">

<PCS:UserC1 Runat="server" id="myUserControl" />

</form>

 </BODY>

</HTML>

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

WebForm1.aspx.cs
:

public class WebForm1 : System.Web.UI.Page {

 protected PCSUserC1 myUserControl;

 ...

Это все, что нужно сделать для тестирования элемента управления пользователя, и выполнение проекта приведет к следующему результату:

 club

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

Чтобы получить управление над выводимой мастью, можно использовать атрибут элемента

<PCS: UserC1>
. Атрибуты элементов для элементов управления пользователя автоматически отображаются в свойства элементов управления пользователя, поэтому для того, чтобы это заработало, необходимо только добавить свойство в код элемента управления
PCSUserC1.ascx.cs
. Назовем это свойство
Suit
и позволим ему принимать значение любой масти. Чтобы упростить представление состояния элемента управления, определим внутри пространства имен
PCSUserCWebAppl
перечисление для хранения четырех названий мастей:

  • Читать дальше
  • 1
  • ...
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: