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


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

VB.NET質問スレ(Part26)



1 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:07:34 ]
前スレ

VB.NET質問スレ(Part25)
pc11.2ch.net/test/read.cgi/tech/1203650042/

テンプレは2〜5くらいまでの間にある予定

74 名前:デフォルトの名無しさん [2008/06/09(月) 02:07:50 ]
タブコントロールについてWindows フォーム デザイナで自動で生成されるコードの
下の部分なのですが、

Me.TabControl1.Controls.Add(Me.TabPage1)
Me.TabControl1.Controls.Add(Me.TabPage2)
Me.TabControl1.Controls.Add(Me.TabPage3)
Me.TabControl1.Controls.Add(Me.TabPage4)

だったものが、いつの間にか

Me.TabControl1.Controls.Add(Me.TabPage1)
Me.TabControl1.Controls.Add(Me.TabPage3)
Me.TabControl1.Controls.Add(Me.TabPage2)
Me.TabControl1.Controls.Add(Me.TabPage4)

に変わってしまいます。何が原因でしょうか?教えて頂けると助かります。

75 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:52:24 ]
フォームを最大化したまま、画面サイズを変更可能にしたいのですが
ControlBox = Falseにしても、最大化が解除できてしまいます。
画面サイズを固定にする方法はどうすればよいのでしょうか?
ちなみにシステム仕様の関係でFormBorderStyle = None は使えません。

76 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:08:38 ]
画面サイズを固定したいのか変更可にしたいのかどっちだ?


77 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:53:18 ]
途中でディスプレーの解像度を変えたいのではないかとエスパーしてみる

78 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:01:11 ]
>>74
重なり順じゃね?

79 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:35:11 ]
CDドライブのトレイを開く方法で
MciSendString("Set CDAudio Door Open Wait", Nothing, 0, 0)
だけだと複数のCDドライブがあったときに最初のドライブしか開きません。
ドライブを指定してトレイを開く方法はないでしょうか

80 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:11:04 ]
質問させてください。

VB2005でハードディスクのAAMとAPMを設定する
プログラムを作りたいのですが、参考になるような
サイトなどご存知の方いましたら、教えてください。

よろしくおねがいします。

81 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:39:34 ]
>>79
あるよ

82 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:39:06 ]
formのloadイベントが、

frm = new frm
frm.text = "たいとる"
frm.visible = false
frm.visible = true <ここで発生します

要するに画面表示を行うタイミングで発生しています。
newのタイミング、又は、画面表示を行わずに任意のタイミングでLoadイベントを発生させるにはどうしたらいいですか



83 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:53:49 ]
コンストラクタに書く

84 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:00:23 ]
処理を移せばまあ、似た様なことにはなると思います。
ただloadを任意に呼べたほうが全体的にやり易いんですが、無理ですかね

85 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:03:30 ]
間違えた。

private withevent frm as form1

で宣言してて宣言してるところで
frmのloadイベントに処理を書きたいので
コンストラクタではいろいろ無理があるのでした

86 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:06:09 ]
何がしたいのか分からない
form1に手を入れられるんだったらコンストラクタに書くなり
初期化用のメソッドを定義するなりすればいい
form1に手を入れられないんだったら,表示する前にfrm.Size=…とか外から弄れば同じこと

87 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:19:01 ]
したいことは
「画面表示を行わずに任意のタイミングでLoadイベントを発生させる」
です。
どういう方法がありますか



88 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:27:57 ]
継承して基底クラスのOnLoadを呼ぶしかない
表示される直前に発生するのがLoadイベントなんだから関係ない時に発生させるのはおかしい

89 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:56:23 ]
>>79
result = mciSendString( "open " & _Drv & " type cdaudio alias cdrom", space(255), 255, 0)
result = mciSendString( "stop cdrom", space(255), 255, 0)
result = mciSendString( "set cdrom door open", space(255), 255, 0)
result = mciSendString( "close cdrom", space(255), 255, 0)

90 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:59:16 ]
ああ、nothing,0でもいいのか…

91 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:07:27 ]
質問です。

文字列のバイト数を調べるということはできますか?
いくつかソースや例はあったのですがバージョンが違うらしくて途方にくれてます・・・。

92 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:09:25 ]
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/010str2byte/str2byte.html



93 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:15:58 ]
お早い回答ありがとうございます・・・っ

どうVBでやればいいのかさっぱりですが
これをヒントに格闘再開してみます・・・。

94 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 06:17:30 ]
>>81
それ面白いの?

95 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 11:07:00 ]
>>94
というより、質問の仕方が悪いことに突っ込んでるんだろ。
"ありますか?"と聞かれれば返答はbool型で返ってくるもんだよ。
プログラミングの前に日本語をしっかり習得するべきだと思う。

96 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 11:20:35 ]
質問です。

vb.netと他の言語(C#)のファイルをひとつのプロジェクトに混在させることはできないのでしょうか?
たとえば、vb.netで作ったクラスをc#側から参照・呼び出しするといったようなことです。
調べてみても分からなくて・・よろしくお願いいたします

97 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 11:52:14 ]
>>96
ビルドしてできたDLLなりEXEなりを他のプロジェクトの参照に追加すれば

98 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 12:03:37 ]
>>95
よくいる捻くれプログラマだな。

99 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 12:05:49 ]
混在させる理由って他人が作ったライブラリを組み込むとかその程度だろ
自分で作って混在は捻くれてるな

100 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 12:24:53 ]
>>96
ひとつのプロジェクトではなくひとつのソリューションということなら
Visual StudioのStandard Edtion以上を購入する。
Expressでやりたいなら>>97のとおり。
EXEなりDLLをひとつにしたいなら裏技的というか試練の道になる。あきらめたほうが良い。

101 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 13:24:25 ]
expressでも出来るだろ。
VWDだけは無理だが。


102 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:59:55 ]
基本的な事を質問させて下さい。

Dim url As String = "aaa.jp"
System.Diagnostics.Process.Start(url)

のように一回一回変数に代入するのと、

System.Diagnostics.Process.Start("aaa.jp")

のようにソースを短くするのでは、
どちらが動作が速いのでしょうか。
また、二つ以上の引数を要求するメソッド等の場合では変わったりするのでしょうか?



103 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:19:03 ]
誤差の範囲内
その二つならどうせ最終的には同じバイナリが実行される

104 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:42:37 ]
>>102
どっちのコードでコンパイルしてもコンパイラが最適化してくれるから、
最終的なEXEの中身は同じになるはず。

105 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 16:51:20 ]
何でもこんな些細なことを気にする人が多いの?


106 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:34:06 ]
>>95
それってただの無能さをひけらかしてるだけだよw
有能なら相手が何を知りたがっているか考えて
そこから先も答える

107 名前:デフォルトの名無しさん [2008/06/11(水) 19:30:17 ]
VB6で書かれたインターフェース部分のコードから、C++で書かれたDLLを読み込んで利用していたものを
VB.Netで読み込みなおして再利用したいと思っています。

このDLL、COMに非対応の様なのですが、書き直しなしで読み込みってできるでしょうか?
出来ないならある程度楽そうな方法としては何が思いつくでしょうか?

.Net環境歴短いので、初心者質問申し訳ございません。


108 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:12:47 ]
>>107
VB6でDeclareを使って呼び出していたDLLをVB.NETで使いたいということでいいのかな?
VB.NETにもほぼ同等のDeclareがあるからこれを使う。
違いもありおそらくVB側のコードは手を入れる必要がある。
DLL側の変更はいらないはず。
プラットフォーム呼び出しやP/Invokeでぐぐったらいい。


109 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:39:55 ]
>>106
バカはお前w
分かってるけど教育的指導ってやつなのに

110 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:51:05 ]
日本語遊びしたいならよそ池。

111 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:26:14 ]
教育的指導とかこのスレに必要なくね
ここどこだと思ってんだよwww


112 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:56:48 ]
すみません、また質問させて下さい。
Clickのイベントで、複数のハンドルがある時に、
Clickハンドルを呼び出したオブジェクトのTagプロパティを参照したいのですが、
皆さんならどのような方法を用いますでしょうか。
どうかご口授下さい。



113 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:57:48 ]
sender引数をControlにキャストする

114 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:06:16 ]
>>112
何を言ってんのか分からない

115 名前:107 [2008/06/11(水) 23:07:55 ]
>> 108
どうも、ありがとうございます
これでいろいろと目処が立ちました。


116 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:10:05 ]
>>112
教育的指導も必要かと思った

117 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:53:45 ]
>>114
フォームにボタンを3つ置いて、そのボタン3つのクリックイベントを同じイベントで処理するようにしています。
そのクリックイベントで、押されたボタンのTagプロパティを参照したり、ForeColorを変更したりしたいのです。

>>113
Me.Text = CType(sender, Control).Tag
のような事でしょうか?

118 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 11:11:52 ]
>>117
Yes

119 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 11:59:59 ]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler Button1.Click, New EventHandler(AddressOf Me.ButtonClick)
AddHandler Button2.Click, New EventHandler(AddressOf Me.ButtonClick)
AddHandler Button3.Click, New EventHandler(AddressOf Me.ButtonClick)
End Sub

Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs)
Dim A As String
AA = CType(sender, Control).Text
Me.Text = AA
End Sub

のようにしているのですが、エラーが起きてしまいます。
何が原因なのでしょうか?

120 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:03:11 ]
>>119
× AA = CType(sender, Control).Text
○ AA = Ctype(sender, Button).Text

ちっとは頭使おうな。ControlのメンバにTextというものはないとかどうとか言われてるんだろ?
元がボタンなんだからボタンにキャストしる。

121 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:03:16 ]
エラーに書かれてるとおりだと思うよ

122 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:03:47 ]
>>120
Control.Text は存在してるよ



123 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:07:04 ]
>>122
適当なこと言ってスマナカッタ。
ちっと検証してみるわ

124 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:15:41 ]
俺の環境ではControlのままでも問題なく動作したな・・・
というかButton1,2,3の型はなんだ?

×Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs)
○Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)

これで問題なさそうだけど


125 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:14:25 ]
>>124
ありがとうございます。
思う通りにできました。
イベントを作る時に一つ下のイベントから少しコピーしたので、その時に間違った引数になってしまったみたいです。
お騒がせして申し訳ありませんでした。

126 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:58:02 ]
87 名前:男です女です名無しです[] 投稿日:2008/06/12(木) 11:16:32 ID:K9IgFOCw

この歌、荻野目洋子の 「六本木純情派」 とだいぶ似ている
気がするのは俺だけ?


88 名前:男です女です名無しです[] 投稿日:2008/06/12(木) 11:21:47 ID:K9IgFOCw

YouTube - 荻野目洋子 六本木純情派  1987.12
jp.youtube.com/watch?v=FivSOEmkKUE

89 名前:男です女です名無しです[] 投稿日:2008/06/12(木) 11:25:49 ID:K9IgFOCw

YouTube - 鼠先輩 「六本木〜GIROPPON〜・クラブ編」
jp.youtube.com/watch?v=_s6edMfX75I&feature=related

やっぱり似ている。

127 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:47:07 ]

単一インスタンスのアプリケーションを作成するにチェックし、
スタートフォームを最小化、タスクバー表示なしにして、起動してるんですが
(意図通りにスタートフォームは非表示で起動されています。タスクトレイ常駐させています)

起動後、もう一度exeをクリックすると、スタートフォームが表示されてしまいます。<A

どうしたらAを起きないようにできますか?

128 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:05:32 ]
>>127
> どうしたらAを起きないようにできますか?
どういう動きにしたいの[
もう一度押した時に二番目以降も同様に非表示で起動したいの[
それとも多重起動はさせないようにしたいの[

多重起動防止ならMutex辺りを調べると幸せになれるかも。

129 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 12:03:18 ]
DMI画面でWindowsアプリを作成しているのですが、問題が発生してしまいまして…
どなたか解る方がおられましたらご教授お願いします。

問題点:DMIの親画面の適当な場所にボタンを貼り付ける。
    子画面を作成、実行し、子画面を呼び出すと、なぜかボタンだけが子画面の上にきてしまう。
   なぜこういう問題が起こるのでしょうか??



130 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 18:44:29 ]
>>128

Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs) _
Handles Me.StartupNextInstance
e.BringToForeground = False

これで表示されなくなりました。

131 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 20:48:37 ]
>>95
方法を知りたくてありますか?って聞いてる人間に対して
あるよ。なんて答えたら実生活なら池沼扱いだぞ

132 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 20:55:17 ]
俗にいうKYですな



133 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 20:56:59 ]
>>131
2ちゃんで「実生活なら」とか言ってる時点でお前も池沼

134 名前:デフォルトの名無しさん [2008/06/14(土) 01:01:53 ]
asp厨房からやっとvb.netに昇進できます
VBとほとんど同じだろと思っていたら、難しいですね、ぜんぜん違う
継承って何だ?宣言だけじゃだめなのかよ!状態
変数宣言したのに、なんか変数の値が知らない間に変わってるし
やさしい本ないすか?

135 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:01:19 ]
String型の1という数字を使ってコントロールの番号を指定するにはどうやったら良いですか?

例えば
TextBox1に 3 と入力してある場合に

PictureBox3.Image = ("******")

ということをやりたいです。宜しくお願いします。

136 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:10:18 ]
>>134
aspやったことないけど、そのレベルならVB中学校から始めた方が良い。
VB関連で2000円ぐらいで買える本よりはずうーっと親切だから。
一通り基礎が終わったらリファレンス本一冊あれば十分。

>>135
下三行の意味がわからない。

137 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:16:36 ]
select文でいいんじゃね?

138 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:38:56 ]
レスありがとうございます。

>>136

わかりにくくてすみません。

使い方のような説明をさせていただきます。
例えば、Label1に画像のファイル名が書いてあって、
そのファイルを1〜10まであるピクチャーボックスのどれに表示するかを
テキストボックス1に数字を入力して1ならPictureBox1に2ならPictureBox2に
という感じで表示させたいです。


139 名前:138 mailto:sage [2008/06/14(土) 04:39:22 ]
実際はそういう用途ではなくて、PictureBoxどうしのD&Dで画像を入れ替えたいのですが、
表示した手段があっていないのか、表示がされているのに
MouseDownイベント内の
PictureBox1.DoDragDrop(PictureBox1.Image, DragDropEffects.All)
を実行すると
Object reference not set to an instance of an object.というエラーが出てしまうため、
PictureBox1.DoDragDrop("1", DragDropEffects.All)
というようにして、どこの画像をドラッグしてきたのかということを1という数字で
渡すようにしました。

PictureBox1.DoDragDrop(PictureBox1, DragDropEffects.All)
という方法が出来れば良いのですが、そうすると
PictureBox2_DragEnterイベント内の
 If e.Data.GetDataPresent(DataFormats.*****) Then
e.Effect = DragDropEffects.Copy

の******の部分の書き方が分からないため使えないでいます。


>>137
Selectですとピクチャーボックスが沢山ある場合にCaseの記述がその数だけ
必要になってしまうので、簡単にしたいです。
(プロシージャをコピペで増やす際に中身を書き換えなくて済むようにしたいです。

140 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:01:14 ]
>>135
FAQだ。過去スレ見れば出てくると思うが、VB6にあったその機能はなくなった。
PictureBoxの配列を自分で作って必要なものを放り込め。

141 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:06:43 ]
System.Reflection

142 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:59:36 ]
Form.Controls("pictureBox1") という方法もあるが>>140のをすすめる。



143 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 06:16:47 ]
レスありがとうございます。
今回は配列の方法でやることにします。
ありがとうございました。

144 名前:134 [2008/06/14(土) 22:04:45 ]
>>136
ありがとうございます!
今見てますが、なかなか良さそうです
今の僕にピッタリかも

145 名前:デフォルトの名無しさん [2008/06/15(日) 02:03:26 ]
またお助けください。
Private Sub PictureBox2_DragDrop(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop
のイベントの中で

PictureBox2の2という数字を文字列として取得したいのですが、どうすれば良いですか?


146 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 08:36:36 ]
"2"

147 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:17:49 ]
>>145
「2という数字」の意味が分からんがエスパーすると
sender.name.substring(10)
って意味か?

148 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 12:51:24 ]
それなら
sender.ToString.substring(10)
じゃないか?

149 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:49:20 ]
レスありがとうございます。
sender.ToString.substring(10) でできました。!
分かりにくい説明を察して頂きありがとうございました。

150 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:12:43 ]
作業管理表のプログラムを作成しています。

その中で、作業内容の登録時に
作業開始予定日が作業終了予定日より後の日付になっていたら
作業登録ボタンを押下後にエラーメッセージを表示させたいです。

調べてみたんですが、それらしい単語も分からないのでまったくヒットせず・・・。

このようなチェックに名前ってあるんでしょうか?
良ければサンプルコードを教えてもらえるとありがたいです。

151 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:53:52 ]
>>150
悪いけどググったら出る内容はなるべくググって欲しい
ttp://www.google.com/search?hl=ja&lr=&ie=UTF-8&oe=UTF-8&num=50&q=VB.NET+%E6%97%A5%E4%BB%98+%E6%AF%94%E8%BC%83

152 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:22:50 ]
>>151
150じゃないけど、ありがとう。



153 名前:VB始めて1カ月 [2008/06/16(月) 16:43:23 ]
文字列の最後にくっついているアスキーコードで 00 の文字を trimEnd で取り除きたい。
C言語の \0 はVBではどう表現するのか教えてちょうだい。

154 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:10:35 ]
Chr関数

155 名前:VB始めて1カ月 [2008/06/16(月) 17:23:04 ]
>>154
ありがとう
うまくいった

156 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:46:20 ]
windowsのプロダクトキーってどうやって取得しますか

157 名前:デフォルトの名無しさん [2008/06/17(火) 02:54:50 ]
画像ファイルを右クリックした時にメニューに表示される
「編集」を選んだときに起動されるアプリのパス名を取得したいのですが、
教えて欲しいです。

自分の場合はmspaintが設定されているので、レジストリエディタで
%SystemRoot%\system32\mspaint.exe
を検索してみたところ、いくつかヒットはするのですが、どれのレジストリに
メニューの「編集」に設定されているものなのか分かりませんでした。

画像ファイルのダブルクリックは「Windows 画像とFAXビューア」というのが
設定されているので、Process.Startを使うとビューアが起動されてしまい
mspaintが出てくれません。お助け下さい。


158 名前:157 mailto:sage [2008/06/17(火) 03:44:53 ]
ここの場所から取得してみたのですが、大丈夫でしょうか?
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\image\shell\edit\command


159 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:03:20 ]
VB.NET初心者なのです。
FormAから呼び出しているFormBを閉じた際に
FormAを閉じて(FormBで変更した内容のデータをFormAに反映してから)
FormAを再ロードしたいのですが

Private Sub FormB_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed

Dim a As New FormA

a.Close()

a.show()

とすると破棄されたオブジェクトにアクセスできません。
というエラーが出ます。
どうしたら回避できるでしょうか?
よろしくお願いします。

160 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:04:26 ]
閉じるんじゃなくて非表示にする

161 名前:159 mailto:sage [2008/06/17(火) 12:36:29 ]
>>160
度々すみません。

a.hide()もしくはa.visible = False後に
a.showとすると
FormAが2重に開かれてしまうのですが…

162 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:41:30 ]
そんなむちゃなでたらめなコードがまともに動くかいな



163 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:44:59 ]
Newって言葉和訳できる?

164 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:15:12 ]
出来ないからいるんだろ?

165 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 15:03:06 ]
Private Sub FormB_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed

FormA.Hide()

'FormBで変更した内容をFormAに反映させる記述をこのへんに

FormA.Show()

End Sub



166 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:35:57 ]
すみませんが、ご教授お願いいたします。
フォームAからフォームBを呼び出しますが、
既にフォームBが開かれていた場合、二重に呼び出さないようにするための条件式を教えていただけますか?


167 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:40:45 ]
単一のFormBインスタンス使いまわせば十分じゃね?

168 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:43:58 ]
>>166
普通にShowやShowDialogを使っていれば二重に呼び出す事は無いと思うんだけどな。
もし二重になってしまう場合でも、呼び出す際に変数を使って条件分岐させればいいと思うし。
どういう場合の事を言っているの?

169 名前:166 mailto:sage [2008/06/17(火) 16:51:04 ]
すみません、言葉が足りませんでした。
ちょっと長くなりますが、以下詳細です。
----------------
フォームA(メインフォーム)
フォームB(サブフォーム)
フォームC(サブフォーム)
があります。

(1)フォームAからフォームBをモーダルフォームとして開きます。
(2)フォームB・Cにはラジオボタンが配置されており、ラジオボタンのチェックの移動で
   フォームB・Cを行き来できるようにします。
   (その際、もう1つのフォームは閉じる)
(3)フォームB・Cともに「終了」ボタンが配置されており、ボタンを選択することで、
   自フォームを閉じ、フォームAに遷移します。   
----------------

長くなるので1回区切ります。

170 名前:166 mailto:sage [2008/06/17(火) 16:52:50 ]
以下、ソースです。

<フォームA>

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

FormB.ShowDialog(Me)
FormB.Dispose()

End Sub

171 名前:166 mailto:sage [2008/06/17(火) 16:55:23 ]
<フォームB>

Private Sub FormB_Show(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Shown

Me.RadioButton1.Checked = True
Me.RadioButton2.Checked = False
FormC.RadioButton1.Checked = False
FormC.RadioButton2.Checked = True

End Sub


Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged

Me.RadioButton1.Checked = True
Me.Hide()
FormC.ShowDialog(FormA)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

FormA.Show()
FormC.Close()
Me.Close()

End Sub

172 名前:166 mailto:sage [2008/06/17(火) 16:57:03 ]
<フォームC>

Private Sub FormC_Show(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Shown

Me.RadioButton1.Checked = False
Me.RadioButton2.Checked = True

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

FormB.Close()
Me.Close()
FormA.Show()

End Sub

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged

Me.Hide()
FormB.Show(RollingPlan)

End Sub



173 名前:166 mailto:sage [2008/06/17(火) 17:02:09 ]
長文、すみませんでした。

このソースの場合、フォームA → フォームB → フォームC
と遷移し、フォームCのボタン2をクリックして閉じても、
もう1つフォームCが現れてしまいます。。。

恐らくフォームBのラジオボタン2のチェックを行った際に、
ラジオボタンを元の状態に戻すための一文、

Me.RadioButton1.Checked = True

を入れているために、この命令実行後にもう1つフォームが開いているのかなと推測します。
ただこの一文がないと、

フォームB → フォームC → フォームB
と戻ってきた場合に、ラジオボタンが最初の状態に戻っていないため、
やむなく入れている次第です。

そのため、フォームBからCを開く際に、既にフォームCが開いていた場合に
二重に開かないように制御出来れば良いと考え、今回の質問に至りました。

174 名前:デフォルトの名無しさん [2008/06/17(火) 17:36:52 ]
作成したダイアログベースのプログラムでファイル選択機能が必要になりました。
最初にOpenFileDialogクラス呼び出しでファイル選択ダイアログを出したのですが
ダサい、使いにくいと教授が言ってきたので、エクスプローラーの様なファイル選択を行うためのコントロールを埋め込みたいのですが
その様なものがどこかに(できればフリーで)公開されていないでしょうか?






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

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

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