ページ 11

.net環境でTab送り

Posted: 2009年8月09日(日) 20:59
by 初心者
よくメモ帳であるTabキーを押すとずれるようにしたいです。

.net環境でマルチラインで作ったテキストボックスのTab送りをしたいです。
VCで作っています。

Re:.net環境でTab送り

Posted: 2009年8月09日(日) 22:55
by Justy
 メモ帳と同じ、ですか。


TextBoxBase.AcceptsTab プロパティ (System.Windows.Forms)
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.acceptstab(VS.80).aspx

 このメンバを Trueにすると Tabキーのイベントが来ますよ。

Re:.net環境でTab送り

Posted: 2009年8月10日(月) 23:07
by 初心者
ご回答ありがとうございます。
フォームの部品を読み込んだ時にAcceptsTabを特に記載しない前提です。

キーイベント時に
上だとシフトを押してる時はTabがきくという意味だと思います。
下だとシフトを放している時はTabがきくという意味だと思います。
上は問題なく動作するのですが
下が無反応です・・・。(Tabの効果が出る)
なぜなんでしょうか・・・?
                   //上
				 if(e->Shift == true){
					 this->textBox->AcceptsTab = true;
				 }else{
					 this->textBox->AcceptsTab = false;
				 }

                   //下
				 if(e->Shift == false){
					 this->textBox->AcceptsTab = true;
				 }else{
					 this->textBox->AcceptsTab = false;
				 }

Re:.net環境でTab送り

Posted: 2009年8月10日(月) 23:21
by バグ
まさかとは思いますが、キーが押されないからキー入力イベントが発生していない…なんて事はありませんよね?

キー入力イベントはキー入力に応じて発生するイベントです。

つまり上の記述だと、シフトが押された際にイベントが発生しますが、下の記述だとシフトを押さずに、シフト以外のキーが押された際に初めて処理される訳です。

つまり、シフトが押されていない状態だけを判別したいならば、『シフトが押された場合』と『シフトが放された場合』の両方で判定してやらなければいけません。

Re:.net環境でTab送り

Posted: 2009年8月10日(月) 23:49
by 初心者
バグ様

何んとなくわかった気がするのですが放された時とはどういう意味でしょうか?
現在Shiftが押されているときにTabをおしても反応しないが
Shiftが押されていない時にTabをおすと文字送りをしたいです。

具体的にどのように書けばよろしいのでしょうか・・・?

Re:.net環境でTab送り

Posted: 2009年8月11日(火) 05:59
by 初心者
すみません・・・
自己解決しました。みなさんありがとうございます。