- PR -

deleteキーを殺す方法

投稿者投稿内容
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-03-06 19:12
ほかにというよりも。
どのように試されたのか、試されたコードを記載されてはどうでしょうか。
ブレークポイントを置いて、オーバーラードされたメソッドまで実行されているかどうかなども試しましたか?
だいぼう
会議室デビュー日: 2002/07/24
投稿数: 9
投稿日時: 2003-03-07 18:13
ApplicationクラスのAddMessageFilter関数を使って,全てのメッセージのフィルタを作成してはいかがでしょうか?
次のようなコードで実現できると思います.
コード:
class MessageFilter1 : IMessageFilter
{
	public bool PreFilterMessage( ref System.Windows.Forms.Message m )
	{
		// Blocks all the messages relating to the left mouse button.
		if( m.Msg == 0x0100 && m.WParam.ToInt32() == 0x2E )
		{
			Console.WriteLine( "DeleteKey is pressed" );
			return( true );
		}
		return( false );
	}
}

class TestForm : System.Windows.Forms.Form
{
	public static void Main()
	{
		Application.AddMessageFilter( new MessageFilter1() );
		Application.Run( new TestForm() );
	}
}


こうすることで,全てのフォームに対して書かなくてもよくなると思います.
あと,PreFilterMessage関数でtrueを返すと,KeyDownとKeyPressの両方のイベントが無効になったと記憶しています.
ペキンダック
会議室デビュー日: 2003/03/02
投稿数: 6
投稿日時: 2003-03-10 14:20
遅くなりましたが、ご回答頂いた皆様方、どうもありがとうございました。
だいぼうさんのやり方でうまくいきました。

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