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


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

VB.NET質問スレ (Part12)



1 名前:前スレ972 [2005/07/17(日) 20:33:58 ]
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part11)
pc8.2ch.net/test/read.cgi/tech/1114217190/
VB.NET質問スレ (Part10)
pc8.2ch.net/test/read.cgi/tech/1109343613/
VB.NET質問スレ (Part9)
pc5.2ch.net/test/read.cgi/tech/1106577850/
VB.NET質問スレ (Part8)
pc5.2ch.net/test/read.cgi/tech/1102512868/
VB.NET質問スレ (Part7)
pc5.2ch.net/test/read.cgi/tech/1096683017/
VB.NET質問スレ (Part6)
pc5.2ch.net/test/read.cgi/tech/1088812165/
VB.NET質問スレ (Part5)
pc5.2ch.net/test/read.cgi/tech/1078134703/
VB.NET質問スレ (Part4)
pc2.2ch.net/test/read.cgi/tech/1065269043/
【老若】VB.net質問スレ【男女】 (Part3)
pc5.2ch.net/tech/kako/1056/10562/1056281084.html
【老若】VB.net質問スレ【男女】 (Part2)
pc2.2ch.net/tech/kako/1043/10436/1043629429.html
【老若】VB.net質問スレ【男女】
pc2.2ch.net/tech/kako/1025/10258/1025848458.html

136 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 09:25:05 ]
>>134
CustomerOrdersというデータセットを作るということだよ。

137 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 10:00:15 ]
test

138 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 10:04:24 ]
test

139 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 16:29:16 ]
VB.NET ASP のTextBoxの改行消えてします。


この様な現象が発生して困っています。

画面にTextBox(MultiLine)とButtonを配置する。


実行してTextBoxに
[改行]
[改行]
あいうえお

と入力してButtonを押すと。
[改行]
あいうえお

となって、改行が消えてしまいます。Buttonには、何も処理を入れていません。


解決方法がないでしょうか?

.Net 2003
FrameWork1.3



140 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 20:29:59 ]
やっぱり1.3はつっこむところか

141 名前:デフォルトの名無しさん [2005/08/01(月) 20:30:32 ]
複数人で開発するプロジェクトの環境構築で質問です。
Visual Source Safe は使ってはいけないと言われています。

VB6では画面単位でプロジェクトを作成し、子画面のフォームを
別フォルダの別プロジェクトから追加して、画面単位でexeを
作成していました。フォルダ構成としては
Common
メニュー
画面1
画面2
というようにして、それぞれのフォルダが別々のプロジェクトです。

VB.NETでも同様なことはできるでしょうか?
新たにソリューションなる単位ができて、ちょっと厄介だなと
感じています。

VB6でいうところの *.bas も簡単に別ソリューションからインクルード
できなくなっているようにも感じたのですが。



142 名前:デフォルトの名無しさん [2005/08/01(月) 21:08:29 ]
出来る。
プロジェクトへの追加のデフォルトはコピーなので、開くボタンの右の小さい奴からリンクの追加を選択。

あと、回答になってるかわからんが、DLLの作成をして参照したほうがスマート。
クラスでもフォーム(・・これもクラス)もDLLでコンパイルして、使う側で参照すればいい。



143 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 21:18:05 ]
そしてできあがる相互参照。……できあがってない。

144 名前:デフォルトの名無しさん [2005/08/01(月) 21:19:41 ]
>>142
本日はこの点ではまっていたため、少し安心しました。
ありがとうございました。
また明日試してみたいと思います。

時間があればDLLも検討してみたいですが、あまり
使ったことがないので後々責任問題になるとちょっと怖い。。





145 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 21:23:22 ]
>>140
1.3探しちゃいました

146 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 22:07:38 ]
>>144
DLLいっても、今までのActiveXDLLとかと違って、普通のライブラリだ。
この部分の仕様は凄くシンプルになって、それこそ抵抗なく入れるから使ってみたほうがいいよ。
構える必要全くなし。

147 名前:デフォルトの名無しさん [2005/08/03(水) 19:41:21 ]
Win2000 SP4で開発しています。

メモ帳を起動しようとして

Shell("notepad.exe", AppWinStyle.NormalFocus, True)

としたのですが、プロセスは起動するんですが、メモ帳が表示されなくて困ってます。
引数に適当なファイルを渡しても同様です。
何か他に設定が必要なのでしょうか。



148 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 19:50:31 ]
>>147
画面の領域外に表示されてるんでない?
マイナス座標とか

149 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 19:50:48 ]
System.Diagnostics名前空間のProcessクラス使えー。

150 名前:146 [2005/08/03(水) 22:53:37 ]
>147

そんなことあるんですか
画面の領域内に表示するにはどうすればよいのでしょう

>149

プロセスが終了するまで待たねばならないので、何とかShell関数でやりたいのです。

151 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 23:01:18 ]
>>150
ProcessクラスにはWaitForExitメソッドなんてのもある。

152 名前:デフォルトの名無しさん [2005/08/04(木) 00:23:35 ]
単精度浮動小数点数型 (Single) の変数は、IEEE 32 ビット (4 バイト) の浮動小数点数の変数です。
負の値は -3.402823E38 〜 -1.401298E-45、正の値は 1.401298E-45 〜 3.402823E38 の範囲の値をとります。
単精度浮動小数点数型の型宣言文字はエクスクラメーションマーク (!) です。

上記のうち
1.401298E-45 〜 3.402823E38 は何を示しているのでしょうか。

Eとは自然対数の底であり、2.171828...
ということらしいですが、これだけでは十分理解できませんでした。
どなかたご教授下さい。

153 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 00:32:31 ]
この場合のEは自然対数とは関係ない(自然対数の底は通常、小文字eで表す)。
これは指数表記。
例えば 1.3E2 なら、1.3 * (10^2) = 1.3 * (10 * 10)を表す。
負の指数は、正の指数の逆数。 1.32E-2 = 1.32 * (1 / (10^2)) = 1.32 * 0.01

154 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 00:33:43 ]
ちなみに
Dim a As Single = 1.3E-4
なんて記述は有効だから試してみると良い。



155 名前:デフォルトの名無しさん [2005/08/04(木) 00:48:17 ]
>>153-154
感謝感激。
これから試して見ます。

156 名前:最凶VB厨房 mailto:sage [2005/08/04(木) 01:23:54 ]
自然対数の底
2.7182818284590452354

157 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 12:43:17 ]
まあ他に優先的に覚えなきゃいけないことが増えたからしょうがないんだけど
こういう昔はどんな入門書にも書いてあったことが、
今の時代には入門書には全然解説されてなく、かといって中上級者向けの本や
MSDNでは知ってて当然の前提として書かれているわけで、今の若い人はそういう意味じゃ不幸だな。

158 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 14:51:52 ]
pc.watch.impress.co.jp/docs/2005/0804/mobile301.htm

マイクロソフトOBでWindows 1.xの時代からWindowsの開発に関わっていた方(2000年に退職)から
コメントをいただいた。引用させていただくと、

“私の住むシアトル近辺のマイクロソフトOBの間では、2004年の前半に「Longhornがキャンセルに
なったらしい」という噂がさかんに交わされ、その後次々と「OFSはLonghornとは別」、
「Managed APIは採用しない」とのアナウンスがありました。結局の所、もともと計画していた
Longhorn は出せなくなったけれども、いまさらキャンセルになったとは言えないので、出せるもの
だけかき集めてLonghornと呼ぶことにした、という見方がこちらでは一般的です”

159 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 12:31:54 ]
ディスクの空き容量調べる場合はどうすればいいですか?

160 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 12:39:35 ]
マネージドで書くならWMIを使う
ttp://homepage3.nifty.com/midori_no_bike/CS/filesys.html#181

CreateObjectでFileSystemObjectを作ってGetDrive/FreeSpaceを使う
Win32APIのGetDiskFreeSpaceExを使う
シェル関数のSHGetDiskFreeSpaceを使う

161 名前:159 mailto:sage [2005/08/05(金) 21:27:50 ]
>160
なるほど、ありがとうございました。


162 名前:デフォルトの名無しさん [2005/08/05(金) 21:40:15 BE:347117388- ]
クリレポ.NETについて

通常は帳票を印字するときに

No. | 県名(ヘッダ)
1, 東京都
2, 神奈川県
3, 千葉県
4, 埼玉県
5, 静岡県
6, 長野県

なぐあいに↓方向に描画するんだけど
これを横にして

ヘッダ 詳細
No.  1,    2,       3,    4,     5,    6,
県名 東京都 神奈川県 千葉県 埼玉県 静岡県 長野県

のように表示させたい
横方向に描画する方法まではわかったんだけど
ヘッダの部分(No,県名)を詳細の左側に持ってくる方法がわからない

解決方法をご存じだったらご教示いただきたい




163 名前:デフォルトの名無しさん [2005/08/07(日) 03:09:16 ]
VB.NETから「VS.NETで作られたマネージドC++のdll」を利用したいのですが
アンマネージドC++と同様の方法で利用できますでしょうか?

昔VB6.0のときにC++(アンマネージド)のdllを利用するときは
このような↓感じだったと思うのですが。
Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer
このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが
もっと望ましい書き方があるのかなー?と疑問に思いまして。

VB.NETからC#のメソッドを利用するときはインスタンスをnewして
簡単に利用できたのですが…。

164 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 03:11:59 ]
>>163
本当にManagedのC++なら、参照設定で追加するだけで使える。C#で作ったクラスを利用するのと同じ要領で。



165 名前:デフォルトの名無しさん [2005/08/07(日) 03:23:29 ]
>>163さんと似たような問題、というか状況なので
少し質問させてください。

現在、
VB.NETからManagedC++
(とはいってもunManagedC++をVisualStudio.NETでManaged用に
手直しした程度)のdllをDeclareで呼び出し、その中でさらにunManagedC++のdllを
呼び出すプログラムを作成しています。

しかし、なぜかVB.NETで例外が頻発し、
ラベルやテキストボックスのサイズを指定するところで
System.Arithmetic.Exceptionが頻発してしまいます。
ラベルの色指定もできず困っています。
ただ、unManagedC++のdllの利用をやめるとそれが解消します。
unManagedC++のdllの利用って、何か注意が必要でしょうか?

166 名前:デフォルトの名無しさん [2005/08/07(日) 03:26:15 ]
> Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer
> このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが

自分もこの呼び出し方を利用していました。
それで稼動していたし。
C#みたいに参照設定でしようできるんですね。
どっちのほうがいいんですか?
何か違いがあるんでしょうか?

167 名前:デフォルトの名無しさん [2005/08/07(日) 04:44:03 ]
>>69さんの意見も参考にしてねv

168 名前:デフォルトの名無しさん [2005/08/07(日) 05:18:49 ]
システムが用意しているアイコンをForm上のPictureboxに
表示したいと思っています。

下記のようにすればコーディングできるとわかりましたが
これをどのイベントが発生したときに行えばいいのか悩んでいます。
FormがLoadされたタイミングでやればずっと表示され続けるのかと
思ったのですが、デバッグモードで1行ずつ表示させると一瞬表示されるけど
その後見えなくなってしまいます…PaintとかActivatedとかもあるかと思いますが
「一般的なメッセージボックスみたいにアイコンを表示しっぱなしにしたい」とき
皆さんはどうされますか?

'システムのアイコンを表示する
'PictureBox1のGraphicsオブジェクトの作成
Dim g As Graphics = PictureBox1.CreateGraphics()
'既定のアプリケーションアイコン(WIN32: IDI_APPLICATION)
g.DrawIcon(SystemIcons.Application, 0, 0)


169 名前:デフォルトの名無しさん [2005/08/07(日) 05:28:51 ]
>>164さんありがとうございます。
以前C#みたいにできたらいいのに、と思っていたので実現できそうと知り安心しました。
「本当にManagedのC++なら」という部分の「本当に」が気になりますが
(他社の方が作ってくれたのですが、
一応managedとはいいつつも
既存のC++のソースをVS.NETで開きMFC化しただけ、とも聞いてます…
「本当に」ManagedC++といえるのか、ちょっと心配ですが)
ちょっとためしてみます。

170 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 11:41:36 ]
>>168
自分で出来ることは自分でする、出来る範囲で調べてみる、って意欲がないのなら
悪いこと言わない、プログラミングなんて止めとけ。

>>3
>どぼん!のVB道のトップページとTipsページ
>dobon.net/vb/
>dobon.net/vb/dotnet/index.html

171 名前:デフォルトの名無しさん [2005/08/08(月) 21:57:18 ]
C#のbase キーワードはVB.NETでは何ですか?


172 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 22:00:22 ]
MyBase
もうちょっと具体的に説明した方が良いよ。基底クラスのメンバにアクセスするためのキーワード、とか。

173 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 23:30:38 ]
残念だがそれが出来るやつは聞かんでも分かっとる。


174 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 22:54:30 ]

アクセスからVB.NETへの移植をやっていますが、
.NETのコンボボックスで質問です。

コンボボックスのドロップダウンリストでいずれかの項目を
選択したときに、それとは別のテキストを表示させたい
のですが、そういうことは可能でしょうか?

例えば
0001 ABCDEF
0002 DEFCFE
0003 XYZXYZ
というリストがあったときに3番目を選んで、表示は
0003 だけにしたいのです。

ダメなら別の実装方法を考えないといけないです。
可能だとすれば、どの辺のイベントをどのように
処理したら良いものでしょうか?





175 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 23:02:08 ]
そのリストとやらはどういうオブジェクトなんだ?
ArrayList? Stringの配列?
それとも単純にItemsプロパティに一つ一つ"0001   ABCDEF" "0002   DEFCFE"……ってAddしていったのか?

176 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 23:17:40 ]
>>174
DropDownStyleをDropDownにしといてSelectedIndexChangedイベントで
Text設定するだけちゃうの?

>>175は池沼か?

177 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 23:27:55 ]
>>176
試してみた?

178 名前:デフォルトの名無しさん mailto:sage [2005/08/10(水) 00:35:03 ]
ああそうか、単純にイベントでText設定してもダメだったような記憶がある。
ドロ臭い方法だけど、SelectedIndexChangedでタイマ起動して
タイマのイベントでText書き換えれば確実に出来る。

ドロ臭いのが嫌ならComboBox継承してOnSelectedIndexChangedをオーバーライド
してやれば可能じゃないか?

179 名前:デフォルトの名無しさん mailto:sage [2005/08/10(水) 00:39:11 ]
>>178
泥臭い。
DisplayMemberを利用すべき。

180 名前:デフォルトの名無しさん mailto:sage [2005/08/10(水) 00:44:33 ]
え?

181 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 09:13:29 ]
長時間掛かる処理にキャンセルボタンを付けたいのですが
キャンセルボタンだけがあるフォームをポップアップして
メイン画面のほうはさわれないようにしたいんですが
どうしたらよいでしょうか?

182 名前:181 mailto:sage [2005/08/11(木) 10:06:43 ]
できました。

183 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 13:09:44 ]
まあ、あれだ、ホントにキャンセルボタン押せるか確認してくれ


184 名前:181 mailto:sage [2005/08/11(木) 13:54:56 ]
押せたよ。マルチスレッドって便利すぎ



185 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 15:51:33 ]
テキストボックスに余白を設定したいのですが、どうすればよいでしょうか?


VB6なら、SendMessageを使って出来たのですが、.NETの方は同じやりかただと出来なかったので。

以下が書いてみたコードです。

 Private Const EM_SETMARGINS As Integer = &HD3s
 Private Const EC_RIGHTMARGIN As Integer = &H2s
 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Integer) As Integer
 Private Function MAKELONG(ByVal i As Integer, ByVal j As Integer) As Integer
   Return (i And &HFFFF) Or (j * &H10000)
 End Function

 Call SendMessage(textbox1.hand, EM_SETMARGINS, EC_LEFTMARGIN, MAKELONG(lngNewValue, 0)

186 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 16:19:49 ]
>>185
lParamを何故かByRefで渡しちゃってるよ。

187 名前:185 mailto:sage [2005/08/11(木) 16:36:40 ]
>>186
Σ(゚д゚ )
うぉ。ホントだ

ByVal に直したらいけました。
なんて初歩的なミスを、、、_| ̄|○

お騒がせして申し訳ありませんでしたm(_ _)m

188 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 23:09:50 ]
VB.NETでクッキーを作ることって可能ですか?
ヤフーチャットにブラウザからLOGONする時、
ユーザ名とパスワードを自動で入れたいのですが

現在自宅にネット接続環境が無いため
ネットカフェor職場での利用となるので履歴が残せず、
項目を毎回入れなければなりません
同じようにメールチェックなどが非常に困難です・・・。
クッキーは1分で消えるように設定したいと思ってます

VB.NET初級者の私でも作れるでしょうか?
どうかアドバイスお願いいたします・・・

189 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 23:13:27 ]
IEのクッキーを作りたいのか、独自アプリでクッキーに対応したいのかどっちだ。

190 名前:デフォルトの名無しさん [2005/08/11(木) 23:29:37 ]
>>189
レスありがとうございます
IEのクッキーを作りたいです

まずはexeを実行して
comboboxからユーザー名を選択して実行すると
パスワードと共にクッキーとして保存されて、
LOGONページを開くとユーザ名とパスワードが入力済みとか。

アカウント数とユーザ名が長いので
複数件の登録をしたいんですが・・・。
初級者には不可能でしょうか??

191 名前:デフォルトの名無しさん mailto:sage [2005/08/11(木) 23:52:49 ]
>534: 名無しさん@お腹いっぱい。 [sage] 04/10/23 14:37:24 ID:fg9Ewxsa
>'Yahooにログイン.vbs
>
>'-------------------
>
>Const login = "なまえ"
>Const passwd = "ぱすわーど"
>Set ie = CreateObject("InternetExplorer.Application")
>ie.visible = True
>ie.navigate "www.yahoo.co.jp/r/l1"
>Do
>    WScript.Sleep 100
>Loop While ie.Busy
>With ie.document.forms(0)
>    .item("login").value = login
>    .item("passwd").value = passwd
>    .Submit
>End With

192 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 00:17:54 ]
>>191さん
188です!
拡張子をvbsにして実行したところ、成功いたしました!
本当にありがとうございました!

193 名前:デフォルトの名無しさん [2005/08/12(金) 17:22:03 ]
VB6ではtextBoxをコントロール配列に出来たと思うのですが、VB.Netでは出来なくなったのでしょうか?
何か変わりの方法が用意されてますか?
----VB6-----
for i = 0 to 10000
textbox(i)=i
next i
みたいなのです。

194 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 17:30:25 ]
自分で作るしかない。どぼんにそれっぽい実装コードがある。
というかそんな不安定な機構いらない。



195 名前:181 mailto:sage [2005/08/12(金) 17:33:44 ]
え?不安定な機構?

196 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 18:35:52 ]
>>193
ttp://dobon.net/vb/dotnet/control/buttonarray.html

197 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 19:39:34 ]
>>193
自分で別途コントロールの参照変数を配列にして参照するやり方が1つ。

または、名前を連番にしてコントロールを名称で呼び出すやり方。

または、Tagプロパティを上手く使ってやるやり方。

.net推奨は最後のTagか?

198 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 22:36:13 ]
コントロール配列にはVB特有の曖昧さがもたらす暗黒面もあったものの、
便利な面があったのも事実だと思うけどね。

あと、一応.NETでもコントロール配列の代替手段は容易されているよ。
VB6でコントロール配列つかった簡単なプロジェクト作って
アップグレードウィザードでアップグレードしてみ?

っていうか、質問する前になんでこんな当たり前のこと試してみないんだろう。

199 名前:最凶VB厨房 mailto:sage [2005/08/12(金) 22:39:37 ]
アップグレードウィザードはどこにあるんだ?

200 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 22:53:25 ]
>>199
知ってるくせに(笑)
厨房氏はスレが荒れそうになると現れるな
プレデターか君はw

201 名前:最凶VB厨房 mailto:sage [2005/08/12(金) 23:43:24 ]
>>200
しらねーから聞いてんだ!
何もしらねー何もわかんねー!!はぁぷみー

202 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 00:57:53 ]
質問させてください。
複数のラベルが存在しているユーザーコントロールを作成しました。

その中にとあるラベルの前景色、背景色を指定するプロパティがあり、
初期値をユーザーコントロールの前景色、背景色としたいのです。

貼り付けた時点では確かにその色がプロパティへセットされるのですが、
ユーザーコントロール自体の色を変更した際、そのプロパティの値は
変わらない状態です。

なにかいい方法はありませんでしょうか?

通常のForeColor、BackColorプロパティのように、
初期値なしみたいな設定できればいいのですが・・・。


203 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 01:00:10 ]
ユーザコントロールのBackColorChanged&ForeColorChangedで変更すればいいだろ

204 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 01:17:10 ]
>203
それも試してみたんですが、
今度は「とあるラベルの色を指定するプロパティ」に独自の値を
設定していた場合、「コントロール自体」の色を変更すると、指定していた色が
クリアされてしまいました・・・。

あと、プロパティブラウザで常に太字になるのは避けたいんですが・・・。




205 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 01:22:48 ]
イベントを作成する場合に(例えば、Clickの場合)
「OnClick」と「Click」がありますが、違いがよくわかりません。
どのように使い分けたらいいのか教えてエロい人!


206 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 01:33:25 ]
>>204
「とあるラベルの色を指定するプロパティ」で、値を別フィールドにとっておいて
イベントで独自色を使用してるかどうか判断すればいいだろ。
プロパティブラウザ? 気にするな。
気になるのならParentChangedでParentのBackColorとForeColorに合わせるようにするとかどうだ。

>>205
Onの方はProtectedなメソッドなので継承したクラスでオーバーライドするしかない。
そのかわり基底クラスのイベントを多少コントロールできる。
派生コントロールを作らないのならOnをいじる機会はない。
派生コントロールを作るのならデリゲートオブジェクトを作らないのでOnをオーバーライドする方が多少効率的。

207 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 03:30:00 ]
教えてください。
関数の中には、引数を指定しない場合、デフォルトの値が適用されるものがありますが、
これを自分で作成した関数で再現する場合、どのようにすれば良いのでしょうか

例えば↓で、bolFlag が指定されていないときは、True を指定したい
Public Function MyModule(Byval strData As String, Byval bolFlag as Boolean) As String
  ...
End Function


208 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 03:33:55 ]
ヘルプで調べると良いよ Visual Basic 言語リファレンス

209 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 04:22:36 ]
Optional ByVal bolFlag As Boolean = True ですね。
ありがとうございました。

210 名前:204 mailto:sage [2005/08/13(土) 13:37:52 ]
>206
重ねてのアドバイスありがとうございます。
OnForeColorChangedと、その追加したプロパティのセッターで
コントロール自体の色と一致しているかを保存しておき、
一致している場合のみ連動させるようにしました。
今のところ意図した動きになっているようです。


211 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 17:27:56 ]
追加で自己レス
ShouldSerialize[プロパティ名]を利用することで、
プロパティブラウザでコントロールの色と同じであれば
太字にならない(=ソースに色指定が出力されない)
ようになりました。

212 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 21:29:40 ]
質問です。
グローバルIPアドレスを取得したいのですが、どうすればよいでしょうか?

ttp://dobon.net/vb/dotnet/internet/dnslookup.html

このページの方法では、LANやルーターから割り振られたアドレスしか取得できないので。

213 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 22:14:57 ]

   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいわろすわろす
     `ヽ_っ⌒/⌒c
        ⌒ ⌒





じゃかわいそうなのでマジレス。
内側だけで直接グローバルIPを見ることはできない。

たぶんDiCEみたいなDDNS更新ツール
(それかネットワークゲーマー用のユーティリティ?)を作りたいんだと思うけど、
やるなら外のページを定期的に見に行って、環境変数のREMORT_ADDRを
取得して比較するくらいしか方法ないと思う。

せめてルータが決めうちできれば、コマンドでの取得できそうだけどね。

214 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 22:17:54 ]
ギャース、REMOTE_ADDRだった。
逝ってきます・・・。



215 名前:デフォルトの名無しさん mailto:sage [2005/08/14(日) 10:27:19 ]
DataGridで、カラムを複数行にする方法はありませんか?
テーブル:項目1,項目2,項目3,項目4,項目5
みたいなのを
項目1|項目2|項目3
     |項目4|項目5
みたいな感じに表示させたいです。
よろしくお願いします。

216 名前:デフォルトの名無しさん mailto:sage [2005/08/14(日) 13:18:42 ]
SELECT 項目1,項目2,項目3 FROM HOGE
UNION
SELECT NULL,項目4,項目5 FROM HOGE

217 名前:215 mailto:sage [2005/08/14(日) 21:31:19 ]
>>216
ありがとうございます。
やってみたのですが、データの中身は2段になったのですが、項目名称が2段にならなかったです。
項目名称は1行しか無理でしょうか。

218 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 10:31:59 ]
CheckBoxにReadOnlyプロパティを追加したユーザコントロールを
作ろうとしています。

イメージとしては、チェックボックスがEnabled=Falseの状態、
文字列は通常のままにしたいのですが、
何かいい方法はありませんでしょうか?

できればCheckBoxを継承して作成したいのですが。

219 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 10:39:17 ]
CheckStateプロパティと、OnCheckStateChangedメソッドのオーバーライドでいいんじゃね?

220 名前:デフォルトの名無しさん [2005/08/15(月) 13:21:55 ]
>>217
SELECT 項目1,項目2,項目3 FROM HOGE
UNION
SELECT NULL,'項目名4','項目名5'
UNION
SELECT NULL,項目4,項目5 FROM HOGE

てか、たぶんあなたのやりたいことは無理です。

221 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 17:23:25 ]
vb.net(プログラム自体も・・・)始めたばかりのピヨピヨです。
いろいろ調べたんですがどうしても解らないことがあります。
質問してもいいですか?

222 名前:デフォルトの名無しさん [2005/08/15(月) 17:25:13 ]

VB6のころはテキストボックスのGotFocusでテキストを
全選択するのが良く行われてましたけど、VB.NETでは
これはできるのでしょうか?

単純にGotFocusでSelectAllメソッドを使ったのでは
できないようなのですが。

もともと、これは好きじゃないのですが、業務アプリの
慣習というのがあるんですよね。できない、かなり難しい
というのであれば、上の人を説得できるので。



223 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 17:42:13 ]
ん? 普通にできるけど?
ちなみに.NETではGotFocus/LostFocusよりもEnter/Leaveが推奨されている。

224 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 17:45:07 ]
>222
私もあまり好きじゃないのですが、同じく業務アプリ屋なので・・・。
VB.netの場合、EnterとLeaveで出来ます。
もしクリックした場合も全選択させたいなら、MouseDownも。
(うちはマウスクリックの場合は全選択させません)

ちなみに、Enterでもタブ移動させたいって言われてませんか?w




225 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 19:39:32 ]
妙なこと言う人たちだなあ。。
それって好き嫌いの問題か?

フォーカス移動時の全選択って合理性あるでしょ。
テキストエディタのように既存の文字列を編集する、ってアプリならともかく、
ほぼ毎回入力されるデータが変わる、っていうようなアプリなら。

だいいち、客に出すラーメンの味にラーメン屋自身の好みを押し付けるって不遜じゃないか。

226 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 19:54:41 ]
なんでそんなことでケチつけるかなぁ?
個人的に好きじゃないことの何が悪い?

意固地になって実装しないわけじゃないし。
注文されればその通りに作ってるさ。


227 名前:デフォルトの名無しさん [2005/08/15(月) 19:58:31 ]
>225
コボラー乙

228 名前:最凶VB厨房 mailto:sage [2005/08/15(月) 20:58:20 ]
こだわりのラーメンは是非食いたいネ
あー腹減った。

229 名前:デフォルトの名無しさん [2005/08/15(月) 23:05:29 ]
TcpClient で存在しないアドレスにconnectすると、
えらい時間が掛かってExceptionが返ってくるのだけど、
connectのタイムアウトを設定ってできないの?

230 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 23:40:07 ]
できない。
別スレッド作るかSystem.Timers.Timerを使うかして、そっちで強制的にCloseするぐらいか。
でもTcpClientでは接続中かどうかを判断もできないんだよね。.NET 2.0で思い出したように追加されたけど。
派生クラスを作ればProtectedメンバのClientプロパティ経由で状態を知ることはできるんだが。
派生クラスでタイムアウト付きConnectでも定義するか。
素直にSocket使った方が早いかもね?

231 名前:デフォルトの名無しさん mailto:sage [2005/08/16(火) 00:01:14 ]
>>230
粗雑な問いに、丁寧にお答えいただき、大変恐縮でございます。
ご意見、参考にさせて頂きます。ありがとうございました。

232 名前:デフォルトの名無しさん [2005/08/16(火) 09:03:51 ]
>>224
Enterイベントだとタブでの移動では全選択されるようなのですが、
マウスでクリックした場合は全選択されないですよね?
Clickイベントで実装するとテキストボックス内で他の場所を
クリックしたときにも全選択されてしまうし。



233 名前:デフォルトの名無しさん mailto:sage [2005/08/16(火) 10:36:43 ]
>232
いや、だからMouseDown

>テキストボックス内で他の場所
これってどういう意味ですか?

234 名前:デフォルトの名無しさん mailto:sage [2005/08/16(火) 11:20:26 ]
>>232
>Enterイベントだとタブでの移動では全選択されるようなのですが、
>マウスでクリックした場合は全選択されないですよね?
いや、実際は一旦全選択されているはずだけれどもね。
恐らく一旦全選択された後、解除されてしまうんだよね。
単にクリックしたはずが、クリックしたついでに微妙にドラッグになってしまっているために。

>>233
だいたい話の文脈でわかるでしょ?
そうでないならこの話題にのっかる資格はないと思うけど。
フォーカスが来たとき以外も全選択されてしまうということでしょう。



235 名前:デフォルトの名無しさん mailto:sage [2005/08/16(火) 11:57:37 ]
>234

>恐らく一旦全選択された後、解除されてしまうんだよね。
これはあってる。

>単にクリックしたはずが、クリックしたついでに微妙にドラッグになってしまっているために。
これはちがう。単なるクリックでも全選択は解除される。
イベントハンドラの発生順の問題。
もし微妙にドラッグしちゃった時でも全選択させたいならMouseUp。

フォーカスが元々ある状態の場合は全選択したくないということであれば、
フラグでEnter経由かどうか判断するのがいいかと思う。

あと、いちいち絡むなよ。


236 名前:デフォルトの名無しさん mailto:sage [2005/08/16(火) 12:07:32 ]
あー、ごめ。単にEnter経由で判断だけだと、
タブ移動後にクリックした時にも全選択になっちゃうわ。
なんかうまい方法ないかなぁ。







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

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

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