0

現時点では、次のようなアプリケーションがあります。

XML ファイルからデータセットにデータを読み取り、このデータグリッドに収まるようにデータソースを設定します。

ユーザーが行をクリックすると、メモ セクション内のデータが下のテキスト ボックス内に表示されます。

ここに画像の説明を入力

ユーザーが [メモ] ボタンをクリックすると、新しいフォーム form2 が表示され、メモ テキスト ボックスのデータが新しいテキスト ボックスに表示されます。私ができるようにしたいのは、フォーム2のメモテキストボックスに新しいテキストを入力し、ユーザーが[OK]をクリックするとデータグリッドに保存できるようにすることです

まさにこのように: http://youtu.be/mdMjMObRcSk?t=28m41s

ここに画像の説明を入力

これまでの OK ボタンのコードは以下のとおりです。そのフォームに datagridview1 について何も書いていないため、次のエラーが発生します。

テキストボックスからユーザー入力を取得し、XML ファイルを「更新」して、データグリッドが新しいメモで更新されるようにする方法を知りたいです。

ここに画像の説明を入力

このコードが役立つかどうかはわかりませんが、これが datagridview1_cellcontentclick を form1 の下のテキストボックスにリンクした方法です。新しいフォームの最後の行を再利用してデータを上書きする必要があると思いますが、よくわかりません

if (e.RowIndex >= 0)
        {
            DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
            //The data in the cells for the Notes Column turns into a string and is copied to the textbox below
            textBox1.Text = row.Cells["somenotes"].Value.ToString();

助けてくれてありがとう!

4

1 に答える 1

1

あなたの問題は、フォーム間の連絡に関連していると思います(非常に基本的な問題です)。form2 をダイアログとして扱い、form1 では次のように表示します。

//textBox1 is on your form1
if(form2.ShowDialog(textBox1.Text) == DialogResult.OK){
   dataGridView1.Rows[dataGridView1.CurrentCellAddress.Y].Cells["somenotes"].Value = form2.Notes;
   //perform your update to xml normally
   //.....
}
//your Form2
public class Form2 : Form {
   public Form2(){
      InitializeComponent();
   }
   public string Notes {get;set;}
   public DialogResult ShowDialog(string initText){
      //suppose textBox is on your form2.
      textBox.Text = initText;
      return ShowDialog();
   }
   private void OKButton_Click(object sender, EventArgs e){
      Notes = textBox.Text;
      DialogResult = DialogResult.OK;
   }
   private void CancelButton_Click(object sender, EventArgs e){
      DialogResult = DialogResult.Cancel;
   }
}
//form2 is defined in your Form1 class.
于 2013-07-21T16:03:33.317 に答える