У меня проблема с вызовом моего частного метода в событии MouseWheel. Фактически мое событие колеса мыши срабатывает должным образом, когда я только увеличиваю переменную или отображаю что-то в строке заголовка и т. Д. Но когда я хочу вызвать частный метод, этот метод вызывается только один раз, и это не требование, которое я хочу назвать метод, зависящий от скорости прокрутки, т. е. когда прокрутка выполняется один раз, вы медленно вызываете частный метод один раз, но когда прокрутка выполняется с высокой скоростью, вызовите частный метод более одного раза в зависимости от скорости прокрутки.MouseWheel Event Fire
Для получения дополнительной информации я размещаю образец кода, который отображает значение i в строке заголовка и соответствующим образом добавляет его в элемент управления Listbox в зависимости от скорости прокрутки, но когда я хочу вызвать частный метод более одного раза в зависимости от скорость прокрутки, этот метод вызывается только один раз.
public partial class Form1 : Form
{
ListBox listBox1 = new ListBox();
int i = 0;
public Form1()
{
InitializeComponent();
// Settnig ListBox control properties
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(13, 13);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(259, 264);
this.listBox1.TabIndex = 0;
// Attaching Mouse Wheel Event
this.listBox1.MouseWheel += new MouseEventHandler(Form1_MouseWheel);
// Adding Control
this.Controls.Add(this.listBox1);
}
void Form1_MouseWheel(object sender, MouseEventArgs e)
{
i++;
this.Text = i.ToString();
this.listBox1.Items.Add(i.ToString());
// Uncomment the following line to call the private method
// this method gets called only one time irrelevant of the
// mouse wheel scroll speed.
// this.LaunchThisEvent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.listBox1.Select();
}
private void LaunchThisEvent()
{
// Display message each time
// this method gets called.
MessageBox.Show(i.ToString());
}
}
Как позвонить частному методу более одного раза в зависимости от скорости прокрутки колеса мыши?
Таким образом timesToCall достигает максимум до 2, но если вы только дисплей значение I ИНТ в строке заголовка оно намного больше почти 6 –
Ну, я просто попробовал с измененным кодом, в котором времяToCall отображается в строке заголовка, и я получил 6. Это действительно зависит от скорости вращения колеса. –
А также, если вы измените строку, которая добавляет записи в список, чтобы показать значение Delta, вы увидите много записей, таких как 360, 480 и т. Д. Это, конечно, на моем компьютере и на мышке отличается. –