31/10 11:10
nightwolf
buongiorno a tutti, è da un po di tempo che non vengo su questo forum, ho ripreso un vecchio progetto che avevo accantonato x via di mancanza di tempo, premetto che ciò che scrivo non è mio, ho copiato uno schema per avere un custom progressbar x controllare il volume del mio media player, perche la progressbar che da il sistema non mi piace, solo che mi da un errore che non capisco, potete aiutarmi voi gentilmente? allego il codice che ho copiato
ps. scusate se ho copiato ma di disegno progettuale non capisco niente, le mie competenze arrivano fino ad un certo punto.
il form è un form .cs
il problema è che alla riga 37 mi dice "eccezione non gestita"
System.DivideByZeroException: 'Tentativo di divisione per zero.'
che vuol dire?
grazie mille
ps. scusate se ho copiato ma di disegno progettuale non capisco niente, le mie competenze arrivano fino ad un certo punto.
il form è un form .cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class volume_control : UserControl { public volume_control() { InitializeComponent(); this.Size = new Size(350, 30); this.BackColor = Color.Black; DoubleBuffered = true; } int pb_value = 40, pb_Min = 0, pb_Max = 100; public int Max { get { return pb_Max; } set { pb_Max = value; Invalidate(); } } public int Min { get { return pb_Min; } set { pb_Max = value; Invalidate(); } } public int value { get { return pb_value; } set { pb_value = value; Invalidate(); } } public int gap = 10; Color b_color = Color.Aqua; public Color Bar_color { get { return b_color; } set { b_color = value;Invalidate(); } } private void volume_control_Paint(object sender, PaintEventArgs e) { int start_point = 40; SolidBrush sb = new SolidBrush(Color.DimGray); for (int j = 0; j < (Max * ClientSize.Width / Max - 75) / gap;j++) { e.Graphics.FillRectangle(sb, new Rectangle(start_point, 0, gap - 5, ClientSize.Height)); start_point += gap; } int buffer_point = 40; SolidBrush br = new SolidBrush(b_color); for(int i=0; i < (pb_value*ClientSize.Width / Max - pb_value) / gap;i++) { e.Graphics.FillRectangle(br, new Rectangle(buffer_point, 0, gap - 2, ClientSize.Height)); buffer_point += gap; } int thum_size = 25; SolidBrush thumb = new SolidBrush(Color.White); e.Graphics.FillRectangle(thumb, new Rectangle(buffer_point, 0, thum_size, ClientSize.Height)); if(pb_value>=Min) { Image left_img = Properties.Resources.down_img; e.Graphics.DrawImage(left_img , 5, 0, ClientSize.Height, ClientSize.Height); } if (pb_value <= 50) { Image right_img = Properties.Resources.mid_img; e.Graphics.DrawImage(right_img, ClientSize.Width - 35, 0, ClientSize.Height, ClientSize.Height); } if (pb_value <= Min) { Image left_img = Properties.Resources.mute_img; e.Graphics.DrawImage(left_img, 5, 0, ClientSize.Height, ClientSize.Height); } if (pb_value >= 50) { Image right_img = Properties.Resources.high_img; e.Graphics.DrawImage(right_img, ClientSize.Width - 35, 0, ClientSize.Height, ClientSize.Height); } } bool mouse = false; private void volume_control_MouseDown(object sender, MouseEventArgs e) { mouse = true; Bar_value(thumb_value(e.X)); } private void volume_control_MouseMove(object sender, MouseEventArgs e) { if (!mouse) return; Bar_value(thumb_value(e.X)); } private void volume_control_MouseUp(object sender, MouseEventArgs e) { mouse = false; } private void Bar_value(float value) { if (value < Min) value = Min; if (value > Max) value = Max; if (pb_value == value) return; pb_value = (int)value; this.Refresh(); } private float thumb_value(int x) { return Min + (Max - Min) * x / (float)(ClientSize.Width); } } }
il problema è che alla riga 37 mi dice "eccezione non gestita"
System.DivideByZeroException: 'Tentativo di divisione per zero.'
che vuol dire?
grazie mille
aaa