以前は進化系、現在は熟し系になった男のブログ -3ページ目

以前は進化系、現在は熟し系になった男のブログ

広島で主に業務関係のシステム構築に携わっています。
宜しくお願いいたします。

こんにちは。

盆休みが終わり、本日より通常業務となっております。
公式には13日から16日までと長めにいただいた盆休みでしたが、実際は15、16日の二日のみ、お休みさせていただきました。
最近は土日も忙しくすることが多いので、二日間の休みは正直、落ち着かなかったですね。
休み明けの仕事を考えたりと。

今朝から早速プログラムを作成しているわけですが・・・


近々正式にWindows8がデビューするとあって、さすがにXP環境で頑張られた方々でも、少々焦り気味では?
弊社のユーザー様も順次、バージョンアップをさせていただいてます。
現在仕掛の案件もそうした案件です。

旧VisualBasicで作成したシステムをVB.NETにやき直す。
ついでに機能改善と強化です。
旧VBとVB.NETは似て非なるものというのは、開発者の方はもちろんご存じと思います。
基本的にはそっくりさんを作り直しです。

ではVB.NETの初期物と2005、最新の2010ではどうか?
これまた違います。
全く違うわけではないですが、言語仕様の細かいところが結構違います。
今朝からはまっていた一件はその辺りに関係したようですので、ちょっとご紹介まで。

System.Windows.Forms.PrintDialog

上記はプリンターへ印字する際に表示するプリントダイアログの定義です。
通常ですと、ダイアログ表示させて、レスポンスを判断し、印刷もしくはキャンセル行為を行うのですが。
Win7 32bitだと問題ないのに、64bitだとスルーしてレスポンスがキャンセル扱いになってしまいます。

私はたまたまVB.NET2003で作成したソースを流用していて、このような現象に出くわしました。
しばらくあれこれやってたのですが、ふと64bitのVB2010環境でプリントダイアログを作成してみると・・・

Me.PrintDialog1.UseEXDialog = True

上記の一文が入っていました。

もしやと思いさらに調べると、やはり同じようにはまった方がネット上で紹介されていました。
64bit環境だと、なぜか上記の一文が必要だそうです。

たぶん、バグでしょうね・・・

最近はWin7で64bitも増えてますから、念のためにテストしていて見つけたバグでした。
以上、他愛もない話ですが、お役にたてば幸いです。