私はコードを介して新しいPictureboxを作成していますが、今私のTextBoxesは私に値を与えていません。私は、彼らが焦点から出たと思います、または彼らのコントロールはもはや機能していない、ここでのコードは、これまでのところです:C#私は新しいPictureboxを作成し、私のTextboxesは戻って私に値を与えません
private void button1_Click(object sender, EventArgs e)
{
int ErrorCode = 0;
string NewName = NewPointName.Text;
int X, Y;
Application.DoEvents();
if (NewPointName.Text == "")
ErrorCode = 1;
else
for (int i = 0; i < Names + 1; i++)
{
if (PointName[i] == NewName)
ErrorCode = 2;
}
if (ErrorCode > 0)
MessageBox.Show("Error " + ErrorCode);
else
{
if (Convert.ToInt32(NewPointXBox.Text) > 60)
X = 60;
else if (Convert.ToInt32(NewPointXBox.Text) < -60)
X = -60;
else if (NewPointXBox.Text == "")
X = 0;
else
X = Convert.ToInt32(NewPointXBox.Text);
if (Convert.ToInt32(NewPointYBox.Text) > 60)
Y = 60;
else if (Convert.ToInt32(NewPointYBox.Text) < -60)
Y = -60;
else if (NewPointYBox.Text == "")
Y = 0;
else
Y = Convert.ToInt32(NewPointYBox.Text);
Punkt.GiveName(NewName, Names);
Punkt.GiveCoordinates(X, Y, Names);
PointName[Names] = NewName;
NewPointName.Text = "";
NewPointXBox.Text = "";
NewPointYBox.Text = "";
Application.DoEvents();
UpdatePoint();
CreatePoint(X, Y, NewName, Names);
Names++;
ErrorCode = 0;
NewName = "";
}
}
public void CreatePoint(int X, int Y, string name, int i)
{
int StartPointX = 450, StartPointY = 450, Factor = 7;
if (RadioG6060.Checked)
{
StartPointX = 454;
StartPointY = 449;
Factor = 7;
}
Dot[i] = new PictureBox();
this.Controls.Add(Dot[i]);
Dot[i].Name = "PB_" + name;
Dot[i].Size = new Size(10, 10);
Dot[i].Image = Image.FromFile("../Dot.png");
Dot[i].Anchor = AnchorStyles.Left;
Dot[i].Location = new Point(StartPointX, StartPointY);
Dot[i].Visible = true;
InitializeComponent();
Dot[i].BringToFront();
Dot[i].Location = new Point(Dot[i].Location.X + (X * Factor), Dot[i].Location.Y - (Y * Factor));
Application.DoEvents();
}
私はそれをオフに投げることthis.controls.Add(Dot[i])
だと思う、今私はテキストにアクセスすることはできませんので、私のNewPointNameテキストボックス。
フォームにプログラムのフォーカスを戻すにはどうすればよいですか、一般的にボックスを再びアクティブにすることができるものは何ですか?
「NewPointNameテキストボックスのテキストにアクセスできません」という意味はどうですか?あなたは何をしようとしていますか、それはどういうわけではありませんか/あなたは何の結果を得ていますか? - なぜ、あなたはどこでも 'Application.DoEvents()'を呼びますか? –
あなたのコードの最下部で、あなたの 'NewPointName'テキストボックスの値をクリアすることを知っていれば幸いです:' NewPointName.Text = ""; –
私は知っていますが、それらはプログラムのUIで上書きされます。 – ExoSkull