- PR -

スプレッドのファンクションキー

1
投稿者投稿内容
はら
会議室デビュー日: 2004/06/11
投稿数: 17
投稿日時: 2004-11-04 22:27
お世話になっております。

ただいま、VB.NET,SPREAD for .NET Windows forms Ed ver1.0.3.0
の環境でスプレッドの帳票を作成しております。

フォーム内にボタンを設け、F2が押された時、
そのボタンのクリック処理をするという関数を作成しました。

しかし、スプレッド内では、F2,F3,F4をクリックしてもキーダウン処理が
おこなわれなく、F2で処理をすることができません。

スプレッド内でF2,F3,F4を自由につかうためにはどうしたらいいでしょうか。
ご教授おねがいします。
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-05 09:09
おはようございます。

VB.NET,SPREAD は使用した事がないので分かりませんが、例えばPanelコントロールを
使用してその中にテキストボックス等を配置した場合は、そのPanelコントロール自体が
フォーカスを受取っているかどうか判断出来ればその中でのKeyDownを拾う事が出来ます。

フォームのKeyDownイベントで、

If Me.Panel1.ContainsFocus = True Then

End If

つまり階層構造になっている1つ上の階層のコントロールがフォーカスを受取っていれば・・・
という事ですね。VB.NET,SPREADも階層構造になっていると思いますのでスプレッド内の
各オブジェクトの1つ上の階層のオブジェクトのフォーカスの状態を見て判断できないでしょうか?

実際にVB.NET,SPREADをみていないので、あくまでも予測ですが・・・。



はら
会議室デビュー日: 2004/06/11
投稿数: 17
投稿日時: 2004-11-05 10:13
お返事ありがとうございます。

「フォームのKeyDownイベントで」とおっしゃりましたが
そのKeyDownイベントもひろうことができません。

スプレッド内でのF2,F3,F4はスプレッド特有の機能があり、
KeyDownイベントを受けつけなくなってるみたいです。

これはスプレッドの仕様で、変更できないものなのでしょうか。

とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-05 10:28
こんにちは。

スプレッドがなくても無理ですか?普通のテキストボックスやボタンのみのフォームでは
どうでしょう?KeyPreviewプロパティはTrueになっていますよね?

スプレッドの仕様は分かりません。

あとノーマルのDataGridで言わせてもらうと、DataGridでも各セルの中ではKeyDownイベント
は拾えませんが、直前にDataGridにフォーカスを移してやると拾うことが出来ます。
いっこさん
ベテラン
会議室デビュー日: 2003/07/03
投稿数: 67
投稿日時: 2004-11-05 10:56
引用:

スプレッド内でのF2,F3,F4はスプレッド特有の機能があり、
KeyDownイベントを受けつけなくなってるみたいです。

これはスプレッドの仕様で、変更できないものなのでしょうか。



入力マップのカスタマイズでは、解決しませんか?
F2キーの動作を無効にする/別の機能にすることができます。

マッピングについては、Spread付属のヘルプに書いてあります。
サンプルコードも掲載されているので、試してみてください。

KeyDownイベントを受け付けないってことはないと思います。
はら
会議室デビュー日: 2004/06/11
投稿数: 17
投稿日時: 2004-11-05 11:55
お返事ありがとうございます。

スプレッドがない場合のフォームではKeyDown処理はなんら問題なく動きます。
KeyPreviewもTrueになっています。

F2,F3,F4以外のキーを押した場合、
KeyDownイベントはスプレッドでもフォームでもひろえます。

しかし、
スプレッドにフォーカスがあたってない場合は
フォームのKeyDown処理はF2,F3,F4もひろうことができます。

スプレッド内でのF2,F3,F4のKeyDownイベントだけがひろえないのです。

どうしたらいいでしょうか。

いっこさん
ベテラン
会議室デビュー日: 2003/07/03
投稿数: 67
投稿日時: 2004-11-05 13:52
引用:

スプレッドにフォーカスがあたってない場合は
フォームのKeyDown処理はF2,F3,F4もひろうことができます。

スプレッド内でのF2,F3,F4のKeyDownイベントだけがひろえないのです。

どうしたらいいでしょうか。



「入力マップのカスタマイズ」は試されましたか?
はら
会議室デビュー日: 2004/06/11
投稿数: 17
投稿日時: 2004-11-05 14:57
お返事ありがとうございます。

メッセージを送るタイミングがかぶっていて
トージ。さんのメッセージを見ずおくってしまいました。
すみませんでした。

トージ。さんにいわれたとおり、今、入力マップのカスタマイズを
試してみたところ、うまく操作できるようになりました。

本当にありがとうございました。


1

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