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

指定した行

環境/言語:[.Net2002]
分類:[.NET]

DataGridで指定された行へスクロールするのにどうすればいいのかがわかりません。サンプルで下のようなものを見つけました。

Public Class MyDataGrid
Inherits DataGrid

'/ <summary>
'/ DataGridの最初に表示される行を設定する
'/ </summary>
'/ <param name="rowNum">DataGridの最初に表示される行の番号</param>
Public Sub SetTopRow(ByVal rowNum As Integer)
Dim args As New ScrollEventArgs( _
ScrollEventType.LargeIncrement, rowNum)
GridVScrolled(Me, args)
End Sub
End Class

これを見ても閃かないのですが、これはクラスを呼んでSetTopRowを呼ぶのでしょうか?あと、どのDataGridがスクロールされるのかがわかりません。
超初心者な私に教えてください。
  • 題名: Re[1]: 指定した行
  • 著者: きいぼー
  • 日時: 2004/09/20 20:05:37
  • ID: 6247
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
きいぼーです。
かるちゃんさんへ

> Inherits DataGrid
とあるので、
DataGridを継承して、MyDataGridクラスを作成しているようです。

標準のDataGridではなく、MyDataGridをForm上に配置し
使用するのではないですか?
サンプルがどこにあったのかは、判りませんが、
そちらに記載されていませんか?
きいぼーさん。こんにちわ

>> Inherits DataGrid
> とあるので、
> DataGridを継承して、MyDataGridクラスを作成しているようです。
>
> 標準のDataGridではなく、MyDataGridをForm上に配置し
> 使用するのではないですか?
> サンプルがどこにあったのかは、判りませんが、
> そちらに記載されていませんか?

標準のDataGridではなく、MyDataGridを使用する??
MyDataGridとは何です?
サンプル→http://dobon.net/vb/dotnet/datagrid/gridvscrolled.html
はここにあります。
DataGridクラスから派生したクラスを作成するとは書いてありますが、
どういうことなのかわかりません。特に「派生したクラス」というのがさっぱりです。
きいぼーです。
かるちゃんさん こんにちわ

> DataGridクラスから派生したクラスを作成するとは書いてありますが、
> どういうことなのかわかりません。特に「派生したクラス」というのがさっぱりです。
継承・派生はオブジェクト指向の言葉です。
簡単にいうと、
継承:あるクラスを(ここではDataGrid)元に新しいクラス(MyDataGrid)を作成する事
   プロパティ・メソッドを追加したりして、元のクラスをカスタマイズするのによく使います。
きいぼーさん。説明ありがとうございます

>>DataGridクラスから派生したクラスを作成するとは書いてありますが、
>>どういうことなのかわかりません。特に「派生したクラス」というのがさっぱりです。
> 継承・派生はオブジェクト指向の言葉です。
> 簡単にいうと、
> 継承:あるクラスを(ここではDataGrid)元に新しいクラス(MyDataGrid)を作成する事
>    プロパティ・メソッドを追加したりして、元のクラスをカスタマイズするのによく使います。
>

オブジェクト指向・・・。頭が痛くなります。継承は前に使用していた言語にもあったのでわかるのですが、クラスとういうのは今回初めて聞いたのでさっぱりわかりませんでした。クラスの概念をもっと勉強しないとだめですね。はい。

本題になるわけですが、このクラスを呼ぶのにはどうすればよいのでしょうか?
Call MyDataGrid()で呼び出せばよろしいのでしょうか?
それともうひとつ、DataGrid1を指定した番号にスクロールするにはどうすればよろしいのでしょうか?答えをお聞きするようですいません。今作成しているプロが終わればクラスを勉強したいと思いますので、ここは一つ教えてください。
  • 題名: Re[5]: 指定した行
  • 著者: java.lang.Nullpo
  • 日時: 2004/09/21 11:07:14
  • ID: 6255
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
横槍失礼します。
個人的な質問なので、回答ではありませんが、

■No6254に返信(かるちゃんさんの記事)
> 継承は前に使用していた言語にもあったのでわかるのですが、
> クラスとういうのは今回初めて聞いたのでさっぱりわかりませんでした。

「継承」という概念があるのに、「クラス」がない言語ってあるのでしょうか?
私、オブジェクト指向言語は色々な言語でやってるつもりですが、わかりません。
その『前に使用していた言語』ってなんでしょうか?
個人的に気になりましたもので(^^;
■No6244に返信(かるちゃんさんの記事)
> DataGridで指定された行へスクロールするのにどうすればいいのかがわかりません。

過去に「どぼん!のお気楽掲示板」で同様の質問がありました。

DataGrid内の指定された行までスクロールする の使用方法
http://dobon.net/cgi-bin/kirakubbs/cbbs.cgi?mode=al2&namber=45&rev=&no=0

コードの内容を理解せずに使用することは危険ですので、少なくともクラスの継承について理解されることをお勧めします。

DataGridクラスの派生クラスを使用しない方法も紹介していますが、こちらは全くお勧めできません。

DOBON.NET .NET Tips - 隠蔽されている非パブリックメンバを呼び出す
http://dobon.net/vb/dotnet/programing/invokenonpublicmember.html
java.lang.Nullpoさん こんにちわ

継承という言葉は、聞きなれているからわかるという意味です。
Formで例えるなら、機能を引きついで新たに機能を追加できるという事ですよね?
クラスというのはあまり聞いたことがないのでわからないという意味です。

管理人さん こんにちわ

教えてもらった所を見ました。
最初にわからない事があるので教えてください。

「最も簡単だと思われる方法は、VS.NETのフォームデザイナでDataGridコントロールを配置した後、そのフォームのソースコードの"System.Windows.Forms.DataGrid"という文字列を"MyDataGrid"(名前空間が別の時は、名前空間もつける)に置換する方法です。」

の「"System.Windows.Forms.DataGrid"という文字列を"MyDataGrid"(名前空間が別の時は、名前空間もつける)に置換する」という所がまずわかりません。

Friend WithEventsの所でフォームに貼り付けたDataGridの所に"MyDataGrid"に置換えてしまうとエラーになります。
名前空間で何を指定すればよろしいのでしょうか?
DataGridの下にMyDataGridというメソッドはありませんよね?
「名前空間が別の時は、名前空間もつける」というのは、名前空間になにをつけたらよろしいのでしょうか? 超初心者的な質問をしてしまいすいません。

MyDataGridというのは、一番最初に私が書いたMyDataGridのことなのでしょうか?
頭が混乱しています。
きいぼーです。

かるちゃんさん

> 継承という言葉は、聞きなれているからわかるという意味です。
> Formで例えるなら、機能を引きついで新たに機能を追加できるという事ですよね?
今回の場合標準のDataGridクラスを継承して、MyDataGridクラスを作成します。

> 「最も簡単だと思われる方法は、VS.NETのフォームデザイナでDataGridコントロールを配置した後、そのフォームのソースコードの"System.Windows.Forms.DataGrid"という文字列を"MyDataGrid"(名前空間が別の時は、名前空間もつける)に置換する方法です。」
>  :
>  :
> MyDataGridというのは、一番最初に私が書いたMyDataGridのことなのでしょうか?
そうです。

やり方。
1.空クラスとして作成したファイルに貼り付けます。
2.Formの「Windows フォーム デザイナで生成されたコード 」と書かれた行以降に存在する"System.Windows.Forms.DataGrid"をMyDatagridと置き換えます。
   例えば、
   Friend WithEvents dgDetaList As MyDataGrid
   Me.dgDetaList = New MyDataGrid

3.スクロールさせたい時に、dgDetaList.SetTopRow(100)

でできます。
みなさんどうもありがとうございました。
処理は出来ました。

でも、疑問が残ります。
基のDataGridを継承し、新たにDataGridの機能を追加するのでしょう?
そういう仕様です。という話ならばそこまでですけど。
DataGridの機能に追加すればいいと思うのですが・・・。
(あまり偉そうな事は言えないですけど。なんとくそう思いました。)

クラスは勉強しないとだめですね。
  • 題名: Re[5]: 指定した行
  • 著者: きいぼー
  • 日時: 2004/09/22 14:23:35
  • ID: 6279
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
きいぼーです。

かるちゃんさん。

> でも、疑問が残ります。
> 基のDataGridを継承し、新たにDataGridの機能を追加するのでしょう?
> そういう仕様です。という話ならばそこまでですけど。
> DataGridの機能に追加すればいいと思うのですが・・・。
> (あまり偉そうな事は言えないですけど。なんとくそう思いました。)
>
> クラスは勉強しないとだめですね。
サンプルのページにも
「DataGrid内の指定された行までスクロールするには、DataGridクラスのGridVScrolledメソッドを呼び出せばよいのですが、このメソッドはProtectedメンバのため、直接は呼び出せません。よって、DataGridクラスから派生したクラスを作成して、そこから呼び出すようにします。」
とかかれています。
DataGrid自体のは呼び出せないので、
継承したクラスから、呼び出すのです。

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