События от нажатия мыши передачи для порождения управления

Единственная «забавная» часть заключается в том, что если вы вычислите (153*m-457)/5 для значений от 3 до 15, вы получите

0, 31, 61, 92, 122, 153, 184, 214, 245, 275, 306, 337

, где вычитая каждый элемент из предыдущего, начиная со второго, мы получаем [ 114]

31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31

- количество дней в каждом месяце, если мы начинаем с марта

. Итак, идея такова: перевернитесь, чтобы «странный» февральский месяц был последним, подсчитайте годы, високосные дни и дни за прошедшие месяцы с использованием «магической» формулы, чтобы получить чистое число, увеличивающееся на единицу за каждый день.

Вычитание двух из этих чисел дает разницу в дате.

PS: обратите внимание, что даже «регулярное» вычисление будет O (1)

32
задан stakx supports GoFundMonica 30 August 2012 в 16:36
поделиться

2 ответа

Необходимо записать общественности/защищенному методу в базовом классе, который сгенерирует событие для Вас. Затем назовите этот метод от производного класса.

ИЛИ

это, что Вы хотите?

public class MyLabel : Label
{
    protected override void OnMouseDown(MouseEventArgs e)
    {
        base.OnMouseDown(e);
        //Do derived class stuff here
    }
}
3
ответ дан 27 November 2019 в 20:21
поделиться

WS_EX_TRANSPARENT расширенный стиль окна на самом деле делает это (это - то, что оперативные подсказки используют). Вы могли бы хотеть рассмотреть применение этого стиля вместо того, чтобы кодировать много обработчиков, чтобы сделать это для Вас.

, Чтобы сделать это, переопределите CreateParams метод:

protected override CreateParams CreateParams
{
  get
  {
    CreateParams cp=base.CreateParams;
    cp.ExStyle|=0x00000020; //WS_EX_TRANSPARENT
    return cp;
  }
}

Для дополнительных материалов для чтения:

3
ответ дан 27 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: