我有一个函数,我检查一个字母是否在word-hangman游戏中。如果不是这样,我会将错误增加1.正在绘制的内容取决于错误。C#绘图功能循环
我的第一个问题是,当错误变为1时,函数变为循环(我创建的messagebox仅用于测试,并且messagebox始终显示)。
我的第二个问题是没有任何实际绘制。我在课堂上有这样的代码,我希望它可以绘制到一个面板(我有多个面板)。
public void preveri()
{
for (int i = 0; i < posamezne_crke.Length; i++)
{
velika_crka = Char.ToUpper(posamezne_crke[i]).ToString();
if(tekst[i].Text == "_")
{
if (crka == velika_crka)
{
tekst[i].Text = crka;
break;
}
else
{
napaka++;
break;
}
}
}
form1.panel3_vislice.Paint += Form1_Paint; //writed here,beacouse if its on top panel3 value is null
}
public void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
if (napaka >= 1)
{
MessageBox.Show(napaka.ToString() + "a"); //just for testing
e.Graphics.DrawLine(new Pen(Color.Black, 2), 85, 190, 210, 190);
}
if (napaka >= 2)
{
MessageBox.Show(napaka.ToString() + "s"); //just for testing
e.Graphics.DrawLine(new Pen(Color.Black, 2), 148, 190, 148, 50);
}
}
您的变量/方法名称对我们来说基本上是无稽之谈。我建议将它们翻译为本文的目的,以便更容易理解您在代码中所做的事情。 – tnw 2014-10-01 13:39:11
napaka的第一个价值是什么? 0? – 2014-10-01 13:40:23
如果消息框显示在窗体的顶部,它会使区域无效,导致在移动/关闭它时立即引发“Paint”事件。改为使用'Debug.WriteLine()'并在Visual Studio中观察“输出”窗口。 – 2014-10-01 13:40:25