2016-04-14 21 views
0

Programlamada gerçekten yeni bir kullanıcıyım, bu yüzden bilgiim gerçekten yetersiz görünüyorsa özür dilerim. teşekkürler'System.ArgumentException' türünün işlenmemiş bir özel durumu System.Windows.Forms.dll dosyasında oluştu.

bazı buraya kodları, benim okul için bir C# projesi yapıyorum ve benim ödev sorunlar yaşıyorum:

frm2.BackColor = Color.FromArgb(i*color); 

:

using System; 
using System.Drawing; 


private void button1_Click(object sender, EventArgs e) 
{ 
    child frm2 = new child(); 
    frm2.ShowDialog(); 


    int color = 0; 
    int i = 0; 
    Random rnd = new Random(); 
    i = rnd.Next(51); 

    frm2.BackColor = Color.FromArgb(i*color); 
    frm2.ShowDialog(); 
    if (color == 5) 
    { 
     color = 0; 
    } 
} 
+0

İlk ShowDialog() ... – Steve

+0

'u kaldır arkadaşım teşekkür et ama hala çalışmıyor. – horadus

+0

İstenilen sıraya neden olan satırı göstermek için stacktrace'i buraya gönderin –

cevap

1

sorun bu çizgidir i değişkeniniz 0 (sıfır) olduğundan, sonuçtaki renk şeffaftır ve aldığınız tam istisna mesajının şu şekilde olması gerekir:

'System.ArgumentException' türünde işlenmeyen bir özel durum oluştu System.Windows.Forms.dll

Ek bilgi: Denetim, saydam arka plan renklerini desteklemiyor. Aşağıdaki, bunu düzeltmek i ve color değişkenler için mantık düzeltip kullanmak için

:

oluşturulan renkten şeffaflık kaldırır
frm2.BackColor = Color.FromArgb(255, Color.FromArgb(i * color)); 

- Color.FromArgb Method (Int32, Color) bakın.

+0

Ayrıca, değişken rengini 0'dan başka bir değere ayarlamanız gerekir. – GreatJobBob