none
DataGridViewで、ItemをDataGridViewCell継承クラスに変換しようとするとエラーになるのはなぜなのでしょうか? RRS feed

  • 質問

  • 質問させて下さい。
    前日にDataGridViewのUndo機能について質問したものですが、
    その時に分からなかった部分についてです。

    以下DataGridViewCellを継承した独自クラスを作成しました。
    ※DataGridViewCellは象徴クラスです。
    ------------------------------------------------------------------
    Public MustInherit Class cstmCell
        Inherits DataGridViewCell
    End Class
    ------------------------------------------------------------------
    そして以下のようなコードを実行します。

    Dim grd New DataGridView
    grd.Columns.Add("Col1", "Col1")
    grd.Rows.Add("1")
    Dim cell As cstmCell = Ctype(grd.Item(0,0),cstmCell)★
    ------------------------------------------------------------------

    すると★部分で「'Class cstmCell' に変換できません。」
    とエラーになるのはなぜなのでしょうか?

    Itemプロハティの戻り値はDataGridViewCell型で、
    Item(0,0)はDataGridViewCell型を継承したDataGridViewTextBox型。
    なので、実際には縮小変換された?DataGridViewCell型を
    返しているのだと理解しているのですが、

    同じようにDataGridViewCell型を継承したcstmCell型への変換が
    どうしてダメなのか、その理由がよく分からず困っています。

    継承クラス/変換への理解が足りていない自分が悪いのですが、
    どなたか教えて頂けないでしょうか?
    どうぞ、よろしくお願い致します。m(_ _)m

    2017年11月1日 1:35

回答

すべての返信