dポイントプレゼントキャンペーン実施中!

フォーカスされているチェックボックスにスペースをキーを入力するとチェックが反転します(SendKeys.Send(" "))。
チェックの有無に関わらずチェックする方法があれば、ご教示お願いします。

A 回答 (6件)

どこで詰まってる?


フォーカスがあるコントロールを取得できない?
チェックができない?
チェックしたいだけなら、checkedプロパティに設定すればいけると思うけど。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

VBで自分用のアプリをもう何年もいくつも作っていますが、基礎が出来ていないので何年経っても初心者を抜け切れないでいます。

今、行き詰っているのは、IE11を操作し、その画面を印刷しようとしているところです。その印刷でのダイアログで印刷結果を画面に表示するかどうかをチェックボックスで指定できるようになっています。
そのチェックボックスのデフォルトがどうあれ、チェックを外したり、チェックを付けたりしたいのですが。
チェックされている状態(チェックの有無)が判れば、スペースキーのキーインの要否で操作可能なのですが。

解決方法をよろしくご教示お願いします。

お礼日時:2021/01/29 09:13

> チェックボックスは、IE11で表示している画面を印刷するdoPDF 8が起動


> されると表示されるダイアログ中にあるものです。

思いっきりVBのアプリとは関係のないアプリ内ですね。

手順は
VBで作成したアプリにあるボタンを押す→IE11が起動する→IE11の印刷機能でdoPDF 8プリンタを選択して印刷を行う
ですか?

だとしたら不可能ですね。
IE11にいった時点でVBは全く関係なくなりますし、doPDFの動作仕様を壊すような操作を、VB側から行うことはできません。
    • good
    • 0
この回答へのお礼

> 思いっきりVBのアプリとは関係のないアプリ内ですね。
VBの関係の有無については、誰も問題にしてません。VBは開発環境の一つとして提示しているものです。前から「VB、VB、…」と何を気にしているのでしょうか?

> doPDFの動作仕様を壊すような操作を、VB側から行うことはできません。
doPDFのダイアログには、出力ファイル名の指定は出来ています。同じそのダイアログ中にある出力ファイルを画面表示の要否を指定するチェックボックスを制御しようとするものです。これを「動作仕様を壊す」とは、全く本質が理解できてないように思われます。

今までの回答に、全く無関係なJavaScriptを持ち出して来たり、一方的な思い込みが激しいように思われます。

お礼日時:2021/02/02 11:12

チェックボックスは、Windowsフォームに配置されているものですか?


それとも一般公開されているWebサイトに配置されているものですか?

WindowsフォームとIE11の関係性も不明ですが。
    • good
    • 0
この回答へのお礼

naktakさん、度々ありがとうございます。

チェックボックスは、IE11で表示している画面を印刷するdoPDF 8が起動されると表示されるダイアログ中にあるものです。

IE11は、本アプリのユーザフォームに設置しているボタンにより起動するようになっています。

よろしくお願いします。

お礼日時:2021/01/29 16:27

『vb.netでIE11を動かしている』とは具体的にどのような状況なんでしょうか。


VB.NETのWindowsFormsで、WebBrowserコントロールを貼り付けてWebサイトを表示している、などもあり得るし、
ASP.NETによってIIS上への配置となるものなのか、WebFormなのか、表現は様々です。
VB.NETはどういうプロジェクトで何を利用して作成されているんですか?

私は『IE11を動かしている』という表現では、ああ、ブラウザIE11を起動して、作成したWebサイトにアクセスしているんだな、という認識になりましたが。
であるならばやはりVB.NET固有の問題ではなく、JavaScriptの問題ですよね。
    • good
    • 0
この回答へのお礼

私の知識不足で、naktak さん達のご質問に的確に答えられているのか、甚だ疑問ですね。お許しください。

Windows 10、Visual Studio 2019、Windowsフォームアプリケーションのプロジェクトとして、VBで作成しています。

IE11で表示する内容は、自分で作成したものではなく、一般に公開されているものです。また、そのアプリで右クリックによる表示画面の印刷は、doPDF 8というツールを使用しています。

よろしくお願いします。

お礼日時:2021/01/29 13:07

> IE11でのHTMLソースを操作しています。


VB.NET関係ないですよね。
JavaScriptの世界なので、JavaScriptで頑張ってください。

<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function() {
document.getElementById('hoge').addEventListener('keydown', function() {
if (event.keyCode != 32) {
return;
}
this.checked = false;
event.preventDefault();

});
}
</script>
</head>
<body>
<input type="checkbox" id="hoge">sample
</body>
</html>

クリックした時の制御とか色々考えなきゃいけないかと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます。

vb.netでIE11を動かしているアプリでの問題ですが。

お礼日時:2021/01/29 10:50

> チェックの有無に関わらずチェックする方法があれば


スペースキーを押した時、既にチェックされている状態でも、チェックが外れないようにしたいということでしょうか?

> 今、行き詰っているのは、IE11を操作し、その画面を印刷しようとしてい
> るところです
あなたが困っているシステムの開発環境は、WindowsFormsですか?WebFormの話ですか?Javascriptの話ですか?
    • good
    • 0
この回答へのお礼

サポートありがとうございます。

やりたいことは、チェックが外れていてば、チェックが外れた状態のままにしたい。また、チェックが付いていれば、チェックを外したいのです。
さらに、その逆も。

IE11でのHTMLソースを操作しています。

よろしくお願いします。

お礼日時:2021/01/29 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!