滾輪事件發生一定要激活當前的目標控件,比如目標控件要有焦點,事件本身簡單,就是MouseWheel
下面舉例panel:
PRivate void panelsplit_MouseEnter(object sender, EventArgs e) { this.panelsplit.MouseWheel += new MouseEventHandler(panelsplit_MouseWheel); this.panelsplit.Focus(); } private void panelsplit_MouseLeave(object sender, EventArgs e) { this.panelsplit.MouseWheel -= new MouseEventHandler(panelsplit_MouseWheel); } private int sumcount = 0; private int spacing = 60; //線條間距 private void panelsplit_MouseWheel(object sender, MouseEventArgs e) { sumcount += e.Delta; //負的放大,正的縮小 int newsp = sumcount / 120 + spacing; AddMsg(newsp); //... panelsplit.Refresh(); panelsplit.Invalidate(); panelsplit.Update(); }private void AddMsg(object msg) { bool scroll = false; if (this.listBox1.TopIndex == this.listBox1.Items.Count - (int)(this.listBox1.Height / this.listBox1.ItemHeight)) scroll = true; this.listBox1.Items.Add(msg); if (scroll) this.listBox1.TopIndex = this.listBox1.Items.Count - (int)(this.listBox1.Height / this.listBox1.ItemHeight); this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1; }鼠標在控件上時響應滾動,移出的之后刪除事件不響應,代碼只是demo,具體看自己的設計了
新聞熱點
疑難解答