DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データグリッドビューでダブルクリックされた行のレコードだけを表示

環境/言語:[Windows7、C#、.NET Frameworkのバージョン(2.0)]
分類:[.NET]

Visual Studio 2005にて、言語はC#で勉強をしていますが、
住所録のアプリを作成してどうしてもForm1のデータグリッドビュー
(addresstureTable_1DataGridView)のセルをダブルクリックして、
Form2のフォームを開いたときに、データグリッドビューでダブルクリックされた行のレコードだけが、
表示されるように実現したいのですが、テーブルバインディングソースのFilterプロパティを設定したいのですが、
設定の仕方がいまいち分からず、また以下のコードで後は何が足りないのでしょうか?
今まで、概要はデータソースウィンドウからAddresstureTable_1の詳細を選択して、
AddresstureTable_1をフォーム上にドラック&ドロップし、自動生成はしています。
CellContentDoubleClickイベントには、
クリックされた行番号の取得addresstureTable_1DataGridView.Rows[e.RowIndex].Cells[0].Value.ToString();
までは出来ているのですが、Form2のフォームを開いたときに、
どうしても選択したレコードだけを表示できません。
アドバイスよろしくお願いします。

Form1.csのコード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2
{
public partial class Form1 : Form
{
以下省略〜
private void addresstureTable_1DataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
// 単票形式のインスタンスを作成する
Form2 tForm = new Form2();
// 単票形式のダイアログボックスを作成する
DialogResult tret = tForm.ShowDialog();
}

private void addresstureTable_1DataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Filter =
addresstureTable_1DataGridView.Rows[e.RowIndex].Cells[0].Value.ToString();
}

Form2.csのコード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
// フィルタ
public string Filter;

private void addresstureTable_1BindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.addresstureTable_1BindingSource.EndEdit();
this.addresstureTable_1TableAdapter.Update(this.addresstureWorksDataSet.AddresstureTable_1);

}

private void Form2_Load(object sender, EventArgs e)
{
// TODO: このコード行はデータを 'addresstureWorksDataSet.AddresstureTable_1' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
this.addresstureTable_1TableAdapter.Fill(this.addresstureWorksDataSet.AddresstureTable_1);
}

private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
■No28410に返信(しぃーちゃんさんの記事)

Form2側のバインディングがプログラム上で行うことに
なりますが、これはどうでしょう?
http://msdn.microsoft.com/ja-jp/library/ms404320.aspx
■No28416に返信(shuさんの記事)
shuさん、アドバイスいただきましてありがとうございました。
> http://msdn.microsoft.com/ja-jp/library/ms404320.aspx
おかげさまで参考にして実現できました!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板