[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 11/21 21:39 / Filesize : 247 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ (Part17)



1 名前:最凶VB厨房 mailto:sage [2006/08/11(金) 19:40:44 ]
[前スレ]VB.NET質問スレ (Part16)
pc8.2ch.net/test/read.cgi/tech/1149432480/

237 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 12:15:31 ]
>>236
> Private Sub 『hoge』
> というツール?がよくわからなかったので、参照が出来ませんでした…
これが仮に「釣り」ではなく真面目な回答なら、煽りでも何でもなく真面目な助言なんだが、
初心者向けの書籍を最低一冊は自分で購入して学習ないといけない。

238 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 12:17:45 ]
>>236
どうやら Handles の意味も調べなおしといたほうがよさそうだな・・・

239 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 12:21:26 ]
> Private Sub 『hoge』
> というツール?がよくわからなかったので、参照が出来ませんでした…

この時点でスルー決定でおk?

240 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 13:09:49 ]
ワロタ


241 名前:236 [2006/08/29(火) 13:57:31 ]
私は.NETしか使用した事がありませんから、>141に使われている言語全体が、私が使用しているものと違い、何の本を参考にしていいのかもわかりません。
少なくとも、『学生のためのVisual Basic .NET』(東京電機大学出版局)には、件のワードは載っていないと思われます。
どうかお知恵をお貸し下さい…

242 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 13:58:36 ]
これは・・・

243 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 14:08:28 ]
クマー

244 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 14:09:25 ]
>>241
ttp://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9977896941
これか?
第6章に書いてないか?
"hoge"は命名の例え。"baka"でも何でも自分で付けるもの。
(各自コーディング規約に則っての修飾等は置いておいて)
普通はその自分で作った関数の機能がわかるように命名する。
関数に名前を付け、中身も(この例だとRnd()のある2行)記述し、使いたい各所でその名前にて呼び出す。
Private, PublicやSub, Functionについても第6章に書いてあると思われ。

君はその本を読んだのかもしれないが、理解も習得もしていないし断片を記憶に留めることもしていない。

245 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 14:11:56 ]
>>241
目次で見る分には十分そうな気もするんだが。
ttp://www.tdupress.jp/cgi-bin/detail.cgi?i=ISBN4-501-53670-5

このあたりからやってみたらどうだろう?
ttp://www.seshop.com/detail.asp?pid=3813

あと、>>141のコードを丸ごと動かしてみてトレースしてみたら?



246 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 14:16:56 ]
> >141に使われている言語全体が、私が使用しているものと違い

この時点でスルー決定でおk?

247 名前:デフォルトの名無しさん mailto:sageだクマー [2006/08/29(火) 14:20:43 ]
foo() や bar() 関数(api?)をよく見るのですが、
どのリファレンスにも載っていません。
どうもいろいろな言語に共通しているようですが、
いったいどういう動作をするのでしょうか。教えてください。

248 名前:デフォルトの名無しさん [2006/08/29(火) 18:42:43 ]
また人に教えを垂れたい「答えたがりクン」と、友達がいないからこんなところでも
馴れ合いたい「馴れ合いクン」が湧いてくるんだろw

馬鹿なことだよな。
こういう奴らはどっちかというと本来質問する側にまわるヘッポコ野郎のくせに、
自分で自分の利用可能なリソースを破壊してることにも気づかないんだから。

こんな下らん馴れ合いが続けば、ある程度スキルがあるまともな奴から去っていくだろ。

249 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 19:17:46 ]
本人乙

250 名前:241 mailto:sage [2006/08/29(火) 20:07:47 ]
>244>245
>141のコードを記述してみると、確かに、うまく動作していました。プロシージャの項目と言わず、もっと精進していくつもりです。大変にお騒がせしました。ありがとうございます。

>248
きっと、ある程度スキルがある人の事は、ある程度スキルがある人にしかわかりません。揣摩臆測でしょう。

251 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 20:51:28 ]
>>232

貴方のいうButton1_Click は、別にどんな名前でもいい。これは解るかな?
そして、好きなイベントをHandleできるということも解るかな?

コレが解ればなぜButton2をクリックしてButton1_Click が動くのかは理解できるだろう。



252 名前:232 [2006/08/29(火) 21:05:36 ]
>251
ありがとうございます。今はわかりませんが、精進してわかり得るように努めます。

253 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 21:14:10 ]
精進する気がある奴ならそんな程度の質問などしないはずだがね。
まあ人事だからどうでもいいけど。
ただ鬱陶しいから二度と来ないでは欲しい。

254 名前:デフォルトの名無しさん [2006/08/29(火) 21:18:23 ]
多重起動時のウィンドウ制御について教えてください。

アプリを多重起動させようとしたときに、
既に同じアプリが動いてれば、何もさせずに、
起動済みのインスタンスをアクティブにして、
2つ目に起動したインスタンスは何もせずに終了させるという
ロジックを組もうとしています。

インスタンスが起動済みかどうかは Process.GetProcessesByName
などを使って判別することができ、
1つ目のインスタンスにPostMessageでWM_USERを送り、
自分自身でアクティブ化させるという方法をとったのですが、
問題なのは、このアプリが最小化されたときは、タスクバーから消して、
トレイに格納するようにしていることです。
タスクバーから、ウィンドウを消してしまうと、
たとえアプリが起動していても、2つ目のインスタンスから、
1つ目のインスタンスのMainWindowHandleを取得しようとしても
0しか返って来なくなるようで、PostMessageが使えない状態です。
2つ目のインスタンスに何かメッセージを送る方法はないでしょうか?


255 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 21:36:33 ]
>>254
単一インスタンスのアプリケーションを作成 ではだめなん?
だめだよね…



256 名前:デフォルトの名無しさん [2006/08/29(火) 21:49:12 ]
>>254
>>196以降のレスは読んでる?
つーか同一人物か?

257 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 22:06:28 ]
Do-Loopキモイ。

258 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 22:22:26 ]
.NETのdatagridviewに、VB6のmsflexgridでいう
margeColやmargeRowみたいな機能はありますか?
探すのですが、みつからない…Orz

259 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 22:27:16 ]
ない

260 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 22:43:15 ]
>>259
お答え有り難う御座いました
無いのですか…orz
編集とか出来るようなので、ないような予感はしてましたが…
(つД`)あぁ

261 名前:254 [2006/08/29(火) 23:13:32 ]
>>255
単一でもアクティブにならないとダメなんで・・・

>>256
すみません、見逃していました
IpcChannelってのが使えそうなのでとりあえず試してみます。

262 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 00:38:03 ]
DataGridViewに50列1万件程度のレコードを仮想モードで表示させています。
この状態で、画面をスクロールさせたり、複数セルを選択するたびに、
かなり画面がちらついてしまいます。
この現象を回避する良い方法はないでしょうか?

263 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 00:49:36 ]
>>262

50万セルは大杉
DataGridViewに限らずもうすこし現実的な仕様を考えたほうがいい

普通にそれだけあったら絞るか分割するだろう。
50列も一度に見渡すよりも必要な列だけ見れたほうが扱いやすい事もある。
行の場合も必要な範囲をさくさく見れるほうが便利な事もある。
少なくとも1万行全部を見渡す必要なんて無いと思うが・・・

生データをただ丸ごと全部並んでればいいってもんじゃないだろお。
どうすれば最も扱いやすくなるかを考えなさい。


264 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 10:59:36 ]
UIの仕様に話が変わってるなw

265 名前:デフォルトの名無しさん [2006/08/31(木) 11:04:53 ]
OS:Windows2000
言語:VB.NET(2003)

現在、CSVファイルとPDFファイルをそれぞれ暗号化し
メールで送信後、送信先で復号化して保存する
アプリケーションを作成しています。
そこで、
ttp://dobon.net/vb/dotnet/string/encryptfile.html
を元に、暗号化と復号化機能を作成しました。

CSVファイルの暗号化、復号化は問題なく出来たのですが
PDFファイルを同じように暗号化し、復号化すると
復号化した後のPDFファイルを開くと
「この文章を開くときエラーが発生しました。
ファイルが壊れています。修復できませんでした。」
とメッセージが表示されうまく復号化出来ませんでした。
私なりに調べてみたのですが、どう解決すればよいかわかりませんでした。
どなたか、実装例や参考アドレスなどでも結構などで教えていただけないでしょうか?




266 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:07:55 ]
マルチ乙

267 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:09:32 ]
よくわからんが、それ対象がテキスト以外でも大丈夫なんか?

268 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:45:26 ]
DecryptFileを下のやつに置き換えてないとか

269 名前:デフォルトの名無しさん [2006/08/31(木) 12:27:28 ]
OS:WindowsXP
言語:VB.NET(2003)

外部端子からの映像入力をリアルタイムでフォーム上に表示することって出来ますか?
出来ればやり方教えてください。

270 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 12:29:00 ]
外部端子てなによ。キャプチャカード?

271 名前:デフォルトの名無しさん [2006/08/31(木) 18:36:57 ]
開発言語:VB.NET(Windowsアプリケーション)
    :SPREAD Windows FORM Edition

現在 VB.NETでフォーム上にSPREADを配置した
アプリケーションを開発しています。
そのスプレッド上の特定のセルに
フォーカスが当たった時、喪失した時に、
IMEの「全角あ」「半角ア」の制御を行いたいのですが、
なかなか実現できずに困っています。
どなたか同様の案件を実現された方がいらっしゃれば、
教えていただけないでしょうか?
よろしくお願いします。

272 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 21:08:27 ]
パブリックな標準モジュールとクラスの差異ってばなんですか?????


273 名前:デフォルトの名無しさん [2006/08/31(木) 21:13:13 ]
今からVBを始めようと思っている超初心者です。
今日、PC屋に行ってVisual Basicを買おうと思ってみていたら、
Win2000とXPに対応していないものしか売っていませんでした。
Meに入るVBはどこで入手したらいいのでしょうか・・・・・・

274 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 22:41:19 ]
>>272
たくさんあって書き切れない

>>273
VS買う金があるならOS買ってVB Express Edition使っとけ
いやまじで。

275 名前:273 [2006/09/01(金) 00:26:27 ]
>>274
回答サンクスです
マジですか。。。
確かにVBに限らずいろんなソフトがxp/2000専用になってますもんね・・・(VB体験版もMe入らないみたいだし・・)
ありがとうございます。
xp検討してみます。



276 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 20:27:13 ]
項目内容が同じdatatable1とdatatable2の両方を
datatable3に入れたいのですが可能ですか?


277 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 20:34:24 ]
追記
1列ずつnewとaddで追加する方法以外で
無理ですか…?

278 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:54:01 ]
insert into datatable3 select * from datatable1
insert into datatable3 select * from datatable2

279 名前:278 mailto:sage [2006/09/01(金) 21:55:23 ]
あ、RDBじゃないのか。すまん。

280 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 00:26:12 ]
>>276
最初にDataTable1の複製を作って、そこにDataSet.Mergeメソッド
で2の内容をくっつけるのはどうだろう?

ttp://msdn2.microsoft.com/ja-jp/library/803bh6bc.aspx

281 名前:ぼよん [2006/09/02(土) 02:58:31 ]
アニーメーションGIFを出力する方法ってご存知ありませんか?
標準のライブラリでできるのでしょうか?

282 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 03:21:05 ]
どこに出力すんだ

283 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 06:16:04 ]
VB.NET 2005 で
マルチスレッドWindowsサービスの
プログラムを作成しようとしているのですが
手持ちの本がサービスとスレッド関係の情報が
少ししか載っておりません。

先輩方で良い本をご存知の片がいらっしゃいましたら
教えて頂けませんでしょうか?


284 名前:276 mailto:sage [2006/09/02(土) 12:25:57 ]
>>278 280 有り難う御座いました
思った感じに出来ましたーー


285 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 12:33:37 ]
つーかそれ、VB.NETじゃなくてSQLの質問…



286 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 13:00:22 ]
いえいえ、たぶんVB.NETで間違いないです
変数名 AS datatable

の関連です

親FILEと子FILEがあり
datatableへそれぞれdatatable1とdatatable2に入れてまとめた後、
ビューでソートしたものをdatagridviewに渡すべきか
rowをaddでゴリゴリ追加すべきか、悩むところです
(´Д`)


287 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 13:17:56 ]
アフォの子は退場

288 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 13:59:54 ]
もすかすて、SQLになるんですか…
まだVB.NET2005を触り初めて数日で
正直よくわかってません…orz



289 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 14:03:14 ]
Mergeでいいやん

290 名前:デフォルトの名無しさん [2006/09/03(日) 13:23:31 ]
すいません、質問なんですが。
デバッグモードでプログラムを実行中に無限ループに陥ってしまった場合、
現在どのステートメントを実行しているか知る方法ってありますか?
VBというよりデバッガの質問になってしまっていますが、もしよろしければ
教えていただけないでしょうか。

291 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 13:39:28 ]
妖しそうなコードの手前にブレークポイント置いてステップ実行。

292 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 15:46:44 ]
大文字小文字を区別しないIndexOfって無いんでしょうか・・・
調べ方が悪いのかなorz

293 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 16:26:55 ]
.NET 2.0/VB2005 なら String.IndexOf にオーバーロードがあるが、
それ以前なら Regex.Match でも使ってれば。

294 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:44:35 ]
>>292
string.IndexOf(String, StringComparison)
string.ToLower.IndexOf(string)
string.ToUpper.IndexOf(string)

295 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:47:41 ]
下の2つ、
比較先もToLower()/ToUpper()しなきゃだめじゃね?





296 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 19:18:24 ]
日曜プログラマなんだけどVB.NETはgoto文使えないの?
VBはお気楽に使えるのがいいのにな

297 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 20:31:05 ]
なんでお気楽に書くためにgotoが要るのか分からない。
てか使えるだろ別に。


298 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:03:43 ]
On Error Gotoの替わりはtry catchだよ。

299 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:05:29 ]
そういや普通のgotoって残ってたっけ?

300 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:13:17 ]
プロジェクトウインドウのツールボックスのように、画面の隅にひっこめたり
表示したりするコントロールはなんて名前ですか

301 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:52:42 ]
>>299
残ってる。ループ構文のネストから脱出する場合のGO TOは禁じてではない。

302 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:59:01 ]
>>301
まあそもそも深いところからの脱出が必要なネスト構造自体禁じたいもんではあるな

303 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 22:06:07 ]
VBの場合whileの2階層離脱は出来たりする。
Do While ...
  While ...
    Exit Do
  End Wend
Loop

304 名前:デフォルトの名無しさん [2006/09/03(日) 23:19:35 ]
.NETでCABファイルを作成しWEBサーバに配置。
ASPを実行して、objectタグでクライアントにダウンロード
し実行しようとしています。
ここで、CABはダウンロードされ、DOWNLOADED PROGRAM FILESに
表示はされますが、状態が「不明」となり、レジストリ登録されず
、実行することができません。
.NETモジュールとASPに記述したクラスIDは同期がとれています。

VB6.0で作成したCABは問題なく使用できたのですが・・・
同様の経験のかたいらしたら、ご教授ください。



305 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:25:49 ]
Do-Loopキモイ



306 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 09:18:53 ]
>>302
お前さんは簡単なプログラムしか作ったことが無いのか?
多重ループ構造なんて良くあることだし、
途中で結果が出たら無駄にループせずに脱出したほうがいいに決まってる。

>>303
go to はともかく
Doイベントは、もはや使うべきではない。

>>304
同様の経験もなにも、意味不明。
まずは、どこに問題があるのかを自分で特定しなさい。
特定できたらそこに絞って質問してくれ。
答えようが無い。

307 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 09:34:40 ]
問題も何も、普通1行目の前半の問題である可能性を一番に疑うし。

308 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 09:42:00 ]
> Doイベント
ってw

309 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 09:45:34 ]
> 途中で結果が出たら無駄にループせずに脱出したほうがいいに決まってる。

多重ループはよくあるが、gotoで脱出しなくても綺麗な流れで抜けられるようなロジックにするよな普通。

310 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 09:51:47 ]
まぁ、何だ。>>306みたいな素人程、複雑怪奇なコードを書いて
「難しいプログラムだぜ」と自己満足に浸るもんだしな。

311 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 10:05:39 ]
exit for とかで抜けれるならいいけど多重構造によってはgotoもありじゃね?C言語全盛期じゃあるまいし

「綺麗な流れ」とか、芸術性で物作ってるわけじゃないけどgoto使ったほうが綺麗になる場合もある。
何もかもgotoだと気持ち悪いけどね。


312 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 10:17:02 ]
gotoで見通しが格段に良くなる場合だけだな。使うのは。

313 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 10:24:23 ]
>>306
go to は良くて Do Loop が良くない理由を教えてください

314 名前:デフォルトの名無しさん [2006/09/04(月) 10:50:49 ]
お世話になります。

現在VS2003 .NET Framework1.1にて開発を行っています。
DataGridの行追加が許可されている状態で
一番下の行(全項目が空白の行)をctrl+cでコピーをしようとすると
IndexOutOfRangeExceptionが発生してしまいます。
これは、DataGridの一番下の行に値が入力されるまでは
関連付けられているDataTableに新規行が追加されていない為だと思うんですが、
どうしたらこのエラーを回避する事が出来るのでしょうか?

315 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 14:05:02 ]
DataGridでデータ追加をするってこと自体がヤバいと思う。
単票フォームを別に作って、そこから一件づつ追加するような遷移に
すれば? 入力データのエラーチェックもその場で可能だし。

Gridは一覧表示とまとめて削除くらいに特化して、追加編集は別フォ
ームにて確認しながら行うのがいいかと。



316 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 19:22:51 ]
>>307−310
ヴ ォ ケ

317 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 20:29:17 ]
見事な敗北宣言だな 実に美しい

318 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 20:31:25 ]
何か叫んで走って逃げてったな。>>316

319 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 02:30:21 ]
ガキばっかりだな。
勝敗競うスレでもなければ、技術自慢するスレでもない。
おとなしくスルーしろよ。


320 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 06:42:31 ]
モマエモナー

321 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 10:21:50 ]
オマエモナー(=゚ω゚)つ)゚∀゚)グァ

322 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 14:20:56 ]
HashtableのValueにデータ型(System.Int16やSystem.Object)を入れたいんだけど、入れる方法ってあります?

323 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 14:27:54 ]
(゚д゚)ハァ?

324 名前:322 mailto:sage [2006/09/05(火) 15:34:11 ]
判りにくかったようなので、再度書きます
Dim hash As Hashtable
hash.Add(1, System.Int64)
↑のような事をやりたいのですが、コンパイルエラーになります。
System.Int64を入れるやり方ってありますか?

325 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 15:55:57 ]
GetType(System.Int64)



326 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 22:15:43 ]
それが分からんやつにTypeを入れる方法を教えても
Typeの使い方が分からんから、どうにもならないよ。


327 名前:178 mailto:sage [2006/09/06(水) 08:25:15 ]
Datasetで同じスキーマ情報のdatatableにデータをコピーする
場合ってどうするんですか?
dim A as dataset.mmtable
dim B as dataset.mmtable

Adapter.Fill(A)


B=A ←こんなことがしたい。


328 名前:デフォルトの名無しさん mailto:sage [2006/09/06(水) 08:54:26 ]
>>327
ttp://msdn2.microsoft.com/ja-JP/library/system.data.datatable.copy.aspx

329 名前:322 mailto:sage [2006/09/06(水) 09:21:47 ]
>>325
出来ました、ありがとう御座います

330 名前:デフォルトの名無しさん [2006/09/06(水) 09:38:03 ]
VS2003 .NET Framework1.1で開発しています。

PictureBoxにTIFファイルを表示させるプログラムを開発しています。
TIFファイルには1つのファイルに複数の画像を格納できるので、
そのページ数と表示倍率、画像の回転率を指定し、画像を表示させています。
テストを行っている時に気づいたのですが、
2ページ目以降で倍率100%、回転率180度の時に
なぜか1ページ目の画像が表示されてしまいます。
表示倍率や回転率を変えると
ちゃんと指定したページの画像が表示されます。
これは一体なぜなのでしょうか?

331 名前:322 mailto:sage [2006/09/06(水) 09:53:00 ]
Dim hash As new Hashtable
dim object1 as object
dim object2 as object
hash.Add(1, GetType( System.Int64 ) ' ←ここはこれで行けました。
object2 = CType( object1 , hash(1) ) ' ←ここがいけません。
object2 = CType( object1 , GetType( hash(1) ) ) ' ←これもだめです。

Ctypeの第2引数にHashtableに入っているTypeを入れたいのですが、どうすればいいですか?

332 名前:330 [2006/09/06(水) 10:05:40 ]
以下がそのプログラムの抜粋です。
長いので分割します。

Private Sub pctPreview_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pctPreview.Paint
Dim g As Graphics
Dim img As Image
Dim fd As FrameDimension

Try

sngZoomNum = intZoomNum / 100 'ここで倍率指定

g = e.Graphics

g.InterpolationMode = _
System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic

img = Image.FromFile(strFilePath)

'FrameDimensionを取得
fd = New FrameDimension(img.FrameDimensionsList(0))

'フレームを選択
img.SelectActiveFrame(fd, intPageNum) 'ここでページ数指定

333 名前:330 [2006/09/06(水) 10:09:34 ]
'画像を表示(回転率ごとに変更)
Select Case sngRotate
Case 0
sender.Size = New System.Drawing.Size(sngZoomNum * img.Width, sngZoomNum * img.Height)
Case 90
sender.Size = New System.Drawing.Size(sngZoomNum * img.Height, sngZoomNum * img.Width)
g.TranslateTransform(sngZoomNum * img.Height, 0)
Case 180
sender.Size = New System.Drawing.Size(sngZoomNum * img.Width, sngZoomNum * img.Height)
g.TranslateTransform(sngZoomNum * img.Width, sngZoomNum * img.Height)
Case 270
sender.Size = New System.Drawing.Size(sngZoomNum * img.Height, sngZoomNum * img.Width)
g.TranslateTransform(0, sngZoomNum * img.Width)
End Select

'画像の傾き指定
g.RotateTransform(sngRotate)
g.DrawImage(img, 0, 0, sngZoomNum * img.Width, sngZoomNum * img.Height)

img.Dispose()

Catch ex As Exception
throw ex
End Try
End Sub

以上です。
どうぞよろしくお願いします。

334 名前:デフォルトの名無しさん mailto:sage [2006/09/06(水) 10:39:39 ]
>>331
無理

335 名前:デフォルトの名無しさん mailto:sage [2006/09/06(水) 12:09:24 ]
>>330
VB2005だけどやってみたら確かにそうなった。
原因はわからない(GDI+のバグ?)けどDrawImageするときに

Dim img2 As Bitmap = New Bitmap(img)
g.DrawImage(img2, 0, 0, sngZoomNum * img.Width, sngZoomNum * img.Height)
img2.Dispose()

としたらちゃんと描画されたので試してみて。



336 名前:330 [2006/09/06(水) 13:13:41 ]
>>335
どうもありがとうございます。

教えていただいたコードを実装してみたところ、
正常に動作する事を確認しました。
自分もGDI+のバグかと思ったんですが、
それらしい記述が見当たらずに困っていました。

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

337 名前:デフォルトの名無しさん mailto:sage [2006/09/06(水) 13:19:09 ]
ListViewでヘッダをクリックでソートする事は許可しつつ、ヘッダをドラッグでサイズ変更はされたくないのですが、
これって出来ますか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef