- PR -

DataGrid 新しい行か否かの判定

1
投稿者投稿内容
F.ISHII
会議室デビュー日: 2002/07/17
投稿数: 10
投稿日時: 2005-01-27 11:19
お世話になります。
VB.NET、WindowsフォームのDataGridコントロールにおいて、現在カーソルが点滅している行が新しい行(いちばん下の*の行)にあるか否かを知りたいのですが、どのような方法で取得できますでしょうか?
よろしくお願い致します。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2005-01-27 13:23
こんなかんじでいけると思います。
CurrencyManager cm = (CurrencyManager) this.BindingContext[データソース];
DataRowView rowView = (DataRowView) cm.Current;
if(rowView.IsNew())
{
新しい行
}

# 追記
# すいませんVB.NETやらないんでC#でかいちゃいました
# DataRowViewをCurrncyManagerから取得してDataRowViewのIsNewメソッドで
# 判断できます。

[ メッセージ編集済み 編集者: Kazuki 編集日時 2005-01-27 13:25 ]
F.ISHII
会議室デビュー日: 2002/07/17
投稿数: 10
投稿日時: 2005-01-27 14:03
ご回答ありがとうございました。
早速、以下で試してみましたが、新しい行をクリックした状態でも
Not New が返ります。
ご指摘頂ければ幸いです。

Private Sub DataGrid1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGrid1.Paint

Static c
c = c + 1
Dim cm As CurrencyManager = _
CType(Me.BindingContext(DataSet11, "データテーブル名"), CurrencyManager)
Dim rowView As DataRowView = CType(cm.Current, DataRowView)
If rowView.IsNew() Then
Me.lblPos.Text = c.ToString + " New"
Else
Me.lblPos.Text = c.ToString + " Not New"
End If

End Sub
F.ISHII
会議室デビュー日: 2002/07/17
投稿数: 10
投稿日時: 2005-01-27 15:23
おかげさまで解決しました。

Dim cm As CurrencyManager = _
CType(Me.BindingContext(DataSet11, "データテーブル名"), CurrencyManager)

のところを

Dim cm As CurrencyManager = _
CType(Me.BindingContext(DataView1), CurrencyManager)

に直したところうまく動きました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)