Событие колесика мыши (C#)

Вам нужно назначить результат drop_duplicates по умолчанию inplace=False, чтобы он возвращал копию измененного df, так как вы не проходите param inplace=True, ваш исходный df unmodified:

In [106]:

df = df.drop_duplicates('new', take_last=False)
df.groupby('new').max()
Out[106]:
            A         B         C         D  new2
new                                              
1   -1.698741 -0.550839 -0.073692  0.618410     1
3    0.519596  1.686003  1.395585  1.298783     2
4    1.557550  1.249577  0.214546 -0.077569     4
5   -0.183454 -0.789351 -0.374092 -1.824240     5
7   -1.176468  0.546904  0.666383 -0.315945     7
8   -1.224640 -0.650131 -0.394125  0.765916     8
10  -1.045131  0.726485 -0.194906 -0.558927     5

, если вы прошли inplace=True, это сработало бы:

In [108]:

df.drop_duplicates('new', take_last=False, inplace=True)
df.groupby('new').max()
Out[108]:
            A         B         C         D  new2
new                                              
1    0.334352 -0.355528  0.098418 -0.464126     1
3   -0.394350  0.662889 -1.012554 -0.004122     2
4   -0.288626  0.839906  1.335405  0.701339     4
5    0.973462 -0.818985  1.020348 -0.306149     5
7   -0.710495  0.580081  0.251572 -0.855066     7
8   -1.524862 -0.323492 -0.292751  1.395512     8
10  -1.164393  0.455825 -0.483537  1.357744     5

26
задан Jeff Yates 26 January 2009 в 18:49
поделиться

5 ответов

Ваша проблема является результатом того, что form1 фокусируется, не panel1...., который, конечно, означает, что это - события form1, которые будут запущены, не события panel1.

я воссоздал Ваш сценарий со следующими изменениями в конструкторе в Form1 и проверил, что он запускает событие колесика прокрутки.

public Form1()
{
        InitializeComponent(); 

        /*  --- Old code that don't work ---
            this.panel1.MouseWheel += new MouseEventHandler(panel1_MouseWheel);
            this.panel1.MouseMove += new MouseEventHandler(panel1_MouseWheel);
        */

        this.MouseWheel += new MouseEventHandler(panel1_MouseWheel);
        this.MouseMove += new MouseEventHandler(panel1_MouseWheel);

        Form2 f2 = new Form2();
        f2.Show(this);
    }
}
16
ответ дан Presidenten 15 October 2019 в 07:24
поделиться

Добавьте, что другое событие панели MouseEnter и в ее Функции обратного вызова получает фокус ввода:

void MouseEnterEvent()
{
   this.Panel.Focus();
}
12
ответ дан Jason Plank 15 October 2019 в 07:24
поделиться

Возможно, это будет работать на Вас?

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        Form2 f2 = new Form2();
        f2.MouseWheel += new MouseEventHandler(panel1_MouseWheel);
        f2.MouseMove += new MouseEventHandler(panel1_MouseWheel);
        f2.Show(this);
    }

    private void panel1_MouseWheel(object sender, MouseEventArgs e)
    {
        if(e.Delta != 0) Console.Out.WriteLine(e.Delta);
    }
}
0
ответ дан 15 October 2019 в 07:24
поделиться

Панель не может иметь самого фокуса, только объект, помещенный в панели, может иметь фокус. Панель только получит Событие mouseWheel, после того как что-то помещается в нем, и та вещь имеет фокус. Просто hoevering по панели и перемещению колеса мыши отправит событие в форму, не в панель.

Вот в чем разница между Вашими двумя примерами.

0
ответ дан Sam Meldrum 15 October 2019 в 07:24
поделиться

Я думаю, что Вы немного неправильно поняли мою проблему. На моей основной форме с ниже кода я don'g получают Событие mouseWheel:

public Form1()
    {
        InitializeComponent();

        this.panel1.MouseWheel += new MouseEventHandler(panel1_MouseWheel);
        this.panel1.MouseMove += new MouseEventHandler(panel1_MouseWheel);    
    }

, Но я действительно получаю событие с:

public Form1()
    {
        InitializeComponent();
        this.MouseWheel += new MouseEventHandler(panel1_MouseWheel);

    }

я надеюсь, что это более ясно без беспорядка Form2. Я просто пытаюсь получить События mouseWheel на Панели в моей основной форме.

С наилучшими пожеланиями,

James

0
ответ дан casperOne 15 October 2019 в 07:24
поделиться
Другие вопросы по тегам:

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