- PR -

NET Framework クラス ライブラリ上のメソッドのオーバーライドがうまくいきません

1
投稿者投稿内容
00_Number
常連さん
会議室デビュー日: 2003/11/04
投稿数: 37
投稿日時: 2003-11-05 20:58
お世話になっております。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5675&forum=7
上記の過去の記事に書かれている処理と同じ事を実現したいと考えていますがうまくいきません。

過去記事の一番最後の書き込みにある
Public Class MyDataGrid
から
End Class
までのコードを単純に自分のソースコードの後ろに書くだけでは実現出来ないのでしょうか。

何かお気づきの点がありましたらアドバイスを頂きたいと思います。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2003-11-06 14:41
こんにちわ。諸農です。

引用:

までのコードを単純に自分のソースコードの後ろに書くだけでは実現出来ないのでしょうか。



「ソースコードの後ろ」とはどのあたりのことを指しているのか判りませんが、
その参考にされているコード(クラス)の何がうまくいかないのでしょうか?
コンパイルエラーでしょうか?それとも、動作が予定しているものにならないのでしょうか??


全体的に、ちょっとわからない内容ですので、もう少し具体的に書かれてみては
いかがでしょうか。

ではでは(^^)/
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
00_Number
常連さん
会議室デビュー日: 2003/11/04
投稿数: 37
投稿日時: 2003-11-06 15:28
Jubeiさんご指摘ありがとうございます。

おっしゃる通り説明不足でした。

現在DataGridを用いたWindowsアプリケーションを作成しております。
自分のコードは

Public Class MntForm
Inherits System.Windows.Forms.Form

Private Sub MntForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    (内容省略)

End Class

というようになっておりまして、こちらのコードの後ろに

Public Class MyDataGrid
Inherits System.Windows.Forms.DataGrid
Const WM_KEYDOWN As Integer = &H100
Private mControl As Windows.Forms.Control

Public Property NextControl() As Control
Get
Return mControl
End Get
Set(ByVal Value As Control)
mControl = Value
End Set
End Property

Protected Overrides Function ProcessCmdKey _
(ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean

If msg.Msg = WM_KEYDOWN Then
If (keyData = Keys.Tab) Then
mControl.Focus()
Return True
Else
Return MyBase.ProcessCmdKey(msg, keyData)
End If
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class

という参考記事のコードをそのまま貼り付けただけでは参考記事に書かれている動作が
出来ないようなのですが、そちらの原因についてご存知でしたら意見を伺いたい。という内容の質問です。

ちなみにコンパイルは正常に通過しました。

まず参考記事から追って頂かなければならないという形式で質問してしまったので
配慮が足りなかったと反省しております。

まだ説明が足りないようであればご指摘をお願いします。
あみぃ
会議室デビュー日: 2003/01/20
投稿数: 8
投稿日時: 2003-11-06 18:22
画面(提示されたソースのMntForm)で使用しているDataGridは、ちゃんとMyDataGridになってますでしょうか?
参考記事で示されていたソースは、.NET標準のDataGridを継承し、そのイベントをOverrideしています。
なので、画面で使用するDataGridのインスタンスはMyDataGridのインスタンスでないと意味がありません。

こうした場合、MyDataGridのソースを別プロジェクトにしてdllとしてコンパイルし、それをVS.NETのツールボックスに登録し、それを画面に貼り付けた方が簡単かと思います。いかがでしょう?
1

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