Как сделать собственный составной элемент управления (composite control) в WinForms

Задача: сделать нестандартный элемент управления (control) для Windows Froms. Какой именно? Есть несколько разных вариантов, темой этой статьи будет собственный DateTimePicker, способный работать с пустыми датами. В качестве пустых дат будет активно использоваться описанный ранее класс DatePlus. Что мы хотим? … Читать далее

Как отсортировать данные в DataTable

Простой и быстрый способ сортировки DataTable - использовать свойство DataView.Sort (у любой DataTable всегда есть DataTable.DefaultView и при привязке таблицы как источника данных на самом деле будет использоваться именно это DataView) … Читать далее

Аналог DataView для List и BindingList

Начитавшемуся умных книг программисту-новичку могут придти в голову странные идеи. Например заменить стандартные DataTable собственными классами, обьединив их в списки List<T>. Пойдя на это программист моментально сталкивается с целым рядом проблем. Прежде всего обычный List в отличие от DataTable не … Читать далее

Пустая дата в C# - часть 1, собственный класс даты

Стандартный класс DateTime создает массу проблем в повседневной работе из-за того, что он не поддерживает пустых значений. На практике существует масса ситуаций, в которых дата чего бы то ни было неизвестна и именно этот факт надо обрабатывать и отображать на … Читать далее

Простой способ передать функцию как аргумент в C# - делегат Action<T>

Если вы еще не готовы погружаться в глубины функционального программирования (возможности которого замечательно описаны здесь) или просто ищете максимально простой способ передать одну функцию в виде аргумента в другую функцию, вам идеально подойдет делегат Action<T>. Что это вообще такое и … Читать далее

Как выключить вкладку в TabControl

В стандартном TabControl полностью выключить вкладку невозможно. В лучшем случае можно выключить ее содержимое, например так но чтобы выключить саму вкладку - ее заголовок в перечне - придется переделывать сам TabControl или воспользоваться плодами чужой работы (что может быть приятнее?). … Читать далее

Полезные расширения-плагины для WordPress

Само собой этой не сотый и даже не тысячный обзор этих самых расширений, но сайт служит в том числе записной книжкой для меня самого. В современном Вордпрессе расширения ищутся через встроенный в админку поиск и там же устанавливаются одной кнопкой, … Читать далее

WordPress/php - ошибка failed to open stream: Permission denied

Ошибка очень простая и схватывают ее обычно новички из мира Windows, настраивающие свой первый-второй Wordpres. Например при использовании встроенных функций вроде обновления самого WordPress. Собственно все прямо сказано - нет прав на доступ к какому-нибудь файлу. Решается это в панели … Читать далее

Краткая, неполная и по большей части неправильная история языков программирования

1801 - С помощью ткацкого станка и перфокарт Жозеф Мари Жаккар выводит "привет мир!" на ткани. Современники не впечатлены: нет хвостовой рекурсии, параллелизма и заглавных букв. 1842 - Ада Лавлейс пишет первую программу. Ее работу осложняет одна маленькая неприятность: отсутствие … Читать далее