Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Пользовательский TextBox на C#



Сегодня ко мне обратился мой клиент с вопросом о переопределении .NET-контрола для создания пользовательского элемента на базе TextBox используя C#.

Человек все самостоятельно реализовал, но возник один тупиковый вопрос, который не давал продвигаться далее. Обычно у меня очень мало времени для рассмотрения вопросов, но как раз был обед и человек, приславший вопрос не требовал помощи, а просил только помочь с поиском ответа.

Ответ я решил быстро накидать в виде статьи.

Но, сперва поглядим, что я получил на имеил:

class Class1:TextBox
{
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Rectangle rect = new Rectangle(
            e.ClipRectangle.X,
            e.ClipRectangle.Y,
            e.ClipRectangle.Width - 1,
            e.ClipRectangle.Height - 1);
 
        e.Graphics.DrawRectangle(
            new Pen(Color.Chocolate,1),rect);
    }
}

Ну что здесь не так, вроде всё как надо - создаем простейший файл с определением пользовательского класса class1 и наследуем от класса System.Windows.Forms.TextBox.

Всё нормально.

Дальше, переопределяем его графическое представление на форме. Для этого переопределяем базовый метод OnPaint. В своем первом курсе я подробно описал ситуации, когда вызывается событие перерисовки графических визуальных контролов.

Используя объекты System.Windows.Forms.PaintEventArgs и Graphics добиваемся добавления в зоне текстового поля дополнительных цветных линий.

Собрав проект и запустив его, однако, не произошло чуда и линии не появились. Новый TextBox отобразился стандартным образом.

А проблема заключалась лишь в том, что необходимо лишь указать требуемые стили отображения, вызвав метод SetStyle с заданием опции UserPaint:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace WindowsFormsApplication1
{
    class MyTextBox : System.Windows.Forms.TextBox
    {
        public MyTextBox()
        {
           SetStyle(System.Windows.Forms.ControlStyles.UserPaint,
                    true);
        }

        protected override void
           OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
 	        base.OnPaint(e);

            Rectangle rect = new Rectangle(e.ClipRectangle.X,
                e.ClipRectangle.Y,
                e.ClipRectangle.Width - 1,
                e.ClipRectangle.Height - 1);

            e.Graphics.DrawRectangle(new Pen(Color.Chocolate, 1),
                rect);
        }
    }
} 

Вот какой контрольчик мы получили:

пользовательский контрол элемент TextBox



Больше информации читайте по теме:

Windows Forms c# roll over button
Запрет на переключение активного CheckBox на c#
Иконка windows forms приложения – динамическая генерация из Bitmap на c#
Поиск вложенного контрола во внешнем - обобщенный метод c#
c# - Доступ к вложенным (внутренним) элементам (контролам)
Типизированный поиск дочерних контролов (элементов) в родительском на c#
C# - Проверка ввода в TextBox (ввод только определенных символов)
Заполнение (загрузка) ListBox из xml файла
Windows Forms окна произвольной формы
Открытие второй формы и передача данных в главную форму
Нумерация строк в DataGridView
Цветной ListBox на c#
Использование Windows Media Player в приложениях Windows Forms
Воспроизведение звуковых wav-файлов средствами c#



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Елена    10.03.2012 16:35:53
        

А как разместить свой TextBox в Toolbox и создать ему иконку?

77.52.44.56




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок