TextBoxとNumericUpDownツールがforeachループによって動的に生成されるコードがあります。今、私は両方の値を得ることができるようにしたい、各反復で、両方の値は、データベースの同じ行に追加されます。 NumericUpDown値を取得するためのコードがあり、TextBox値を取得する方法を実装する方法が不思議でした。C#ウィンドウのフォームでダイナミックなnumericupdownとtextboxの値を取得する方法
ボタンのクリックに動的NumericUpDownを値を取得するためのコード(データベース・コードが動作する)
foreach (NumericUpDown ctlNumeric in panel.Controls.OfType<NumericUpDown>())
{
var value = ctlNumeric.Value;
int number = Decimal.ToInt32(value);
sample_save = "INSERT INTO forthesis (testVal) VALUES ('" + number + "');";
MySqlConnection myConn = new MySqlConnection(connectionString);
MySqlCommand myCommand = new MySqlCommand(sample_save, myConn);
MySqlDataAdapter da = new MySqlDataAdapter(myCommand);
MySqlDataReader myReader;
myConn.Open();
myReader = myCommand.ExecuteReader();
myConn.Close();
MessageBox.Show(number.ToString());
}
サンプル出力
t = temp.Split(';'); // e.g. t = Arial;32
int pointX = 70;
int pointY = 80;
int pointA = 300;
int pointB = 80;
for (int i = 0; i < N; i++)
{
foreach (object o in t)
{
TextBox a = new TextBox();
a.Text = o.ToString();
a.Location = new Point(pointX, pointY);
a.Size = new System.Drawing.Size(150, 25);
panel.Controls.Add(a);
panel.Show();
pointY += 30;
NumericUpDown note = new NumericUpDown();
note.Name = "Note" + i.ToString();
note.Location = new Point(pointA, pointB);
note.Size = new System.Drawing.Size(40, 25);
note.Maximum = new decimal(new int[] { 10, 0, 0, 0 });
panel.Controls.Add(note);
pointB += 30;
}
}
を動的NumericUpDownをし、テキストボックスを生成するために、各行が挿入されるコードデータベース
どのようにしてTextBoxの値を取得できますか?あなたの助けに感謝します。どうもありがとうございます!!!
Dictionary<string, TextBox> textboxes = new Dictionary<string, TextBox>();
for (int i = 0; i < N; i++)
{
foreach (object o in t)
{
TextBox a = new TextBox();
.....
NumericUpDown note = new NumericUpDown();
note.Name = "Note" + i.ToString();
......
textboxes.Add(note.Name, a);
}
}
foreach (NumericUpDown ctlNumeric in panel.Controls.OfType<NumericUpDown>())
{
var value = ctlNumeric.Value;
int number = Decimal.ToInt32(value);
TextBox tb = textboxes[ctrlNumeric.Name];
String text = tb.Text;
.........
}
あなたがTextBoxsを削除する場合& NumericUpDowns - そして、あなたにも辞書をクリアする必要があります - :次のようにマッチングペアテキストボックスを保存するためのTextBox辞書 -
DBにさらに挿入される変数 'number'に両方の値を追加しますか? –
@Rakitićhmmm私はそれが別の変数に格納されていることを好むでしょう。 –
辞書のようなものを使って試してみましょう:http://stackoverflow.com/questions/12238599/find-wpf-control-by-name - あなたは2つを使うことができます各コントロールの同じキーを持つ辞書 – PaulF