.NET Изменяет размер События: Получить старый размер?

Я добавил изменить размер событие к одному из моих виджетов, который похож на это:

void glControl_Resize(object sender, EventArgs e) {

Существует ли способ, которым я могу получить старый размер виджета (перед изменением размеров)? Возможно, я могу бросить e к чему-то, что даст мне больше информации? Или я должен просто сохранить его во время того события?

8
задан mpen 14 January 2010 в 00:05
поделиться

2 ответа

Да, просто отследив старый размер в поле класса простое решение. Например:

Size mOldSize;

private void glControl_Resize(object sender, EventArgs e) {
  if (mOldSize != Size.Empty && mOldSize != glControl.Size) {
    // do something...
  }
  mOldSize = glControl.Size;
}
13
ответ дан 5 December 2019 в 11:25
поделиться

Я не слышал об использовании LCG для генерации фиксированного веса удара (я не получил этого глубоко в коды удара в школе, поэтому я тоже не слишком удивлен:).

В любом случае достаточно просто генерировать кучу битов с фиксированным ударным весом. Вот немного кода питона, который возвращает n -разрядное число с определенным весом. Это должно легко переводиться и на другие языки (помимо того, что питоновые целые числа произвольно велики).

from random import randrange

def get_ham_and_bits(weight, nbits=32):
    "Get n-bits with a fixed hamming weight"
    if weight > nbits: 
        return 1 < nbits

    result = 0
    for i in xrange(weight):
        bit = 1 << randrange(nbits)

        # only flip bits that aren't already flipped. delete the loop to
        # make this return a random weight instead of a fixed weight
        while bit & result != 0: 
            bit = 1 << randrange(nbits)

        # An XOR might be a better idea here, especially if you remove the loop.
        result |= bit
    return result
-121--4529253-

По источникам , scipy.io.wavfile.read (somfile) возвращает кортеж из двух предметов: первый - частота дискретизации в выборках в секунду, второй - массив numpy со всеми данными, считанными из файла. Выглядит довольно легко в использовании!

eg:

from scipy.io import wavfile
fs, data = wavfile.read('./output/audio.wav')
-121--870558-

По соглашению следует добавить событие OnResizing , которое срабатывает только тогда, когда оно должно измениться, но не изменилось, а затем запустить OnResize после изменения размера. Старое значение будет получено из события EventArg в событии OnResizing .

Изменить:

создаете ли вы собственное событие или запускаете один из включенных элементов управления?

Если вы делаете собственное событие, вы можете извлечь из EventArg и сделать что-то вроде ResityEventArg , которые включают размер нужной вещи.

Я использую ResityEventArg для событий Resize и OnResizing и продолжаю следовать тому, что я сказал ранее.

Или, если вы знаете, какой это тип управления, вы можете привести Отправитель объекта в тип и затем прочитать свойство.

2
ответ дан 5 December 2019 в 11:25
поделиться
Другие вопросы по тегам:

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