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


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

VB.NET質問スレ (Part21)



1 名前:デフォルトの名無しさん [2007/04/23(月) 12:42:36 ]
前スレ

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

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

280 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:49:06 ]
そのままそれをPgにすりゃいいだけだと思うんだが…
どこがわからないんだ?
判定?
それともすべて?

281 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:50:20 ]
プログラムをPGって略すのは珍しいな

282 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:50:49 ]
>>279
悪いこと言わない、プログラミングなんぞに手を出すのはやめとけ。
根本的に向いてないよお前さんには

283 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:52:59 ]
>>280
そもそもVB.NETという概念からして良く解ってないんですが・・・
正直、まるで何一つ解ってません・・・

' 今のコード

Public Class km
    Private Sub km_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.Left
                Timer1.Enabled = True
            Case Keys.Right
                Timer2.Enabled = True
        End Select
    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        PictureBox1.Left -= 6
    End Sub

    Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        PictureBox1.Left += 6
    End Sub

End Class

284 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:06:24 ]
おまwwwww
これ右移動しながら左キー押したらどうなるんだよwwwwwwww

悪いことは言わないから まず左右キー押しっぱでそれぞれの方向に動いてはじっこまで来たらとまるプログラムかいてみ?

まずはそっからだ

285 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:08:36 ]
>>284
こんな感じでしょうか?

Public Class km
    Private Sub km_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.Left
                If PictureBox1.Left > 0 Then
                    PictureBox1.Left -= 6
                End If
            Case Keys.Right
                If PictureBox1.Left + PictureBox1.Width < Me.ClientSize.Width Then
                    PictureBox1.Left += 6
                End If
        End Select
    End Sub

End Class

286 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:11:48 ]
まーた始まった

287 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:12:21 ]
こんな感じでしょうかじゃないよ。
試してどこがどうだめだったか報告しなさいよね

288 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:16:49 ]
まぁ、とりあえずそれはめり込む可能性が高いなwwwww



289 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:26:19 ]
>>287
取り敢えず、動かしてみた感じ
>>284で言われたものは出来たような気がします

>>288
やっぱり、移動量が6だとめり込みますよね・・・(ウィンドウサイズが6の倍数ならともかく)
移動量を5にして、めり込まないようにしてみました

290 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:32:03 ]
・・・・・あのぉ・・・・まぁ・・・いいけどさ・・
もう面倒くさいからざっくりサンプル書いとくわ
スペースでストップな
この板的に叩かれそうなソースだがまぁ こんなバカもいるってことで
とりあえずタイマをつかってるみたいだからそれは残しといてみた
 以下ソース

Private Enum Vector
Right
Left
None
End Enum

Private Const _MovePixcel As Integer = 1
Private _Vector As Vector = Vector.None


291 名前:デフォルトの名無しさん [2007/05/20(日) 23:33:03 ]
TRY-FINALLYはめんどくさいからそこに書いただけ
ほんとはちゃんとしたほうがいい気がする

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Try
Select Case e.KeyCode

Case Keys.Right
_Vector = Vector.Right

Case Keys.Left
_Vector = Vector.Left

Case Keys.Space
'とまる
_Vector = Vector.None

End Select

Finally
If _Vector = Vector.None Then
Me.Timer1.Stop()
Else

Me.Timer1.Start()
End If

End Try

End Sub


292 名前:デフォルトの名無しさん [2007/05/20(日) 23:33:57 ]
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Select Case _Vector
Case Vector.Right

Dim TempRight As Integer = Me.PictureBox1.Left + Me.PictureBox1.Width + _MovePixcel
If TempRight < Me.Panel1.Width Then
Me.PictureBox1.Left += _MovePixcel
Else
_Vector = Vector.Left
End If

Return

Case Vector.Left

If 0 < Me.PictureBox1.Left - _MovePixcel Then
Me.PictureBox1.Left -= _MovePixcel
Else
_Vector = Vector.Right
End If

Return

End Select

End Sub

忘れてたけど
フォームにタイマ・パネル・ピクチャボックスおいてな

293 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:39:11 ]
自分にレス番を打つと専ブラ使いにはうれしいインデント。

SELECT CASE True
CASE 1 = 2
CASE 1 = 1
END SELECT

>>293

294 名前:デフォルトの名無しさん [2007/05/21(月) 06:17:31 ]
列挙体はまだ高度では?
つぅか、>>284のつっこみが分かってないよな。
フォームにのめりこんでもいいから、せめて片方のタイマーを止めろよ。

295 名前:290 [2007/05/21(月) 09:02:10 ]
>>293
まぁとりあえずソースみてこんなもんかな?ってのを判ってもらえる事を期待してみた(;´Д`)
多分右も左もわからないっぽいので 余計なお世話だったか・・・
まぁ、列挙タイは確かに不必要であんなるBoolのフラグのが良かった希ガス


296 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:47:21 ]
>>290
なんというか、予防線はってるのがすごく痛い

297 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:49:41 ]
マイク入力を録音をするアプリをつくろうと考えてるんですが、何か参考になるサイトや書籍を知りませんか?

298 名前:デフォルトの名無しさん [2007/05/21(月) 17:28:22 ]
VB.netでモバイル端末用アプリを作成し、
アイコンを設定して端末へコピーし、端末側の
ファイルエクスプローラexeを確認すると
設定したアイコンで表示されませんでした。
PC側では設定したアイコンで表示されます。
何か設定があるのでしょうか?




299 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:02:15 ]
アプリ作成後にアイコン設定ってもしかしてアンタ…

300 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 06:14:19 ]
>>298
おまえファミコン.icoもしらねーのかよ初心者め

301 名前:298 [2007/05/22(火) 09:04:20 ]
>アプリ作成後にアイコン設定ってもしかしてアンタ…
書き方が変だったようです。
アイコンの設定はもちろんアプリケーションの
プロパティ画面から設定してからEXEを作成しています。
ちなみにC#で作ったサンプルPGに同じアイコンを
設定した場合はPDAで正しくアイコンが表示されますが
VB.NETではだめでした。

302 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:40:02 ]
>>301
C#でアイコン設定したらOKで、VB.NETではNGだったってこと?
ちなみにVB.NETで作成した場合、モバイル端末で表示されるアイコンはどんなの?

303 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:46:28 ]
まあ99%なにかの勘違いだなw
同じように作ったC#はOKでVBだとNGなんてまずありえん。

304 名前:デフォルトの名無しさん [2007/05/22(火) 21:47:46 ]
継承を多用すると遅くなるって事ありますか?



305 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:50:39 ]
そりゃあることもあるだろ
まあおまいさんが書くコードに影響がある程じゃないさ

306 名前:デフォルトの名無しさん [2007/05/22(火) 22:08:07 ]
>>305
ありがとうです。

ちなみに、至るところで、継承してるプロジェクトに就業しました。
インスタンスも至るところでされてます。
画面を開くのに40秒近くかかります。
継承しすぎて、何をどこでやってるか追うのに大変です。
継承遷移図やソースの名前からでは判断できません。

307 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:18:45 ]
>>306
もしかして継承フォームのことをいってる?
あれは確かに重くなりそうな気がする。

308 名前:デフォルトの名無しさん [2007/05/22(火) 22:30:41 ]
>>307
言い方はわかりませんが、
画面そのものを継承していますね。






309 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:35:21 ]
継承そのものはコストは無視して構わない。
例えば画面なら、コントロールを山程載せてたり起動時にDBからデータもってきてたりとかその辺。

310 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:37:46 ]
いや307の言うとおり継承フォームとか複合コントロールの継承なんかは
普通のクラスの継承とはちょっと事情が違うと思う。

普通のクラスの継承のコストなんてないと思っていいのは同意するけど

311 名前:デフォルトの名無しさん [2007/05/22(火) 22:49:52 ]
ん?一人レベルが低くい質、て申し訳ないですが、
継承したら早くなるのですか?

コーディングスピードていうか、共通箇所がガッツリ出来るのは理解できるのですが。

312 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:55:25 ]
>>311
日本語でおk

313 名前:デフォルトの名無しさん [2007/05/22(火) 22:57:38 ]
>>311
おk!!

処理の速度・画面の起動等のユーザサイドから見て、
継承を使用した場合、しなかった場合よりも早く感じるものなの?

作り手からみて、楽になる部分が多いのはわかります。

314 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:03:17 ]
実行時にはほとんどまたは全く差はない。
差が出るのはIDEの動作とか、コンパイルにかかる時間とかそんなところ。
GUI関係の継承だとIDEの動作が重くなる可能性はある。

315 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 01:56:16 ]
そんなこんなで画面がでるまで40秒かかる>>306に乾杯

316 名前:デフォルトの名無しさん [2007/05/23(水) 09:11:12 ]
むしろ
>>306の基盤作った奴は起動にそれだけ時間かかってなんとも思わなかったのか・・・
それのほうが問題だよな

317 名前:298 [2007/05/23(水) 09:12:49 ]
メーカーから届いた端末複数でインストールしました。
そのうちいくつかが通常のexeのアイコンでその他が
設定したアイコンで表示されました。
メーカーが提供しているDLLの不具合の可能性が出てきましたので
しばらく様子を見ようと思います。

318 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:13:43 ]
質問させてください。
LAN上でSQL Serverをインストールしているサーバの検出をVB.NET(2005)で行う方法はありますでしょうか。
ありましたら、教えてください。




319 名前:デフォルトの名無しさん [2007/05/23(水) 13:51:48 ]
昔はSQLDMOつかってたな・・・
今はもしかしたらSQLクライアントかなんかの名前空間の中にラップされた機能あるかもしれんが。。。

320 名前:318 mailto:sage [2007/05/23(水) 16:25:37 ]
>319
どうもです。
SQLDMOをヒントに
ttp://www.csharphelp.com/archives2/archive342.html
にたどり着き、ここにあるC#のサンプルをVBに書き換えてうまいこといきました。
多謝多謝。

321 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:18:36 ]
>318
既に解決したようですが、参考までに。
ADO.NET 2.0ならばSqlDataSourceEnumeratorクラスなるものがあるようです。

SQL Server のインスタンスの列挙
msdn2.microsoft.com/ja-jp/library/a6t1z9x2(VS.80).aspx

322 名前:318 mailto:sage [2007/05/23(水) 17:48:50 ]
>321
ありがとうございます。
自分が見つけたサンプルより、そちらのほうがいけそうです。

>320で貼ったサンプルについては、
ListAvailableSQLServersというメソッドでサーバ名取得していたおですが、
BooksOnlineに将来削除されるメソッドだとありましたので…。



323 名前:デフォルトの名無しさん [2007/05/23(水) 19:20:55 ]
諸事情により携帯から失礼します。
.netでのINIファイル読み込みの時の質問なのですが、
読み込む時に文字数制限とうってありますか?(128バイトまでとか)
開発環境はVS2003です。
よろしくおねがいします。

324 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:23:22 ]
よろしくおねがいする前に、まず自分で試そうよお馬鹿さん。

325 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:32:28 ]
試した結果削られてしまって、
調べても分からなかったので質問してるのですが…

326 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:36:57 ]
見え透いたこと言わない方がいいよ。
絶対試してもなければ何も調べてもないってw

っていうか調べてその体たらくならとっとと足洗ったほうが吉だわな。

327 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:45:06 ]
本当に試しましたし、調べもしました。
ですが、どうしても取って来れなかったので質問してるんです…。
見え透いた事といいますが、こんな風に言われてしまうのならば、
もうここには来ていませんし、試していないのならば貴方に愚弄されるのを分かっていて
試さずにまた聞いたりしませんよ…。

328 名前:デフォルトの名無しさん [2007/05/23(水) 19:57:27 ]
意外と設定したバッファ越えて読み込んでたりなwwwww
まぁ、ありえんか・・・



329 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 20:02:59 ]
INIファイルの有効サイズを超えてたりしてwwwww
まぁ、ありえんか・・・

330 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 20:31:06 ]
iniだろうがdatだろうがファイル読み込みはファイル読み込みでしょうが。
どんな制限だよ128バイトって
いまどきこのレスだって142バイトはあるっての

331 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 20:33:52 ]
試すっていうのはね、
ファイルを読み込むだけのコードでテストしてみることをいうんだよ?
それで128バイト制限が存在するかどうか分かるでしょ?

つまり試してないってこったよお馬鹿さん。


332 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 20:41:09 ]
>>331
スレが汚れるから死ね。

333 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 20:52:09 ]
iniファイル読むのにWin32Apiとか使ってて、最初にバッファの確保処理してないんじゃね?

334 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:26:06 ]
>>333
あ、それかもしれない・・・
ちょっと後でいじって見ます。アドバイスありがとうございました。

335 名前:デフォルトの名無しさん [2007/05/23(水) 21:27:14 ]
質問です。
C言語でDLLを作り、VBからそのDLLの関数を呼び出して使いたいのですが、
下のプログラムをビルドして実行するとLabel1には6と表示されます。

どうやらforループが2回で終わっているようですが、なぜそうなるのかが分かりません。
すみませんがよろしくお願いいたします。

336 名前:デフォルトの名無しさん [2007/05/23(水) 21:29:25 ]
ソースは以下の通りです。
Option Explicit On

Public Class Form1
Public Declare Function Sum Lib "C:\Sum.dll" (ByRef n As Long, ByRef a As Long) As Long

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n, s As Long
Dim aa(10) As Long

aa(0) = 1
aa(1) = 5
aa(2) = 4
aa(3) = 9
n = 4

s = Sum(n, aa(0))

Label1.Text = s

End Sub
End Class

337 名前:デフォルトの名無しさん [2007/05/23(水) 21:30:40 ]
__declspec(dllexport) long __stdcall Sum(long* n,long* a){
long sum,i;
sum=0;

for(i=0 ; i< *n ; i++){
sum=sum+a[i];
}
return(sum);
}

DLLを作るのにはVC++6.0、VBは2005 ExpressEditionを使っています。

338 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:35:20 ]
>>337
取りあえず Long と long を調べてこい



339 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:05:59 ]
そのコードヤバくね?

340 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:22:40 ]
テストだとしても・・・・
VB側でLong使うケースは…・


341 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:26:25 ]
えーと、よくわからないけど
これ貼っとけばいいかな?

プラットフォーム呼び出しのデータ型
msdn2.microsoft.com/ja-jp/library/ac7ay120.aspx

342 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:25:10 ]
横からですが

VBで変数宣言するときにlong型にしちゃまずいんですか?

longってintの2倍のサイズの要領の数値型ですよね

343 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:52:27 ]
>>342
VB6からいろいろ変わってしまったのだよん。
VB6のIntegerは16bit長、Longは32bit長だけど
VB.NETからはIntegerが32bit長で、Longは64bit長、Shortが16bit長。
VC6やらVC2005でDLLを作った場合、.NETのLongは__int64かlong long型に該当する。

344 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:04:25 ]
なるほど・・・

だとしたら私の場合はintで宣言したらオーバーフロー?がおきたのでlongにしたので
このままで問題ないですよね?
素人なのでオーバーフローという意味がよく分かってないですが・・とりあえずint型だと容量が足りないみたいなエラーが起きました

345 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:11:11 ]
各数値型で扱える範囲と、そのとき扱う必要がある数値の範囲くらいは把握しとこうぜ

346 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:13:12 ]
つーかdllの関数のシグニチャと合わせないとためだろwwww

347 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:54:22 ]
だったらc側でlongじゃ足りんだろうがw

348 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:56:45 ]
アドレス渡しってどうなん?



349 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 02:00:26 ]
どうとは?

350 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 02:23:47 ]
なにが
>このままで問題ないですよね?
だ!!!!!!!

問題あるから質問スレに来てるんだろが!!!!!!

351 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 02:30:06 ]
>>350
こたえる気がないのなら消えろよ・・・。

352 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 02:35:31 ]
>>351>>335が書きました

353 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:08:51 ]
typedef くらいしとけ

354 名前:335 [2007/05/24(木) 15:42:21 ]
皆様ありがとうございます。
今大学にいないので試す事が出来ないのですが、
夕方登校してから変数のビット長の事を考え直してもう一度やってみます。

あと、>>351は私ではありません念の為。

355 名前:デフォルトの名無しさん [2007/05/24(木) 22:15:23 ]
やる気があるんだったら家のにExpressくらい入れて試せよ 学生さんw

356 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:43:36 ]
>学生さんw
なんで最後にwがつくのかわからんが、無職のお前よりましだと思うよ。

357 名前:342 mailto:sage [2007/05/25(金) 00:38:37 ]
>>350
>問題があるからここに〜
intにしているときとは違いlongにするとコンパイル時にエラーはでませんでしたが。

ここにいる理由は、他人の質問事項でも参考になるから毎日覗いていて
>>338-340のレスが気になったら質問したまでだけど。

358 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:43:18 ]
コンパイル時じゃなくて実行時だった。



359 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 01:24:34 ]
>>357
まぁ出なくなったんならいいっちゃいいのかも知れませんが、それで飯食うつもりでしたら
何でオーバーフローしたのか?
それは予想された動作か?
違うならどこで変数に異常な値が入ったのか?

くらいは最低限把握しておいたほうが良さそうな気がしますよ?

>>346
>>335-337 はシグニチャとかそれ以前に
s = Sum(n, aa(0))
なんてコードかいてる時点でVB.NETについて根本的に勘違いしてるっぽいんですけどw

360 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 02:06:47 ]
>>356
お前みたいなレベルの負け組と一緒にするなカス野郎

361 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 15:14:29 ]
ちょっとしたブラウザ(IE使う)を作ってみたいです
まだソフトも買ってないので、日曜日に買いに行きます
入門書もあわせて買う予定です
お勧めの本あれば教えてください

362 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 15:31:36 ]
とりあえず、ExpressEdition使ってみたら

363 名前:デフォルトの名無しさん [2007/05/25(金) 17:35:05 ]
2005で質問です。

ピクチャーボックス・ラベルをFill・Bottomとして貼り付けたユーザーコントロールがあります。
このコントロールのMouseMove/MouseLeave/MouseEnterイベントは コントロールが上に存在している為発生しない状況です。
これらのイベントが簡単に動作する方法はないでしょうか?
やはり、各コントロールのイベントを取ってきてガリガリいじって渡したりしなければいけないんでしょうか?




364 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:46:33 ]
内部で各コントロールにイベントつけといて
ユーザーコントロールのOnMouseMove等を呼べば?

365 名前:363 [2007/05/25(金) 18:18:52 ]
>>364
レスありがとうございます。
とりあえずMouseMoveはその方法で実装してみました。
各コントロールのマウスMoveイベントでユーザーコントロール内の座標に変換してユーザーコントロールのMouseMoveイベントを呼び出すようにしています。
これでMouseMoveは実装できたのですが、今度はMouseEnter MouseLeaveイベントを実装する手段が不明というか、うまいこと思いつかないです




366 名前:363 [2007/05/25(金) 18:22:21 ]
連投失礼します。

MouseEnterはPrivateなフラグをひとつ持って、内部の各コントロールのEnterイベントで
フラグがOFFならユーザーコントロールのEnterイベントを発生→フラグON
フラグONならなにもしない

という力技実装を今思いついてやってみました。
しかし やっぱりMouseLeaveが難しいです・・・

367 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:01:44 ]
>>363
希望するのはこういう動作?

  Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    MyBase.OnLoad(e)
    For Each c As Control In Me.Controls
      AddHandler c.MouseMove, AddressOf Chileds_MouseMove
      AddHandler c.MouseLeave, AddressOf Chileds_MouseLeave
    Next
  End Sub

  Private Sub Chileds_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
    Dim pt As Point = MousePositionByClientCoordinate()
    Dim ev As New MouseEventArgs(e.Button, e.Clicks, pt.X, pt.Y, e.Delta)
    MyClass.OnMouseEnter(New EventArgs)
    Me.OnMouseMove(ev)
  End Sub

  Private Sub Chileds_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
    MyClass.OnMouseLeave(New EventArgs)
  End Sub

  Private Function MousePositionByClientCoordinate() As Point
    Return Me.PointToClient(Control.MousePosition)
  End Function

  Private Function IsMouseOnMe() As Boolean
    Dim pt As Point = MousePositionByClientCoordinate()
    Return Me.ClientRectangle.Contains(pt)
  End Function

368 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:03:25 ]
  Private mMouseAlreadyEnter As Boolean = False
  Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
    If mMouseAlreadyEnter = False Then
      mMouseAlreadyEnter = True
      MyBase.OnMouseEnter(e)
    End If
  End Sub

  Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
    If IsMouseOnMe() = False Then
      mMouseAlreadyEnter = False
      MyBase.OnMouseLeave(e)
    End If
  End Sub



369 名前:363 [2007/05/25(金) 21:38:46 ]
>>367-368
帰宅してたのでレス遅れてすみません
ちょっとご飯食べて試してみます


370 名前:363 [2007/05/25(金) 21:49:27 ]
>>366
やっぱり気になって先にソース見てました。
正に自分が欲していた動作です。
しかも超汎用性があるようにサンプルまで頂けて・・・
ありがとうございます!!!!!
なんか胸のつかえが取れました!!

371 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 22:31:54 ]
いや、サンプルっていうかUserControlで>>363に書いてあるような動作を実装するような
コードを書いてみただけだけどね。

なんにしろ希望の通りの動作のようで何より。

しかし、Chiledsって素で間違えたよ恥ずかしいw
中学英語も怪しくなってきているとは

372 名前:デフォルトの名無しさん [2007/05/25(金) 23:29:44 ]
C言語では、static int a[3]={1,2,3}; や、 static char b[]="abc";
のように、初期化できるのですが、VB や VBA ではどうすればよいのですか、
N88 basic では、確か、DATA 文があって、できたと記憶しているのですが


373 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 00:33:09 ]
Dim a() As Integer = {1, 2, 3}

374 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:01:15 ]
s = Sum(n, aa(0))

これはどこがおかしいんでしょうか?

375 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:06:46 ]
>>374
エスパーの俺にも君の質問の意味がわかりません。

376 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:09:11 ]
配列へのポインタと渡そうとして
先頭要素の値(への参照)を渡している

いろんな言語の低レベルな知識がごっちゃになってるという最悪の状況

377 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:14:34 ]
s as intger =0
n as intger =1
aa as string =123456

s = n + aa(0)

だとおk?
一部省略

378 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:16:18 ]
aa(0)をint(aa(0))に修正↑



379 名前:359 mailto:sage [2007/05/26(土) 02:20:08 ]
>>374
大体、Integer型とInteger型の配列は全くの別物ですから。IntegerはInt32構造体、Integer()はArrayクラスが本来の姿です。
従って配列を渡したかったらちゃんとそう書かないとだめです。

Function(ByVal n As Integer, ByVal aa As Integer())

見たいな感じで。
あとVB.NETだと参照型は値渡しでちゃんと参照が渡されるから、配列渡す時は無闇にByRef使うとえらいことになります。

そもそも、アンマネージDllの呼び出し(PInvokeとか呼ばれてますけど)はマーシャリングという処理が必要で結構奥が深いですよ?

380 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:21:52 ]
でたよ・・・
プログラマ特有の頭でっかち

381 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:23:30 ]
>>380
頭を落としてきた人は黙ってて下さい

382 名前:359 mailto:sage [2007/05/26(土) 02:25:56 ]
>>374
あと、俺みたいに前のレス番名乗らないから>>375みたいな突込みがくるわけで。
この板にはID無いから自分が前に出した質問があるときはちゃんと名前欄に書きましょう。
>>380
どうせ俺は21の高卒プログラマですよ・・・

383 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:34:30 ]
何か勘違いしているようだが>>335でもないし>>347でもないぞ?

384 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:49:26 ]
>>383
本当だ・・・>>357だと思ってたんだけど>>357はちゃんとレス番書いてあるorz
まぁちゃんと書いても騙りに沸かれたらそれまでなんですけどねw

385 名前:デフォルトの名無しさん [2007/05/26(土) 02:49:56 ]
>>382
まぁそういうな
つうか、ここでは年齢も学歴も関係ないだろ
そうやって思ってもないのに自分で自分を卑下してるフリしてるやつはムカつく

386 名前:359 mailto:sage [2007/05/26(土) 03:18:18 ]
>>385
まぁ実際普段仕事する分には学歴なんざ糞の役にも立たないんでしょうが、場数も学歴もないと転職キツくありません?
ちなみに俺が知る限りウチの会社のプログラマに大卒は居ませんw

つーかそういう話題はマ板逝けって言われそうなんで>>377-378の件

なんか文法エラーが混じってるんで一番好意的に解釈した結果になりますが、
aa="123456"だとすると、CInt(aa(0))の結果は'1'のキャラクターコード=&H21です。
したがって
s = n + CInt(aa(0)) = 1 + &H21 = 34

になりますけど、それは意図した動作ですか?
そもそも>>374>>357だと冗談抜きでエスパーでもないと無理w

387 名前:386 mailto:sage [2007/05/26(土) 03:24:50 ]
間違えたorz
CharからIntegerって普通には変換できないじゃんw

388 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 03:28:13 ]
>>386
お前の知る世界が狭いだけ
ヘッドハントなんざいくらでもある
そこに学歴は関係ないからな

つうか・・・・落ち着いて書きこめよ…・
デバッグ忘れでリリースしそうなやつだな・・お前…



389 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 07:46:16 ]
VBでSumって組み込みであるの?

390 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:55:06 ]
>>388
なんか背伸びしてる感がありありだよ
ヘッドハントってお前さんどんな「生き馬の目を抜く」世界にいるんだよw

そりゃあるかないか、といえば確かに「ある」が、それはお前さんの世界じゃないだろうに。

391 名前:デフォルトの名無しさん [2007/05/26(土) 17:00:20 ]
変数の値ではなく、変数名を文字列に変換することはできますか?
またその逆はできますか?
趣味でプログラミングを始めた初心者ですが、どなたか教えていただけませんでしょうかm(_ _)m

392 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:51:43 ]
できるかできないか、で言えば可能だが、初心者にははっきり言って無理。
初心者にはもっと他にやることあるだろ。

393 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:45:29 ]
>>391
ローカル変数は無理
クラスや構造体のフィールドなら可能
言葉の意味がわからないなら諦めろ

394 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 23:28:26 ]
そんなの自分でソースをパースすればいいんだよ。なんでもできる。

395 名前:デフォルトの名無しさん [2007/05/26(土) 23:47:05 ]
WebBrowser で Excelファイルを表示したとき、
VB6 の頃は Excel のツールボタン列がいくらでも選択できて
表示できたのですが、VB2005 になってから表示されないようなのですが、
もし表示するための方法等がありましたら教えてください。

よろしくお願いします。

396 名前:デフォルトの名無しさん [2007/05/28(月) 06:11:59 ]
VB.NET→VB2005への移行は簡単ですか?
VB6→VB.NETへの移行とどちらが簡単ですか?
そろそろ.NET Framework1.1のサポートが終了と聞いたので。

397 名前:デフォルトの名無しさん [2007/05/28(月) 09:32:10 ]
>>396
そりゃ 過去の.NET→2005の.NETにきまってるじゃないか

基本的な部分は変わってないんだから



398 名前:デフォルトの名無しさん [2007/05/28(月) 09:53:51 ]
VB2005で現在のカーソル位置を行数で知りたいんですけど、便利な方法ありますか?
確かExcelVBAでは画面の上のほうに出てたと思うんですが・・・



399 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 10:28:51 ]
何のカーソルの位置を何の行数で知りたいの

400 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:33:59 ]
399は優しいのな。
俺は398みたいなおタンチンは相手にする気になれん。

というか、どうせこんな人間相手に自分の希望を伝えることすらできない人間が
満足なコードなんて書けるはずがないと思うんだが。

401 名前:398 mailto:sage [2007/05/28(月) 13:57:34 ]
コードエディタのカーソル位置です。

エラーがあったときデザイナを開くと「XX行目にエラーがあります」みたいなメッセージが
出るのですが、その行数に飛びたいのです。

確か空行飛ばしてカウントしてたと思います。今確認しようとしてるんですが
エラーは出ても「XX行目に…」というメッセージが出ない・・・


402 名前:デフォルトの名無しさん [2007/05/28(月) 14:13:20 ]
普通に標準機能じゃ満足できないのか?

403 名前:398 mailto:sage [2007/05/28(月) 14:32:51 ]
標準って、「エラー一覧」ウィンドウに出てるエラーメッセージをダブルクリックして飛ぶって意味ですか?
それができなかった時があったと思うんですけど…
ていうか再現できない。何でかなー


404 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:44:50 ]
アホをVB.NETスレから出すなよ……

ふらっとC♯, C#(初心者用) Part16
pc11.2ch.net/test/read.cgi/tech/1179313212/257

257 名前:デフォルトの名無しさん[] 投稿日:2007/05/28(月) 14:47:42
すみません、VB.NET の方で訊いてみたのですがご指導いただけません
でしたのでこちらでも訊かせてください。すみません。

WebBrowser で Excelファイルを表示したとき、
VB6 の頃は Excel のツールボタン列がいくらでも選択できて
表示できたのですが、VB2005 になってから表示されないようなのですが、
もし表示するための方法等がありましたら教えてください。

よろしくお願いします。

405 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:18:34 ]
いや・・・これ・・・VB.NET関係無い気が・・・

406 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:45:46 ]
>>405
中のソースをVB.NETで書いてたんじゃね?

407 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 17:02:13 ]
IEかOfficeスレへ逝くべきかな
しかし、俺の環境じゃ普通に表示できたぞ
プログラミング勉強するよりWindowsの基本操作勉強したほうがいいんじゃねぇか

408 名前:デフォルトの名無しさん [2007/05/28(月) 18:07:03 ]
初心者です。
教えてください。

フォーム上に2つのボタン Button1とButton2があったとして
Button1をクリックした処理の中に、
「Button2をクリックされたイベント」を発生させたい場合
どうしたらよいのでしょうか?



409 名前:デフォルトの名無しさん [2007/05/28(月) 19:34:40 ]
>>408
VB6とかVBAではなんて書いた?
それがヒント。

410 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:17:50 ]
>>408がVB6やVBAの経験があるとは限らないだろ

Clickイベントを発生させたいのか、
それともイベントハンドラのメソッドさえ呼べればいいのかどっち?
前者ならButon2.PerformClick()、後者ならButton2_Click(sender, e)

411 名前:デフォルトの名無しさん [2007/05/28(月) 21:50:04 ]
>>410
いや、まあ、ただ教えてくれってだけじゃなくて、考えるヒントになればって
思っただけ。
クラスとかの質問じゃないから、どうやればそのイベントを発生させるか
考えられたら、のちのちのためになるかなぁと。

412 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 22:13:42 ]
だからって>VB6とかVBAではなんて書いた? がどうヒントになるんだ
だいたいPerformClickなんて
知ってるか知らないかだけの問題であって考えても仕方ないだろ
自分で調べられるならこんなところで聞かないだろうし

413 名前:デフォルトの名無しさん [2007/05/28(月) 23:00:59 ]

>>410
>>409

ありがとうございます。
ちなみにVB6、VBA 経験なしです。。。

414 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:07:15 ]
あとVisualStudio使ってるか使っていないかは最低でも伝えてほすぃ

415 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 02:12:54 ]
>>411
馬鹿は教育しなくていいよ。
知ってれば答えろ。知らなきゃ黙ってろ


416 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:24:32 ]
なるほど、だから誰も君には何も言わないわけかw

417 名前:デフォルトの名無しさん [2007/05/29(火) 09:58:26 ]
おまえら・・・・

もうちょっと教えて君には聞き方教えてやろうぜ?
だからC#に聞きにいったりするアフォが出て来るんだし

>>413
せめてPG経験とか、何の言語使えるとか情報出さなきゃ
知識が0なのかどうかすらわからん・・・・
例えばJAVA経験あるといえば、JAVAでいうところのこんなもんだ

って砕いた説明してくれる奴も居るだろうし
てか、何でこういう奴出てくるんだろうな・・・ 何も情報出さずにエスパーしてほしい奴多すぎね?

418 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 13:26:32 ]
何で、ってそれがVB.NETクォリティだろ



419 名前:デフォルトの名無しさん [2007/05/29(火) 13:44:27 ]
>>418
そうか・・・そうだよな
ァ '`,、'`,、('∀`) '`,、'`,、

420 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 14:59:08 ]
VB2003で、「起動時に前回終了時のウィンドウのサイズを復元する」
ということをフォームのプロパティ設定だけで実現できますか?

421 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:04:45 ]
いいえ

422 名前:デフォルトの名無しさん [2007/05/29(火) 15:35:18 ]
レジストリに書いたら??

423 名前:デフォルトの名無しさん [2007/05/29(火) 15:43:39 ]
>>420
明らかにそんなものないだろうが

何の為の設定ファイルやレジストリだ?カス

424 名前:デフォルトの名無しさん [2007/05/29(火) 16:13:21 ]
どうやったらできますか?って質問ならまだしもな。


425 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:17:57 ]
Webで調べたら、プロパティ設定で実現する方法を説明しているサイトがなかったのと
そういうプロパティが無かったので、そうじゃないかと思ったのですが、
明確に「プロパティ設定ではできません」みたいな説明がなかったので・・・

昔いじってた特殊な開発環境だと、そういうプロパティがあったので、
VB2003でも無いのかなと思ったのです。

426 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:20:59 ]
まあそう突っかかるような質問ではないよな。
2005なら可能だよ確か。
俺はそういうのくだらない仕様だと思うからやったことはないけどね。

427 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:24:46 ]
>>425

>明確に「プロパティ設定ではできません」みたいな説明がなかったので・・・
おま・・・・・
ありえないものをどのように説明するんだと・・・・
やれるとしたら中間ファイルを書き換えるとかの手法くらいだ
まずありえないけど

極端な話、自分が頭で思ったことをソフトにしてくれるツールありませんか?
というような疑問や質問があって
その答えを探しているようなもんだと思うぞ
まともにいけば質問すらないだろう・・・・?

>昔いじってた特殊な開発環境だと、そういうプロパティがあったので
何の環境なのかkwsk
一度そういう環境って見てみたい


428 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:28:57 ]
>>427
だから悪いけど足りないのはお前さんの方だよ。
>>425が想定したような機能が存在することを仮説するのはそんなにおかしなことじゃない。

まあ、「お前自分で全然調べてないだろう」感は否めないがね。



429 名前:デフォルトの名無しさん [2007/05/29(火) 19:39:46 ]
>>427
機嫌でも悪いのか?
まぁそう突っかかるなよ

>>425
まぁVB.NETなら大人しくアプリケーション構成ファイル使ったほうが吉と思われ

430 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 20:46:52 ]
外部にファイルを作らずに…とは言ってないんだから、
プロパティの実装によってはプロパティに値を設定するだけで設定を永続化させるのも可能
ありえなくはないわな

431 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 21:49:33 ]
最近、あっちこっちで暴れてるヤツが1名いるようだな・・・

432 名前:デフォルトの名無しさん [2007/05/29(火) 22:04:40 ]
>>420
MaximizeBoxとMinimizeBoxをFalseにして、
BorderStyleをFixedSingleにすればいいんじゃね?

433 名前:デフォルトの名無しさん [2007/05/29(火) 22:34:28 ]
>>432
それは、そもそも可変不可では?

434 名前:デフォルトの名無しさん [2007/05/30(水) 15:11:52 ]
Webプログ板みてもASP.NETのスレがないので、ちょいとここで聞きたいのですが。

MicrosoftからExpression Webという新しいWeb作成ソフトの紹介メールがきたんですが
ホームページビルダー持ってる人は今なら68%オフで買えるそうです。aspxファイルとの連動
も良いと書いてあります。自分は今までJava,PHPでWebシステムを構築してきましたが、
今度からASP.NETもやらなくちゃなりません。このソフトは買ったほうがいいですか?

435 名前:デフォルトの名無しさん [2007/05/30(水) 18:41:34 ]
>>434
とりあえずASP.NETのエディタ先使って
で満足できなければ試用してみれば?

436 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 02:23:15 ]
値型の代入も、参照型の代入も = で
こんな糞な言語仕様をユーザに提供して、
自分たちは使ってないんだろな。

437 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 02:29:57 ]
(゚д゚)ハァ?

438 名前:デフォルトの名無しさん [2007/05/31(木) 11:04:19 ]
>>436
じゃぁどうするんだ・・・?
C#とかで作ってるマイクロソフト製のソフトもあるぞ?



439 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 11:53:27 ]
いやいや、つか多くの言語はそうだろ

440 名前:434 mailto:sage [2007/05/31(木) 12:50:30 ]
>>435
はっ。ありがとうございます。自分はちょうど浮き金がそのくらいあるのですが
交際費のためにとっておく(貯金しておく)か、それを買うか迷ってます。交際費はデートではないです。念のため。

一応、貯金しておくかな?

スレ違い、ありがとうございました。

441 名前:デフォルトの名無しさん [2007/05/31(木) 14:25:37 ]
VB.NET 2005で初歩的な質問なのですが

ある画像をBitmapオブジェクトで取得したい場合

Bitmap.FromFile("hogehoge")
で取得してもImageを取得するようになっています。

現在は
CType(imageObject,Bitmap)
で変換をかけているのですがなにかもっといい方法はないでしょうか?

442 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 14:42:15 ]
Bitmapクラスのstringをひとつだけ引数にとるコンストラクタを使えば?

443 名前:デフォルトの名無しさん [2007/05/31(木) 14:58:18 ]
>>442
あ・・・・
そうですね 今見たらFileName引数に取るのがありました
見落としてました お手数をおかけしました

444 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:09:02 ]
VB.NETを使用してプログラムの作成をしているのですが
スプラッシュウィンドウで画像を動かすにはどうしたらいいのでしょう?

445 名前:デフォルトの名無しさん [2007/05/31(木) 15:19:05 ]
>>444
具体的に動かすというのは・・・どう動かしたいんだろう???

ピクチャボックスに画像表示させて
タイマのイベントの中でLocationを変更させるとかでは解決できないような事?


446 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:20:05 ]
さすがにLocationはお粗末過ぎるだろ
自分で描画しろ

447 名前:デフォルトの名無しさん [2007/05/31(木) 15:35:43 ]
>>446
まぁw そうなんだけど 何をやりたいかも見えてこなかったのでそう言ってみた
反省はしていない


448 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:38:59 ]
アニメーションGifをスプラッシュウィンドウのPictureBoxに貼り付けておく



449 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:44:08 ]
この機会にWPFに乗り換える

450 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 16:02:24 ]
>>449
横レスだが

あ〜 いいよねぇ・・・つかいてぇわ
FrameWork3.0導入できる所って うらやましい

ウチはまだ検証段階だからって業務で使わせてくれない・・・


451 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 17:41:15 ]
>>445
タイマのイベントの中でLocationですね。
調べてみます。

>>448
それは簡単そうですね。
ただGIF画像の作り方がわからないので
こちらも勉強が必要みたいです。

452 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 17:44:10 ]
回答ありがとうございます。

具体的な目的が無く
かっこいいスプラッシュウィンドウを作りたい
という程度なので

簡単で「かっこいい」スプラッシュウィンドウの作成方法があれば
教えていただけたらうれしく思います。


453 名前:デフォルトの名無しさん [2007/05/31(木) 18:03:37 ]
>>452
まぁありきたりだけど
画像とプログレスバーでXP起動画面っぽいのはどう?

その前後でスプラッシュフォームのPacity(つづり忘れた)を増減させて

透明→表示→プログレスバー増加→透明→起動フォーム表示

とかだったら結構ラクだと思うけど


454 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 23:11:07 ]
透明?

使いたい画像があってそのロゴを
シャキーンて感じに出したいのですが

えと、画像が横からスライドして登場したり
だんだん大きくなったりとか(フェードイン?)

説明わかりにくくてすみません

455 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 23:28:02 ]
透明はフェードインとかのイメージだと思うよ。
って大きくなっていくのもフェードインというのか?そうか…


456 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:04:30 ]
透明といえば

フォームの背景色を透明にすることは可能でしょうか?

プロパティのBackGroundColor(?)でWEBタブのI何とか
を選んでもエラーがでてできません。

457 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:49:50 ]
結論:スプラッシュは不要

458 名前:デフォルトの名無しさん [2007/06/01(金) 02:26:08 ]
呼び出し先のDLLがアンマネージドの場合、
そちらのDLL内で使用されたメモリは
.NET Frameworkによって自動的にGCされるのでしょうか?

下記のような構成の場合、
@やAはGC対称だが、Bの場合、
B内で確保されたメモリがB内で明示的に開放されない限り、
GCされずに確保されっぱなしと考えているのですが、
その理解で問題ないでしょうか。


VB.NETのEXE  @
↓↑
C#のDLL    A
↓↑                  ↑.NET系の言語
-------------------------------------------------
↓↑                  ↓非.NET系の言語
普通のCのDLL B

また、Bがメモリをリークしているか否かを確認するには
呼び出す直前、直後に

Process.GetCurrentProcess.WorkingSet

仕掛ければいいのでしょうか
(このやり方だと、カレントプロセスの使用メモリが合算されちゃうのですが、
 直後−直前の差分がBのメモリ使用量になるかと思うのですが。。。)

※すれちがいかも知れませんがアドバイスいただければ。



459 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 03:24:39 ]
DLL内で使用された解放されないメモリ、てのが分からん。
そんなんがあったらアンマネージドの世界が大混乱だろ。

直呼びだろうがP/Invokeだろうが
呼び出し側で解放が必要なメモリは呼び出し側で解放する。それだけだろ?

バッファを要求するAPIでMSDNにCallerはMemoryをFreeすることを
Requiredと書いてあるときは呼び出し側の.netでFreeすることがMustですよ?

WorkingSet からリークを判定しようなんて非現実的過ぎて
しょんべんもでないわ。


460 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 07:06:39 ]
そもそも.NETなのにリークが発生するのかと。
発生しないだろ、GCあるのにw

461 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 09:36:19 ]
あほ

462 名前:デフォルトの名無しさん [2007/06/01(金) 09:37:11 ]
横からスマソン。
>>459のいうとおり、確かに呼び出し元でメモリ確保したら責任もって解放するのが原則だ。

ただ、>>458

> 呼び出し先のDLLがアンマネージドの場合、
> そちらのDLL内で使用されたメモリは

っていってるから、たぶん呼び出された側のアンマネージドの中で
定義してるローカル変数アロックして、その後フリーし忘れたらどうなるのか
きいてんじゃないかい?

呼び出す前後のメモリ調べようとしてるから、
そういう意味なのかと思ったが。

はずしてたらすまん。エスパーじゃないんで。

463 名前:デフォルトの名無しさん [2007/06/01(金) 09:50:04 ]
つうかMarshalクラスでオブジェクトがComかどうか調べてReleaseつかって開放すればいいじゃん

464 名前:デフォルトの名無しさん [2007/06/01(金) 10:12:49 ]
>>459も460もちがうんじゃんw

465 名前:デフォルトの名無しさん [2007/06/01(金) 15:12:32 ]
Office2002のCOMを使用したプログラムは、Office2007のインストールされた
PCでも正常に動作するでしょうか?




466 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 15:24:07 ]
質問させてください。
環境はVB2005です。

DataGridViewで、例えば編集可能な列が2列あったとします(仮にカラムA、カラムB)。
この時、カラムAのセルに文字を入力したあと、同じ行のカラムBのセルにフォーカスを
遷移させたいのですが、勝手に入力したセルのひとつしたのセルにフォーカスが
遷移してしまいます。
どうにかして横のカラムBにフォーカスを遷移させられないでしょうか…。

どこかプロパティで指定できるのか、CellEndEditあたりのイベントに何か書けばいいのか、
探っているのですがさっぱりです。
わかる方いらっしゃいましたら、ご教授お願いします。

467 名前:デフォルトの名無しさん [2007/06/01(金) 15:32:22 ]
>>466
入力の終了はどうするの?Enterで移動することになるのかな?

それだったらKeyPressなりでKey引っ掛けて
現在編集中ののCellを取得し、そのRowとColumnのインデックスでも取得して
取得した現在のRow、ひとつ右のColumnのセルを指定してEditを開始してやればいいと思うよ

メンバで確か編集を開始するメソッドがあったと思うけど・・・・

最終列の場合はどうするかわからないけど、まぁどうにでもなるってこったww
説明ヘタですまないな

468 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 15:48:49 ]
>467
レスありがたふ。

現状
編集可能なセルの上で何かキーを押す→編集モードになる
文字入力してEnterキーを押す→編集モードが終り、下のセルに(勝手に)フォーカス遷移

編集モードになっていないときはKeyPressやらKeyDownでEnterが拾えるんだけども、上記の場合だと拾えない…
むむむ。
もう少ししらべてみまっしゅ。



469 名前:デフォルトの名無しさん [2007/06/01(金) 16:26:48 ]
>>468
ちょっwwwwww
ちょっと調べてみてたらMSDNに答えあるじゃねぇかwwwwww
ttp://msdn2.microsoft.com/en-us/library/system.windows.forms.datagridview.processdatagridviewkey.aspx


470 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 16:50:10 ]
>469

471 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 16:51:18 ]
>469
途中で書き込んでもーた(´・ω・`)
継承したコントロールつくるしかないのかー・・・・
ありがとう。

472 名前:デフォルトの名無しさん [2007/06/02(土) 15:36:45 ]
Property の Attribute 設定においては条件分岐などが使えるとうれしいのですが
可能でしょうか?例えば、何かの場合にはこの項目は表示し、別の場合には表示しない、
などができると助かるんですが・・・。

473 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 15:51:46 ]
>>472
「例えば」が何の例示にもなってない。
もっと具体的に。


474 名前:デフォルトの名無しさん [2007/06/02(土) 16:14:06 ]
>>473

そうですね、いくつかのオブジェクトで共通の項目があるとして、
しかし、何かの条件が立っているときは、それを編集不能にしたい、
つまり PropertyGrid で Disabled にしておきたい、などですね。

もし Attribute で If文みたいな条件分岐や、オブジェクトのインスタンス
フィールドによるBoolean値 が使えなければ基本的に Attribute での
処理は不可能なのだと思います。そういう理解でいいでしょうか。

その場合は他の方法を考えて見ます。

475 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 16:16:31 ]
>>474 > Disabled <- これは ReadOnly(True) のことです


476 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 16:18:11 ]
PropertyDescriptorでなんとかなるんじゃね?

477 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 17:28:07 ]
>>476
どうもです、PropertyDescriptor で オブジェクトの
インスタンスフィールドによるBoolean値が使えるかどうか
調べてみます。

478 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:24:36 ]
>>472
なんか質問が釈然としないなあ。
まずコンポーネントまたはFormのコントロールの話なんだよね?

その自作のコンポーネントまたはコントロールをFormに貼り付けた時の、
デザイナのプロパティグリッドの表示を動的に変化させたいってこと?

そうなら無理な気がするし、そもそもそんな必要もないのでは。
プロパティグリッドの表示の制御って属性で行うと思うんだけど、
属性のプロパティって実行時に変えられたっけ?

プロパティの説明で「この値はXXがOOの時には無効です。」と表示した上で、
必要なら変更を無視するコードを書けばそれで必要十分だと思う。



479 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:37:22 ]
>>478
>プロパティの説明で「この値はXXがOOの時には無効です。」と表示

するのは今それでやっていました。

まあそうなんですが、ReadOnly(True) の True のところに、
Boolean型の論理式を入れて制御できないものかと思ったのです。

やってみるとどうもインスタンスフィールドを使うとダメだといってくるので
やっぱり不可能なのかなと思ったので、もしかしてどなたかやった方は
おられないかと思いまして・・・

また調べてみますが、ダメであれば別の方法考えてみます。

480 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 21:16:59 ]
別の方法って、プロパティグリッドを制御する方法が(コンパイル時に決定する)
属性のプロパティの値以外に用意されてないとしたら不可能でしょだから。

だからそんなにどーしても変えちゃダメ、ってプロパティーなら、条件次第で
変更キックするようなコード書けばいいだけじゃん。
俺はうっとうしいと思うけど、必要ならメッセジボックスでも出してさ。

481 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 21:58:18 ]
属性は型情報なんだから、特定のインスタンスのフィールドがどうこう考えてる時点でおかしいと思えよ

482 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 01:43:00 ]
最近見かける(´・ω・`)←これの
口の部分ってどうタイピングすれば出るんだ?

483 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 02:15:06 ]
オメガでおk

484 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 02:22:07 ]
>>483
(´・Ω・`)サンクス

485 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 03:56:42 ]
>>483
(´・λ・`)サンクス


486 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 07:57:45 ]
↓この書き方ってセンスが無いでしょうか?行によってカンマから始まったり、そうでなかったり・・・
Private Sub Test(a1, a2 _
, a3, a4, _
a5, a6 _
, a7, a8)



487 名前:デフォルトの名無しさん [2007/06/04(月) 11:14:53 ]
ない

488 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 11:25:34 ]
カンマは前の要素にくっつけるもんだろ。



489 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 11:52:16 ]
偶数行に特別な意味を持たせたいのならば、ないこともない

490 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 12:56:46 ]
>>479
.NET 2003 でやろうとして挫折した覚えが…
そのときは結局、取得なら
TypeDescriptor.GetProperties(オブジェクト).Item("プロパティ名").Attributes
でできるけど、AttributeCollection 自体が ReadOnly なんで
動的には変更できない、という結論に。
だが、君ならきっとやれる。頑張ってくれ。そして教えてくれ。

491 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 17:24:46 ]
それは方向が間違っとる
デスクリプタカスタマイズしても動的に読んでくれないと意味ないし。


492 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 00:36:57 ]
マクロで頑張ってVSを操作すればできそうな気がする
気がするだけ

493 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 01:22:18 ]
それはただの気のせい

494 名前:デフォルトの名無しさん [2007/06/05(火) 22:46:12 ]
携帯から失礼します
SQLの質問です

Sqlコネクトストリングを
"DataSourse = .\EXPRESS"な感じで、
ローカル\EXPRESRを指すとします

その時に、例えば、カレントのサーバーを"AAA"と設定して、
先ほどのコネクトストリングを使用して
"AAA\EXPRESS"を指すことってできるでしょうか?

よろしくお願いします

495 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:50:49 ]
>>494
やってみてダメならまたおいで

496 名前:デフォルトの名無しさん [2007/06/05(火) 23:13:15 ]
すみませんが教えてください。お願いします。

イミディエイト・ウインドウで、"?" の後ろに、オブジェクト変数をタイプして
エンターすると、オブジェクトのパラメータがダーッと出てくるんですが、
最後まで出ないで
< 詳細... (486 のアイテムの最初の 100 を表示しています。) >
となって終了します。これを全部出すにはどう操作すればいいでしょう?

よろしくです。

497 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 00:02:13 ]
直前に処理したメソッドの内容を無効にして、一つ前状態に戻すアンドゥーの様な
機能を持つボタンを作りたいのですが、どうすればいいでしょうか?

498 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 00:14:21 ]
直前の操作を覚えていれば、逆操作できるだろ



499 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 00:15:27 ]
動作をスタックにしていれとく
戻したらこんどはRedoのスタックにいれる

500 名前:最凶VB厨房 mailto:sage [2007/06/06(水) 00:32:03 ]
>>497
あらかじめ処理する時に、
変更対象のデータの変更前と変更後を記録しておく。
その記録から、変更後の状態から変更前の状態に戻す。

処理手順の記録も方法の一つ。最初の状態からどんな処理をしたのか
手順を記録しておく。
その記録から最初から最後の処理直前まで処理をして
元に戻す。

前者はExcelちっくな表。後者はお絵かき。を想定。

501 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 05:03:57 ]
>>498-500
レスありがとうございます。よくわからないけどいろいろ試してみます


502 名前:デフォルトの名無しさん [2007/06/06(水) 06:59:42 ]
>>497
覆水盆に帰らず

503 名前:デフォルトの名無しさん [2007/06/06(水) 10:45:05 ]
プリンタの一覧を取得したく、以下のプログラムを組みました。

For Each p As String In Printing.PrinterSettings.InstalledPrinters
Debug.WriteLine(p)
Next

しかし、ネットワークプリンタで問題が生じています。
「\\マシン名\プリンタ名」で取得したいのですが、
「自動 プリンタ名 (マシン名 上)」の形式で取得できてしまいます。

ネットワークプリンタを「\\マシン名\プリンタ名」の書式で取得する方法はないのでしょうか?

宜しくお願いいたします。


504 名前:デフォルトの名無しさん [2007/06/06(水) 14:14:08 ]
初めて質問します。VB6の時、msgbox が表示されたときに、
CNTL + BREAK でデバッグモードに移行できたのですが、
VB.NET ではできません。なんか方法がありますか?


505 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 14:21:17 ]
あります

506 名前:デフォルトの名無しさん [2007/06/06(水) 14:39:24 ]
>>503

507 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 14:41:14 ]
>>503
それで普通に
\\マシン名\プリンタ名
で出るけどな。
「自動 プリンタ名 (マシン名 上)」

508 名前:504 [2007/06/06(水) 15:01:05 ]
>>505
すいませんが、教えてください。




509 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 15:06:48 ]
>>508
メッセージボックスが出たらその行にブレークポイント仕掛ければいいんじゃね?

510 名前:504 [2007/06/06(水) 15:11:59 ]
それをせずに、したいのです。VB5では当然のように、できてましたから。

511 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 15:32:46 ]
>>504
IDE に戻って Ctrl+Break では不満なのか。

512 名前:504 [2007/06/06(水) 15:56:09 ]
>>511
知らなかった。そんな方法でできたとは・・・  ありがとう。

513 名前:デフォルトの名無しさん [2007/06/06(水) 21:06:23 ]
なぜ、DB書き込む時のADDNEW  がなくなったんですか?
VB6でも 皆、使わないんですか?


514 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 21:15:38 ]
は???
>>513
NewRowがあるじゃないか????
ん???
イミフ

515 名前:デフォルトの名無しさん [2007/06/06(水) 21:59:15 ]
うへへww

516 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 06:54:44 ]
Visual Studioのマクロも子のスレでいけるんでしょうか?

517 名前:513 mailto:sage [2007/06/07(木) 09:31:44 ]
>>514
ADDNEWがいいんです。

518 名前:513 [2007/06/07(木) 09:35:58 ]
すまん。知らなかった。INSERT してた。



519 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 20:40:15 ]
なんか最近廃れてるね。

[質問1]
Nullable(of T)の型に別名をつける方法って何かないかな?

[質問2]
Windows Form用の自作の複合コントロールAがあるとして、
それを継承するコントロールA'にさらにコントロールやコンテクストメニューを追加すると、
ビルドも実行も問題ないのにA'をデザイナで開くことができなくなることがあるけど
(このとき、「ClickはReadonlyなので書き込みできない、ような意味の例外メッセージがデザイナに
表示される)こういう場合もしAに何か問題があるとしたらどんな可能性があるでしょうか?

520 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 20:50:07 ]
>>519
[質問1]Imports NullableInt = System.Nullable(Of Integer)
[質問2]例を出せ

521 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:05:18 ]
>>520
[質問1] について
なるほどこういう場合もImportsが一応使えるのか、ありがとう。

でも、(いや俺の質問の仕方が悪いのですが)その方法だとNullableIntっていう別名は
ファイルスコープ(別のファイルからは見えない)になるよね?

例えばList(of T)なら、

Public Class IntList
Inherits List(Of Integer)
End Class

のように形だけの継承をしてList(Of Integer)にIntListという別名をつけることができるわけだけど、
同じようなことがNullableでもできないかと思いまして。

[質問2] について。
まあおっしゃるとおりなんですが、そういう問題が起こってる複合コントロールは
業務で使ってるんでコード晒せないんですよ申し訳ない。

522 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:21:42 ]
なんでC#だと言語レベルでNullableをサポートしてるのに
VB.NETはサポートしてないんだろうな
逆ならわかるけど

523 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:27:18 ]
なんでわかるのかわからない

524 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:40:03 ]
どうでもいいお手軽記法っぽいから
でもC#と違ってVB.NETはできるだけ記号を使わない方針のようだから
Dim i As Nullable Integer みたいにするんだったら意味ないと考えたのかな

525 名前:デフォルトの名無しさん [2007/06/08(金) 21:41:51 ]
javaで

ArrayList<Customer> arryCst = new ArrayList<Customer>();
while(rs.next()){

Customer objCst = new Customer();
objCst.setStrCode(rs.getString("code"));
objCst.setStrYomi(rs.getString("yomi"));
objCst.setStrName(rs.getString("name"));

objCst.setStrPost(rs.getString("post"));

objCst.setStrAddress(rs.getString("address"));
objCst.setStrTel(rs.getString("tel"));

arryCst.add(i,objCst);


i++;
}

見たいな事を.NETでやりたいんですが。。

あるクラスのインスタンスを作ってそのフィールドにDBからとってきた値を格納。
それを配列にしてほかのクラスに渡すようなことをしたいんです。
どうすればいいでしょうか。

526 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:52:18 ]
何がわからないのか
そのように書け、としか

527 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:53:32 ]
ArrayList→List


528 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:03:53 ]
>のように形だけの継承をしてList(Of Integer)にIntListという別名をつけることができるわけだけど、
やめてくれw




529 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:10:11 ]
現在、VB.NETでClickOnceを使用し業務を作成しているのですが、
ClickOnceを使用した場合にクライアントPCのFDアクセスは可能でしょうか?

やれると思うのですが、確証が取れないのです誰か教えてください。

530 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:14:34 ]
なんでテストしないの?


531 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:15:09 ]
誰かができるといったら確証が持てるわけ?


532 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:15:51 ]
ってかできないと思う理由は何?


533 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:17:40 ]
>>528
別にごく普通の手法だと思うけど。。

534 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:19:48 ]
それはおかしい

535 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:19:58 ]
>>529
確証は自分が調べてやってみてから聞けよ
そうやってなんでもネットで調べようとするからカスになるんだ

536 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:31:09 ]
>>533
ネタだよね?ね?

537 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:43:41 ]
>>536
別に君がそう思いたければ思えばいいと思うよ俺は止めない。
内心馬鹿だな、とは思うが。

少なくとも俺は外部に公開するときに

Public Funtion Hoge() as List(of MyStruct)

みたいなことは不恰好だし面倒だしやってられない。
すれにList(of T)ってのは後々案外機能を拡張したくなったりするから
それに備える意味でも都合がいいしね。


538 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:06:10 ]
まあ自分が使う分にはいいんじゃない



539 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 00:23:56 ]
別名つけるのにそんなことしたら不便になる面もある。
まあ、その辺は割り切ってやってしまうってのもありだとは思うが。

やらないのは馬鹿みたいなのは本気か?と思うぞ。


540 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:01:11 ]
>>539
すまん・・・俺の日本語の読解力が足りないせいか理解しづらい文章だ

541 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:16:06 ]
やりたけりゃやりゃいいが、
それによる弊害もあるんだから、
やらないのは馬鹿みたいな言い方するやつは
ほんとに分かってやってるのか?
と疑問だってことだな。


542 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:24:59 ]

              ら
  な       い
             か?

543 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:28:25 ]
>やらないのは馬鹿みたいな言い方
ずいぶんとまた被害妄想的だねえ。
微妙に(いや本当はかなり)ニュアンス違わないか?

>>537にあえて言葉を付け加えるとすれば、

Public Class IntList
Inherits List(Of Integer)
End Class

これに弊害を感じるとしたらむしろそういう自分のセンスにこそ弊害を感じるべきだろう。
継承の1特殊形態(それも最単純な)に過ぎないわけで、これに弊害があるなら
継承なんて怖くて使えないだろう。

544 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:29:04 ]
>>537
Integerはやめてって言う意味だと思う。

内心馬鹿だな、と思うのは内心だけにしたらどうかと。


545 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 07:35:39 ]
>継承の1特殊形態(それも最単純な)に過ぎないわけで、これに弊害があるなら

本来同じ意味であるはずの元のListと逆方向の互換性がなくなるとか、
FindAllとかのコレクションを返すメソッドの互換性がなくなるとか
いろいろ弊害はあるわけだが。


546 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 07:46:36 ]
>FindAllとかのコレクションを返すメソッドの互換性がなくなるとか
いや、互換性じゃなくて、期待通りに動かない、てことだな。


547 名前:デフォルトの名無しさん [2007/06/09(土) 10:14:05 ]
Public Class Form1
2: Inherits System.Windows.Forms.Form
3:
4: #Region " Windows フォーム デザイナで生成されたコード "
5:
6: Public Class Test
7: Public v As Integer
8: End Class
9:
10: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
11: Trace.WriteLine(DateTime.Now)
12: Dim count As Integer
13: count = 10000000
14: Dim test(count) As Test
15: Dim i As Integer
16: For i = 0 To count - 1
17: test(i) = New Test()
18: test(i).v = i
19: Next
20: Dim sum As Long
21: For i = 0 To count - 1
22: sum = sum + test(i).v
23: Next
24: Trace.WriteLine(DateTime.Now)
25: End Sub
26: End Class


某HPからパクって来たソースです。
これってform classの中でpublic classとしてtestというものを宣言しているんでしょうか。
javaだとありえないんですけど、.netだと許されるんでしょうか


548 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 10:15:11 ]
>>547
お前の存在そのものがあり得ないと思う



549 名前:デフォルトの名無しさん [2007/06/09(土) 10:23:18 ]
殺すぞテメ

550 名前:デフォルトの名無しさん [2007/06/09(土) 10:39:18 ]
殺人予告です!!!!



Try

殺人計画
包丁を足に落として自爆
いてぇえええええええええ


Catch Ex asException
 殺人前に一回オナニーしたいという性衝動の例外が発生しました
 DoTheオナニー

finally
もう殺人なんてどうでもいいや

end try

551 名前:デフォルトの名無しさん [2007/06/09(土) 10:45:18 ]
asException
でコンパイルエラーとなり、
殺人計画頓挫

552 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 10:47:53 ]
>javaだとありえないんですけど、.netだと許されるんでしょうか
何がありえないのか明確に。


553 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 10:56:37 ]
vb.net検索結果820万件
vb.net activereports 49100件

java検索結果3億以上
java + eclipse でも4500万以上
java eclipse struts 169万件

こんなマイナー言語もうやりたくねーー
わかりにくいHPかっ飛ばしてわかりやすいHP探すとか100%無理だし、本も売ってねーし
考えても答えでねーし。しかもスゲー忙しいからがんばってとか
さらにわけのわかんねー10万円以上するつーるつかって、.netでいっぱいいっぱいなのになんでわけのわかんねーツールまで持ち出す
言語知識0でいきなり現場投入とかわけわかんねえええ

適当モード確定
もうどーでもいいや、シネとか言ってごめんね
さようなら

554 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:03:04 ]
クラスの中にもう一個クラス宣言することが許されるのかということ


javaちっくに別モジュールにクラス作ってそれほかモジュールから呼ぼうとしたらインスタンスがドーのこーの言われて
出来なかったので調べてただけです。
インスタンス作ろうにもnew クラス名() の()が.net側で勝手に消されてしまう。









555 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:09:43 ]
>>554
おまえその様子じゃJAVAもまともに使えてないと思うんだ
使われてるレベルだと思う


556 名前:デフォルトの名無しさん [2007/06/09(土) 11:10:25 ]
>>554
試しにソース晒してみろよ?

557 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:19:05 ]
>クラスの中にもう一個クラス宣言することが許されるのかということ
いつのJavaだよ


558 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:25:21 ]
Java だと無名クラスなんてもんすらあるのにね



559 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:36:26 ]
ソースさらしたくても会社にしかないので。大体こんな感じです

public class person

private name as string
private kana as string
private age as integer

public sub setPerson(byval name as string,byval kana as string,byval age as integer)

this.name = name '---------thisはmeだったかも、覚えてないです---------
this.kana = kana
this.age = age
end sub

end class

別もじゅーーるのフォームかなんかで
〜前略

person ps =new person '-------かっこつけたくても自動で消えます
ps.setPerson(aaa,bbb,111)

コンパイルは通ってもインスタンスどーのこーのでエラー





javaは使いこなせてません、ただ見たことなかっただけですクラス中にクラスを作る。



560 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:40:48 ]
>>559
結局何が言いたい(質問したい)んだい?
ただ馴れ合いたいだけなら個人的には他所いってやって欲しいね。

561 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:45:35 ]
いったいそれは何言語だw

ちなみにVBでは引数なしのメソッド呼び出しの()は省略できる。
New だとIDEが勝手に消してしまうので、ほっとけばいい。


562 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:46:22 ]
Javaの方がはるかに内部クラスだらけじゃないか
イベントハンドラを実装するために内部クラスを定義しないといけない仕様だぞ

563 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:46:29 ]
>ただ見たことなかっただけです

見たことない=ありえない。
おまえは神様かっ


564 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:55:54 ]
使ったことなかったですわ。('A`)
イベントハンドライベントリスナーのことでいいんですかね
それだったら使ったことありましたが1個1個implementsして使ってました。
無名とか内部クラスとかは知りませんでした。



.net書き方すらわからん初心者です。
板よごしなのでこれできえます。




565 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 12:01:17 ]
逆に凄いなw

566 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:45:40 ]
もうほっとけよ

567 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:36:42 ]
vb2003です。くだらない質問ですがお願いします。
mdiの子フォームでキーボードを叩いた時、親フォームのkeydownイベントを走らせないように
したいのですけどどうすればいいですか?

568 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:58:25 ]
親のKeyPreview = Falseにする。
する、というかデフォルトでFalseなはずだけど。
自分でTrueにしておかしいおかしいって言ってるとしたらアホ丸出しだね。



569 名前:567 mailto:sage [2007/06/09(土) 18:25:05 ]
>>568
ありがとうございます。確認してみます。

570 名前:デフォルトの名無しさん [2007/06/10(日) 13:58:04 ]
vb.net2005でクラス同士が完全に等しいか比べるにはどうしたらいいのでしょうか?
equalsを使用してもうまくいきません

571 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:02:50 ]
インスタンスじゃなくてクラスが等しいのか。
普通見ればわかるんじゃね?

572 名前:570 mailto:sage [2007/06/10(日) 14:04:13 ]
>>571
すいません
インスタンスです

573 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:08:28 ]
何をもって完全に等しいとするのかをはっきりさせんといかんな。

574 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:11:18 ]
>>570
愚問だと思うよ。

そもそもそういう質問をするのはクラスがよく分かってないからだろうから
真面目に勉強しろ、としか言いようがない。

c#になるけど、アスキーから出てるartonって人のc#の本がその辺り
分かり易く掘り下げてるから読んでみるといいと思う。

575 名前:570 mailto:sage [2007/06/10(日) 14:15:08 ]
>>573
なるほど!!!
何をもって完全に等しいかを考えればよかったんですね!!!!!

中に入っている変数の値、全てが完全に等しいものを探しているので
一つ一つ比較していけばおkですね!


arraylistとか型がobject型のものは完全に等しいかを考えるのがむずかしいですね

576 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 14:32:07 ]
思而不学則殆そのものだな。
まあ人事だからどうでもいいけど

577 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:44:42 ]
Wubi - Ubuntu installer for Windows
pc11.2ch.net/test/read.cgi/software/1181387720/l50

578 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:39:47 ]
コピペ君って馬鹿だな、まで読んだ。



579 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 06:18:32 ]
ここは初心者馬鹿にしてストレス発散するスレだな。


580 名前:デフォルトの名無しさん [2007/06/11(月) 07:08:15 ]
Form1で動画を再生(winmm.dllのmciSendStringAのopen、window、playを使って)→Form1をクリックしたら停止
というのを実現したいのですが、停止がうまくいきません。
Form1の動画以外の場所をクリックした時は停止するんですが、動画をクリックした時は停止しません。
動画をクリックした時も停止させる方法はあるのでしょうか?
ちなみに↓が停止のコードです。

Dim FileName As String = """C:\1.avi"""
End SubSub Form1_Click(省略) Handles Me.Click
mciSendStringA("close " & FileName, "", 0, 0)
End Sub

581 名前:580 [2007/06/11(月) 07:11:38 ]
すみません、間違えました。
↓です。

Dim FileName As String = """C:\1.avi"""
Sub Form1_Click(省略) Handles Me.Click
mciSendStringA("close " & FileName, "", 0, 0)
End Sub

582 名前:デフォルトの名無しさん [2007/06/11(月) 09:18:41 ]
フォーム1に同じデリゲートのプロシージャ作って
動画のクリックイベントに停止処理のプロシージャをAddhandlerしたら終わるんじゃないの?


583 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 10:39:17 ]
動画をクリッコしたとき発生するイベントに
mciSendStringA("close " & FileName, "", 0, 0)
って書けばいいだろ。

584 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 10:52:16 ]
栗っ子

585 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 11:47:55 ]
VB.NETでは「メソッド」と「プロシージャ」の言葉はどう使い分けてるの?
プロシージャ : クラスかモジュールに定義されたSubかFunction
メソッド : クラスに定義されたプロシージャ
でいいの?

586 名前:580 [2007/06/11(月) 14:37:12 ]
めちゃくちゃ低能な質問ですが、

mciSendStringA("window " & FileName & " handle " & Me.Handle.ToString, "", 0, 0)

これで動画の表示先をForm1にしているのですが(MeはForm1)、この場合の動画のクリックイベントはMe.Clickではないのですか?

587 名前:デフォルトの名無しさん [2007/06/11(月) 17:13:24 ]
いや・・・・それいぜんに

Dim FileName As String = """C:\1.avi"""
>>End SubSub Form1_Click(省略) Handles Me.Click
mciSendStringA("close " & FileName, "", 0, 0)
End Sub

>>つけてる行のソースはありえないから

ヘタな小細工せずにそのまま貼り付けろヤ


588 名前:デフォルトの名無しさん [2007/06/11(月) 17:19:45 ]
データ個数32768個(可変)、チャンネルが8ch(可変)のデータがテキスト形式であります。
チャンネルはタブ区切り、データ個数は改行区切りです。

   1ch   2ch   3ch   4ch  …
1   0.5    0.7   0.8   0.9   …
2   0.6    0.12   0.13   0.5   …

32768

という感じの並びです。これを2次元配列に格納してそれぞれのチャンネルの
解析に入りたいのですが、どうやって2次元配列に格納できるでしょうか?
Splitを使ってみたのですが、いまいち分からずに困っています。




589 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 17:24:33 ]
>588

590 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 17:35:56 ]
>588
きみのいう2次元配列ってのは
(データ番号,チャンネル番号)でいいのかな?


591 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 17:37:00 ]
Dim hoge(,) As String
For i As Integer = 0 To データ数 - 1
データ = (i+1)行目のデータ
Dim hogehoge() As String = データ.Split(Chr(Keys.Tab))
For j As Integer = 0 To hogehoge.Split(Chr(Keys.Tab)).Length - 1
ReDim Preserve hoge(i, j) = hogehoge(j)
Next
Next

592 名前:588 [2007/06/11(月) 17:45:31 ]
レスありがとうございます。
2次元配列はできたら(チャンネル番号、データ番号)がいいですが、
解析はどちらでもできると思います。

ReDim Preserve は処理の速さはどうなんでしょう?


593 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 17:52:05 ]
自分で試してみろ

594 名前:580 mailto:sage [2007/06/11(月) 18:21:32 ]
<<587
<<580は間違いなので、<<581で訂正していますが…。
とりあえず、全体です。

Public Class Form1

Dim FileName As String = """C:\1.avi"""

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer

Function SendString(ByVal cmdString As String) As Long
SendString = mciSendString(cmdString, "", 0, 0)
End Function

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
SendString("open " & FileName & " alias f1")
SendString("window f1 handle " & Me.Handle.ToString)
SendString("play f1")
End Sub

Private Sub Form1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Click
SendString("close f1")
End Sub

End Class

ケータイで書き込んでいるので、見づらかったらすみません。
今パソコンから書き込めないんです。

595 名前:580 mailto:sage [2007/06/11(月) 18:31:13 ]
>と<を間違えたorz

596 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:40:22 ]
>>591
やめてくれ

597 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:48:59 ]
参照は4バイトとして
最後には4×8×32768=1MB
平均すると0.5MB
0.5MB×8×32768=128GB
つまり128GBものメモリを確保解放しまくるわけだ。
あほかと言いたい。


598 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:57:24 ]
その けいさんは おかしい



599 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 19:00:18 ]
あれ、たしかにおかしいな。
ってかこれ正しく動くのか?


600 名前:デフォルトの名無しさん [2007/06/11(月) 23:32:52 ]
SqlCommand.CommandTimeoutでSQLのコマンド実行のTimeoutを設定できますが
これのデフォルト値である30秒という値を変更する方法はありませんか?
SqlCommandを使うところ全部でCommandTimeoutを設定するコードを書かずに
設定ファイルで変更できないものかと思っているのですが

601 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 01:28:11 ]
コネクションストリングにかけば?
つうか、いくらでもあると思うが…

602 名前:デフォルトの名無しさん [2007/06/12(火) 04:52:12 ]
>>462

少し気になったので、相乗りで質問、というか、低脳なコメントを。

以前、VB.NETからアンマネージドのCのDLLを呼び出してたのだが、
そのCのDLLの内部に
ローカル変数に対しメモリーアロック掛けっぱなしというBUGがあった。

DLLを作成してたのは他社(仮にA社)だったのでソースも確認しようがなかったので
そんな障害があるとは自社ではまったく気づいておらず、
後日A社から申し出があって、不具合修正版のDLLを貰った、ということがありました。

それはそれで解決したので問題ないのですが、
もしA社が申し出なかった場合、自社では原因を掴むのが難しいと思い・・・

こんなときどうやって切り分けるのでしょうか。

>>458の言っているWorkingSetじゃ
プロセスのメモリ使用量だから
相手のDLLが使用したメモリ量だけ切り出そうと思っても
できないんじゃないかと思うのだが、、、。



603 名前:デフォルトの名無しさん [2007/06/12(火) 05:38:48 ]
>>597
たとい12使用しても最近のメモリは性能いいからもんだいない

604 名前:デフォルトの名無しさん [2007/06/12(火) 07:01:29 ]
>>601
MSDNのSqlConnection.ConnectionStringを見たところでは対応している
キーワードがないみたいです。Connection Timeoutキーワードは
CommandTimeoutとは別ですよね。他の載っていないキーワードがあるのでしょうか?

また、書き忘れましたが.NET Framework 1.1を使っています。

605 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 09:13:36 ]
>>597
文句をいうのはいいが、打開案も出さねばゴミだ

606 名前:デフォルトの名無しさん [2007/06/12(火) 09:14:04 ]
>>602
普通マネージドプログラムを書いてもらうものじゃないかな?
ウチはCOM使う場合、相手に依存するから検証されてないと保証できないですよ
みたいに言って逃げてる

そんな深い所まで調べる時間が無い

607 名前:デフォルトの名無しさん [2007/06/12(火) 12:09:01 ]
RadioButtonListなどを貼り付けたユーザーコントロールを作成しています。

RadioButtonListのListItemコレクションエディタを、ユーザーコントロール呼び出し側で、
操作したいのですが、よい方法ありませんでしょうか?


608 名前:デフォルトの名無しさん [2007/06/12(火) 12:43:20 ]
プロパティでそのままラジオボタンリストを公開するとか

public read only property RB as radiobuttonlist
return me.RadioButtonList1
end property

みたいなwwww
エディタのプロパティがネストしてやりづらいしすげぇダサいやり方だと個人的に思うけど
単にラジオボタンリストのコレクション公開すればできないか?




609 名前:デフォルトの名無しさん [2007/06/12(火) 15:46:32 ]
配列のソートで質問です。

例えば以下のような構造体を持つ配列があります

structure AAA
ID as integer
ID_2 as integer
Name as string
end structure

このデータを List(Of AAA) に挿入してあります。

AAAの中身

ID ID2   Name
1  2   AAAAAA  
3  2   BBBBBB  
2  3   CCCCCCC  
2  1   DDDDDD 

このList(Of AAA)
の中のデータを簡単に ID,ID2 の準でソートできないでしょうか?
1つならば簡単なのですが 条件が2つあるというのがネックです。

ICompareを独自に実装すべきでしょうか?

610 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:12:19 ]
>>609
msdn2.microsoft.com/ja-jp/library/w56d4y5z(VS.80).aspx

611 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:23:50 ]
>>609 >IComparable.Compare(x, y)
If (x.ID > y.ID) Then
Return 1
ElseIf (x.ID < y.ID) Then
Return -1
Else
If (x.ID_2 > y.ID_2) Then
Return 1
ElseIf (y.ID_2 < y.ID_2) Then
Return -1
Else
Return 0
End If
End If

612 名前:デフォルトの名無しさん [2007/06/12(火) 16:28:50 ]
>>610
>>611
ありがとうございます
実装できました!

実装は
IComparer(Of Hoge)
を使用してキャストが発生しないように実装してみました。


613 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 22:16:39 ]
>>609
そもそもどうやってここにデータを入れたんだw

614 名前:デフォルトの名無しさん [2007/06/12(火) 23:06:55 ]
>>613

構造体配列だから普通に入れたんじゃね?

615 名前:611 mailto:sage [2007/06/12(火) 23:48:46 ]
>>611の一行目はIComparer(Of AAA)の間違いね
>>612はわかってるみたいだけど

616 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 23:54:05 ]
>>614
そっかww

617 名前:デフォルトの名無しさん [2007/06/13(水) 00:20:05 ]
vb2005で、WMIを使ってUSBに接続されたHDとかの
PNPDeviceIDを取得するものを作ってるんだけど、
ドライブ名を指定して取得する方法ってありますか?

「E:」って指定してできるのかと思ったけど、Win32_DiskDriveは
ドライブ情報だからパーティションの情報なんてないし・・・
方法があったら、教えてほしいです

618 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 12:07:52 ]
VBSでGIF画像の色を置換したいんですが可能でしょうか?
RGB(R, G, B)でいうと、緑色(85, 127, 85) ⇒ 青色(85, 127, 170) に変換したいのです。
大量の画像を一度に処理したいので、フォトレタッチソフトでは手間がかかりすぎて・・・。
どうか、偉い人教えてください。



619 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 12:23:06 ]
What's VBS ?

Virus Buster Special ?

620 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 16:48:14 ]
VBScriptのことなんじゃね
ここはVB.NETのスレですよ
もちろんVB.NETなら間違いなく可能だけどVBScriptではどうかは知らん

621 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 19:25:07 ]
>>619-620
レスありがとうございます。
VBSってのは、VBScriptのことです。説明不足ですみません。
VB.NETだとどういう感じに書けばいいのでしょうか?


622 名前:デフォルトの名無しさん [2007/06/13(水) 20:50:09 ]
vb2005を使っているのですが質問をさせてください

例えばフォームにtextbox1〜textbox10まであったとして、それぞれに同じ処理を連続して実行したいのですが

for文を使うとして

for n=1 to 10

textbox(n)="文字列"

みたいなことを使用としたのですが、当然これを関数名として認識してくれませんでした
あらかじめ用意した変数に="textbox" & n みたいなことや
今の自分で他にも思いつく限りのことはやってみても同じでした・・・

こういったtextboxやpicutureboxなどのオブジェクト名(?)をfor文等で連続して実行させたい場合
そのオブジェクト名の連番の表記をどういった風にやるのが適切なのでしょうか?

ご助言をどうかよろしくお願いします。

623 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:00:15 ]
どうしてVB6上がりな人は素直に「コントロール配列が使いてえ」って言えないのかね。

ドトネトにコントロール配列はないから自分で配列なりListなり作って
やってくださいよ。

624 名前:デフォルトの名無しさん [2007/06/13(水) 21:49:14 ]
どうしてもコントロール配列みたいなことをしたければ、
#Region "Windowsフォームデザイナで生成されたコード  〜#End Region
のところに、
TextBox(1)=TextBox1
TextBox(2)=TextBox2
って書いていけばできるんじゃない?

625 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:57:08 ]
>>617
Win32_LogicalDiskRootDirectory
使えば何とかなるかも

626 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:24:03 ]
>>622
どぼんに配列に関する項目があるから、そこを参照。

627 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:40:06 ]
>>623
VB6なんて使ってませんが?

>>626
カンシャ

628 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:56:49 ]
まあVB6上がりであろうとなかろうと、そんな程度でいちいち人に尋ねてるようじゃ
先はないと思ったほうがいいな。



629 名前:デフォルトの名無しさん [2007/06/13(水) 23:00:27 ]
↑ ま た お ま え か

630 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:27:42 ]
>>628
PG以前に人間としての素質が無いとお見受けした

631 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:56:17 ]
>>625
RootDirectory の方はいらんな。
Win32_LogicalDisk の DeviceID がドライブレター。
で、そこから
Win32_LogicalDiskToPartition で論理ディスクに対応するパーティションの DeviceID 取って、
Win32_DiskDriveToDiskPartition でパーティションに対応する物理ドライブの DeviceID 手に入れて、
Win32_DiskDrive から PNPDeviceID
ってことになるんかな?
えらく泥臭くなりそうだけど。

Win32_LogicalDiskToPartition が Win32_LogicalDisk と Win32_DiskPartition の参照を持つはずなのに
何故か String で返ってくるな……。

632 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 02:07:17 ]
>>627

こいつ時々ここに沸いてるけど質問が素人くさい上に返答の仕方が房臭い
つうか、カスだな 間違いなく
もし業務でやっているならおれは真っ先にお前のようなやつはキル

633 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 11:29:38 ]
こ、殺すの?

634 名前:デフォルトの名無しさん [2007/06/14(木) 12:24:50 ]
PropertyのGet/Setで何も処理しない場合、変数をPublicにするので問題なし?
処理なしPropertyの利点が分からん。

635 名前:デフォルトの名無しさん [2007/06/14(木) 12:42:23 ]
>>634
セットもゲットもさせないってことでいいんじゃない?w


636 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:49:34 ]
>>632
↑w
ハイハイワロスワロス

637 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:52:59 ]
>もし業務でやっているならおれは真っ先にお前のようなやつはキル

だっておwwww

AA(ry

馬鹿同士言い合ってる時点で俺は真っ先にそのようなやつはry

638 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:54:56 ]
>>634
将来処理いれるかもしれないだろ?
先を見越した書き方しとけ



639 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:59:59 ]
>>638
そうなったらその時直せば済む話。

640 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:09:54 ]
そしたら参照してるとこ全部直さないといけないでしょうが
汚物は消毒

641 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:11:11 ]

二行目は気にしないでくれ。コピペミスだw

642 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:19:51 ]
大概、先に見越したところは想定通りにならないのが常だがなw

643 名前:634 mailto:sage [2007/06/14(木) 13:59:48 ]
いや、もう本当に悩む。
変数が40ぐらいのクラスを作らなければいけないのだが、
正直かなり面倒。
今までそう言われてきたから、必ずSet/Getを作ってきたけど、
代入/取得するだけの処理に意味有るのかと。

もちろん入力規則をする場合などには、利用するけどね。

どれだけ、将来的に役立つのか疑問。。
誰か、すばらしい利点を教えてだせい。

644 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:15:46 ]
>>643
フィールドにした場合virtual/overrideに出来ない。VBだとoverridableだっけか。
インターフェイスにフィールドを含めることが出来ない。
リフレクションなどでメソッドの呼び出しを横取りして何かの処理を行うことが
フィールドに対しては出来ない。
通信やCOM呼び出しなどでインターフェイスを実装することを要求しているのは、
処理の横取りが出来ないフィールドを排除するためである。

VB6のCOMのようにpublicなフィールドを暗黙でプロパティにしてしまうのもありだとは思うが、
VB.NETはC#の考え方に合わせたのだろう。


645 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:17:07 ]
上のような理由からだから値型はフィールドのままでかまわないよ。

646 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:27:22 ]
>>640
ん?プロパティにいちいち () つけるタイプ?
それなら修正して回らないと駄目だね。

647 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:46:58 ]
ん? C#メインだから()とか言われても分からないんよ

public int iUnko;

やっぱプロパティにしよう
public int Unko{
 get{}
 set{}
}

iUnkoをUnkoに書き換えなきゃなんないんじゃ?
プロパティの名前をiUnkoのままでもいいけど、
そうしたらクラス内部で使うときに全部プロパティ経由になっちゃうよ
やっぱ書き換えが発生するんじゃ

648 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:52:27 ]
VBにはリファクタの「フィールドのカプセル化」がないのか。そりゃ面倒だね。
C#のもフィールドをまとめてカプセル化する機能がないのでちょい不満だけど。



649 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:54:59 ]
>>647
ああ、いちいちプレフィックス付けるタイプでしたかw

650 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:06:40 ]
C#3.0では自動プロパティという機能がついて
public int Unko{get;set;}だけでよくなるらしい

651 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:35:08 ]
VBは引数付きプロパティが使える関係でプロパティに引数が必要な場合は( .. ) を付ける。
引数なしプロパティには()を付けても付けなくてもいいということらしい。
C#の場合は大小文字を区別するから、フィールドnameでプロパティはNameにするのが一般的だが、
VBの場合プロパティとフィールド名の命名にそういったルールや習慣はあるの?

652 名前:634 mailto:sage [2007/06/14(木) 15:57:34 ]

>>648を参考にアドインを探したら、Refactor! というツールがありました。
悩んでいるのもあれなんで、これを使ってどんどんプロパティを作ってしまいました。

ttp://www.devexpress.com/Products/NET/IDETools/VBRefactor/

653 名前:デフォルトの名無しさん [2007/06/14(木) 16:04:04 ]
VB2005でcrystal reportsを使いたいのですが、
インストール方法が分かりません。

恐れ入りますが、ご教示ください。

654 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 16:07:24 ]
エディションは?

655 名前:デフォルトの名無しさん [2007/06/14(木) 16:12:06 ]
>>654

Visual Studio 2005
Tools for the Microsoft Office System

です。

よろしくお願いします。

656 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 18:35:50 ]
ふいたww

657 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 19:33:42 ]
>>650
C++/CLIなんて、property int Hoge;だけでおkだぜ?

658 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:53:19 ]
VB2005(Professional Edition)に関する質問です。

プロセス間で同期を取るためにイベントを使いたいのですが、
VB6⇔VC2005とか、VC2005⇔VC2005とかでは他プロセスから
イベントを受信できるのに、VB2005だとできなくて困っています。
どなたか原因分かる方いませんか?

以下ソースの一部(プロジェクトの種類はVCはWin32アプリ。VBはWindowsアプリ)

〜〜〜VC2005〜〜〜
hEvent = CreateEvent( , , , "test_event")
SetEvent(hEvent)
〜〜〜〜〜〜〜〜〜

〜〜〜VB2005〜〜〜
hEvent = CreateEvent( , , , "test_event")
iRet = WaitForSingleObject(hEvent,0) ←ここでイベントを受信しない。
〜〜〜〜〜〜〜〜〜

ちなみに同じプロジェクト内で、SetとWaitを使用した場合は動きます。
〜〜〜VB2005(動く)〜〜〜
hEvent = CreateEvent( , , , "test_event")
SetEvent(hEvent)
iRet = WaitForSingleObject(hEvent,0) ←これは受信する。
〜〜〜〜〜〜〜〜〜



659 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:58:24 ]
それだけで分かったら ESP 名乗れるかもしれないな。

本題とは直接関係ないが、わざわざ Win32API 使わんで EventWaitHandle 使え。

660 名前:658 mailto:sage [2007/06/14(木) 22:12:02 ]
>>659 レスサンクス
補足っぽいものさせてもらうと、
A、B共にVB2005で作ったexeとして、

A.exeでSetEvent
A.exeでWaitFor〜
の場合は、イベントを受信するんだけど

A.exeでSetEvent
B.exeでWaitFor〜
の場合は、動かないんですよね。

VB6の場合はどっちのパターンでも動きます。

ちなみに、EventWaitHandle使う場合は、
VC側はどうやるのでしょう?
VCでもEventWaitHandle?それともCreateEvent?
質問増えて申し訳ないです。

661 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 22:22:15 ]
文字セットの問題とかな

EventWaitHandle は名前付きイベントのマネージドなラッパ。

662 名前:658 mailto:sage [2007/06/14(木) 22:39:09 ]
>>661 レスサンクス
う〜ん それも考えて、
VCのテストアプリを、マルチbyte文字セット、ユニコードの両方試してみてもダメ。
660の例では、コンパイルしてできたexeをリネームして試してみてるので
やっぱり文字コードじゃなさそう。

レスに対して揚げ足取ったようでゴメンナサイね。

何か思いついたことがあれば、引き続きレスお願いします。

663 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:09:02 ]
本当に初歩的な質問をさせていただきます。
フォームが1つありテキストボックスが2つ(1、2)、ボタンが1つ配置してあります
ボタンを押したらテキストボックス1と2に入力した文字をCSVファイルに書き込む用にしたいのですが
どのようにCSVに書き込みのプログラムを組めばよいのでしょうか?

CSVファイルの場所は固定です C:\
2つのテキストボックスには4桁の整数を入力します。
CSV内で2つのテキストボックスに入力した値をカンマ区切りで書き込みたいです。 例 1234,5678
ボタンを押すごとにCSVファイル内で改行して書き込みを行いたいです

ボタン押下の度にCSVの中身は改行され
1234,5678
4321,0987
   ・
   ・

初心者すぎてわかりにくい質問だとはおもいますが
お願いいたします


664 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:14:24 ]
その説明をそのままコードに起こせばおk


で、どこが分からんの?

665 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:21:14 ]
>>664
まず
テキストボックス内の数字を
CSV書き込みの時に反映させるコードの書き方が
全くわかりません・・・
一度テキストボックス内の数字を変数入れたほうがいいのですか?



666 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:36:12 ]
全くって言われても……言葉通りとしか……。
とりあえずファイルに書き込むことはできてる? どうやって書き込んでる?

667 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:41:37 ]
>>666
すいません質問が漠然としすぎていて・・
もう少し勉強してから出直してきます。

668 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:43:40 ]
2005で作ったプログラムを2003に変換する方法ってありますか。



669 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 01:40:00 ]
1.1にない機能を使ってたらどうすんの?

670 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 10:08:10 ]
>>668
コピペしてエラーがでたら考える。

671 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 10:40:30 ]
AddHandlerでLeaveイベントでを関連付けて、テキストボックスからフォーカスが移動した際に
入力のチェックをしているのですが、ツリービューをクリックした際になぜか
入力チェックが2回実行されます。

この原因及び解決法が分かる方がいましたらご教授願います。

672 名前:デフォルトの名無しさん [2007/06/15(金) 10:47:45 ]
2005のDataGridViewでDataGridViewButtonColumn列を使用して一覧の表を作成しています

ある特定の行のときだけ
DataGridViewButtonCellの中にあるボタンを無効化(enable=false みたいに)出来ないでしょうか?


673 名前:デフォルトの名無しさん [2007/06/15(金) 12:41:48 ]
すみません。www.cbook24.com/bm_detail.asp?sku=4798011126を買おうと思っているんですが、
下の方に印刷のところで、クリスタルレポートっていうのが、でてきます。他の本をみていても時々でています。

色々と調べてみたんですが、VB2005Proffessionalエディションじゃないとクリスタルレポートというのは
つかえないんでしょうか・・・

Professionalエディションって結構高いですよね・・ よろしくお願いします。

674 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 12:43:10 ]
>>671
それで原因がわかったらエスパーだなw
原因および解決法が分かる方がいましたら、ってなんだよ。
まるで原因は自分のミスじゃない、とでも言いたげだな。

そういう時は原因としてどういう可能性が推測できるか、と聞けよ。

675 名前:デフォルトの名無しさん [2007/06/15(金) 12:53:56 ]
>>673
Expressでは少なくとも無いなぁ
Standardはしらんが多分Pro以上

Express5000くらいで買ってProにアップグレードしたら多少安く手に入るんじゃないかな?

676 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 12:54:13 ]
>>673
www.microsoft.com/japan/msdn/howtobuy/vs2005/editions/stdexp/#stdexp_feature

677 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 12:57:12 ]
>>673
バンドル版はPro版以上。それ以下でも製品版を買えば使える。
japan.businessobjects.com/products/crystal/
もちろん製品版も結構高いけどな。

678 名前:デフォルトの名無しさん [2007/06/15(金) 13:02:18 ]
タグ上で右クリしたときContextmenuStripが表示されるようにしたいんですが
なんかいい手無いかなー?
要はタブを追加、タブを閉じるのメニューを表示したいんす



679 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:03:23 ]
>>672
以前自分もこれしらべたことあったけど、現状じゃ無理ー。

680 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:05:51 ]
>>678
タブコントロールのタブか?
普通にマウスクリックイベントに書けば?

681 名前:デフォルトの名無しさん [2007/06/15(金) 13:08:44 ]
>>679
やっぱむりっすか・・・
中のボタンコントロールみたいなのとれればなとか
あれこれ調べたんですがこれもムリだったので、まぁ、今回はちょっと別の方法模索してみようかなとおもいます。

レスありがとうです!

682 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:14:45 ]
>>681
正確にいうと、ReadOnlyにすることで、無効化は可能。
ただ、視覚的にenabled=false(グレー表示)にすることが不可能。
ボタンを押す行為自身はできちゃうんだよね…

683 名前:デフォルトの名無しさん [2007/06/15(金) 13:28:06 ]
>>682
もうちょっとツボ抑えた機能がほしいところですね
全部既存のコントロールが中にあるんだろうし 少しくらい公開してくれても・・・(;´Д`)


684 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:34:46 ]
中にコントロールはなかったような。
編集するときEditControl生成するくらいじゃね?
Buttonの絵を書いてるだけだよ。
じゃなきゃ何千ものコントロールのハンドル管理しなきゃいけなくなるっしょ。

だから継承して自分で描画すればいいだけの話

685 名前:デフォルトの名無しさん [2007/06/15(金) 14:04:58 ]
>>684
いいヒントもらえたのでちょっと強引にやってみました。
セルのボタンを表示したくないValueにはNothing そうじゃないばあいNothing以外を入れて
CellPaintingイベントで

If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 AndAlso dgvList.Columns(e.ColumnIndex).Name Is 該当のカラム Then

Dim temp As DataGridViewCell = dgvList.Rows(e.RowIndex).Cells(e.ColumnIndex)

If temp.Value Is Nothing Then

Dim TempPoint As New Point(e.CellBounds.X + e.CellBounds.Width - 1, e.CellBounds.Y)
Dim TempPoint2 As New Point(e.CellBounds.X + e.CellBounds.Width - 1, e.CellBounds.Y + e.CellBounds.Height)

e.Graphics.FillRectangle(New SolidBrush(Color.White), e.CellBounds)
e.Graphics.DrawLine(New Pen(SystemColors.ControlDark), TempPoint, TempPoint2)

e.Handled = True

End If

End If

ボタンを表示したくない時は自分で塗りつぶして線も描画し、表示したい時はコントロール任せ
こんな感じでとりあえずいけそうかなぁと
助かりました〜

686 名前:デフォルトの名無しさん [2007/06/15(金) 14:42:56 ]
グループボックスの中にボタンが配置してある場合、グループボックスの背景色を
変更したらボタンも一緒に変わってしまう。。

再度ボタンを設定しなおせば良いのは分かりますが、
予め反映させないようには出来ないのでしょうか?

687 名前:デフォルトの名無しさん [2007/06/15(金) 15:22:57 ]
>>686
????
今やってみたけど変わらないと思うぞ

あらかじめGroupBoxに背景色が設定してあって、そのうえにボタン追加したらその現象が出るなぁ・・・
ちなみに2005IDEね


688 名前:686 mailto:sage [2007/06/15(金) 15:37:46 ]
ぇええぇぇええ〜。

実験どうもです。
自分の所もVS2005のVB。

ちょっと新規にプロジェクトを作成して試してみましたが、
グループボックスの中にボタンを配置して、以下のプログラムで再現します。

GroupBox1.BackColor = Color.Aqua


この場合、グループボックスもボックス内にあるボタンもAqua色。。





689 名前:デフォルトの名無しさん [2007/06/15(金) 15:46:23 ]
>>686
あ〜
ボタンのスタイルをスタンダードにしてるから
見た目かわらないだけでグループの背景色変えたらボタンの背景色変わってるな〜
たしかにFlatとかにしてたらIDEでも変わるのが目に見えて判る

こういう処理やったことないからわからないけど・・・・自動で子にいろいろ設定されるのは難しいんじゃなかろうか・・・
FormのFontSizeとか変えたら子のサイズも変わるのと同じ原理なんだろうなぁ・・・
ある意味気が利いてていいんだが・・・

690 名前:686 mailto:sage [2007/06/15(金) 15:47:58 ]

コードとか関係なくGUIでもそうなっているんですね。。

ラベルやチェックボックスとかには便利だけど、
ボタンにこれは必要ないだろ〜。

ぅう、面倒くさー。

691 名前:686 mailto:sage [2007/06/15(金) 15:50:10 ]
>>689
入れ子になりました。

度々どうもです。
うーん、小さな親切って奴ですな〜。

692 名前:673 mailto:sage [2007/06/15(金) 15:51:01 ]
>>675
どうもありがとうございます。ExpressからProにアップグレードできるんですか?
以前のエディションのPro版からしかアップグレードできないとおもっていたので、
とても助かります。ありがとうございました。

>>676
どうもありがとうございます。わざわざURLを貼っていただきまして。やっぱりPro版じゃないと
だめみたいですね。

>>677
製品版なんてものもあるんですね。CrystalReport単品ですね。でも、7万しますね・・
MicroSoftはここまで金をもうけないと駄目なんですかね・・

どうもありがとうございました。お礼が遅くなりすみませんでした。料理してたら忘れてまして・・

693 名前:686 mailto:sage [2007/06/15(金) 15:54:48 ]
>>689
ああ、どうもです。

FlatStyleプロパティをSystemにする事で、回避できそうです。

694 名前:デフォルトの名無しさん [2007/06/15(金) 16:01:58 ]
>>693
ついでにちょっと試してたんだけど

IDEでグループボックス貼り付け
IDEでボタン貼り付け
ボタンのスタイルをフラットにして、色をREDに変更

このあとグループボックスの色変えてもボタンの色変わらなくない?
もちろんコードでグループボックスの色変えても

695 名前:686 mailto:sage [2007/06/15(金) 16:06:56 ]
>>694

自分が確認した範囲では、一度ボタンの色を任意に設定した後は、
ボタンのスタイルに関わらず、グループボックスと連動する事はなさそうです。

スタイルをSystemにするか、BackColorをColor.Transparentにするかの
どちらかになると思います。

696 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:11:53 ]
>>674
ではその可能性とやらを教えてください

697 名前:デフォルトの名無しさん [2007/06/15(金) 16:20:47 ]
>>696
またお前かw
偉そうな質問者よ
他のスレで大暴れしているな?

698 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:25:08 ]
>>697
完全に人違い。
さっきのはもうあきらめました。

ちなみに別のところで詰まってるんだけど
教えてもらえるかな



699 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:54:12 ]
だがことわる



って言われたら諦めるの?

700 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 17:11:23 ]
やだ

っていったら教えてくれるの?

701 名前:デフォルトの名無しさん [2007/06/15(金) 17:23:11 ]
>>700
お前には教えない
教える気になる書き方しろやカス

つうか、おまえはそういう聞きかたされておしえるのか?

もしそうなら教えてほしいんだが
Form閉じる時に何か処理したいんだがなんてイベント使えばいいんだ?
たのむから教えてくれカス

702 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 17:57:14 ]
何でお前はそんなに偉そうなんだ

お前は俺の質問に答えられるのか

無理なくせにえらそうにするなよ

703 名前:デフォルトの名無しさん [2007/06/15(金) 17:59:13 ]
DataTableでColumnsの最大値っていくつまで指定可能ですか?

704 名前:デフォルトの名無しさん [2007/06/15(金) 17:59:25 ]
>>698 = >>700 = >>702 = Null
つまり奴はこの世の中には存在しないんだよ!!!!

>>702
それまさにお前 m9(^Д^)
ところで釣れますか?

705 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 18:02:41 ]
>>701
FormClosingだ、馬鹿。
Closingが見つからないからってあせるな馬鹿。

706 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 18:04:52 ]
>>703
Columns.CountプロパティがIntegerだからそこから最大値は必然的にわかるだろ。

707 名前:デフォルトの名無しさん [2007/06/15(金) 18:09:53 ]
>>706
おお!
盲点ってか全く気がつかなかった。
サンクスです。

708 名前:デフォルトの名無しさん [2007/06/15(金) 18:13:21 ]
ぜひ>>671には
わ○くま とかの掲示板で質問していただきたいw



709 名前:703 mailto:sage [2007/06/15(金) 18:14:17 ]
もうひとつ聞きたいことがあるんですが、
DataTableにNewRowした時点で、
あらかじめ項目に規定値をセットする方法ってあるのでしょうか?

710 名前:デフォルトの名無しさん [2007/06/15(金) 18:15:14 ]
>>705
ばっかw
そこは2003か2005か聞くところからはじめさせるための釣りの布石なんだよwwww







 MayBe...
BoyesBe...

711 名前:デフォルトの名無しさん [2007/06/15(金) 18:18:11 ]
>>709
DataColumn みてみ?

712 名前:703 mailto:sage [2007/06/15(金) 18:24:59 ]
>>711
どうもです。
試してみます。

713 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 18:47:12 ]
VB2005が何か落ちまくる。

コピペしようとすると、コピーの段階でdevenv.exeのCPU使用率が
急上昇して最終的に落ちるか固まる。

はー・・・。

714 名前:デフォルトの名無しさん [2007/06/15(金) 18:48:28 ]
Dim str As String = "abc"

str = Format(str, "@,@,@")

MsgBox("str")

これで出力をすると結果が「@,@,@」になるのですが、どうしてなのでしょうか?;

どの解説サイトを見てもFormat関数の書き方は間違ってないはずなのですが・・・

715 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 18:49:12 ]
ちなみにHndles Button.click内にあります。

716 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:09:04 ]
すみません、上記は間違いです

Dim str As String = "abc"

str = Format(str, "@,@,@")

MsgBox(str)

自分では「a,b,c」と出ると思ってるのですが、どこか間違ってるんでしょうか?

717 名前:716 [2007/06/15(金) 19:14:32 ]
VB2005です

718 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:16:07 ]
TextBox/DateTimePicker/CheckBox/RadioButton などのコントロールが
50個以上あるフォームが有るのですが、フォームのクローズボタンなどで
閉じられた際に、内容が修正された場合には確認のメッセージを
表示させたいのですが、どうすれば良いでしょうか?

TextBoxの場合はModified がありますが、それ以外のコントロールはありませんし・・・。




719 名前:デフォルトの名無しさん [2007/06/15(金) 19:19:03 ]
>>718
起動した時に覚えておいて
Closingかなんかでチェックすればいいんじゃね?


720 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:27:46 ]
>>719
やっぱりそれしか無いですかね。

なんか遅くなりそうで心配・・・。

721 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:32:32 ]
フラグ一つ見るのに時間がかかるわけがないと思うんだが。
たぶん1nSecもかからないと思うぞw

722 名前:718 mailto:sage [2007/06/15(金) 19:50:28 ]
>>721
え?フラグ一つってどういうことでしょうか?

今、修正される可能性があるコントロール全てを、データクラスにして
表示する時と閉じる時にセットして比べようとしているんですが・・・。

もしかして自分は壮大な過ちを犯してしまっているのか!

723 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:09:45 ]
そのデータクラスにIChangeTrackingを実装すればいい。

724 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:14:26 ]
フラグを一つ付けるためだけにコントロールを継承するのはアホらしいでしょ
Control.TagプロパティやDictionary(Of Conrtol, Boolean)でいいと思うけど

725 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:15:13 ]
フラグはフォーム全体に一つで十分だろ…

726 名前:724 mailto:sage [2007/06/15(金) 20:18:21 ]
すまん>>723はデータクラスにフラグを付けろって言ってたんだな
それでいいと思う


727 名前:718 mailto:sage [2007/06/15(金) 20:28:27 ]
ありがとう御座います。

IChangeTrackingってググってもあんまり情報が無いですね。
インターフェースですか。

変更されたかどうかと、それをリセットする事が出来るみたいですね。
まさにこれが欲しかった!
.NET2.0スバラシイ!

でも使い方が良く分からない・・・。

ちょっと、いろいろ実験してみます。




728 名前:718 mailto:sage [2007/06/15(金) 21:07:50 ]
駄目だ!
全然値が入らない。

そもそもインターフェースの使い方も良く分からなかった。

作ったデータクラスに、下記を書き込んで
Public Interface IChangeTracking

End Interface


下の変数でどうにかするんだろうけど、、サパーリネ
Dim instance As IChangeTracking




729 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:28:11 ]
>>718
すまん。
あんたPGの才能ないと思うわ。

たぶんデータが変更された後セーブされずにプログラムが終了されようとしてる時に
そのまま終了するかセーブするかユーザーに確認したい、ということだと思うけど、
それなら、仮に厳密にやるとしてもセーブした時点のデータと
プログラムが終了されようとした時点のデータを比較するだけじゃん。

普通はそこまでしなくても、例えば

Private dataModified as Boolean = False

みたいなフィールドを作っておいて、何か一つでも変更があったらこれをTrueにすれば
用は足りるんじゃないの?
もちろんundoした場合の動作の厳密さが必要ならこういう手抜きはダメだけどね。

730 名前:718 mailto:sage [2007/06/15(金) 21:37:08 ]
>>729
才能無くてサーセンwwwww


それって、修正される可能性があるコントロール全てに
イベントを作るって事ですか?

731 名前:デフォルトの名無しさん [2007/06/15(金) 22:17:30 ]
>>730
そういう聞き方するってことはたぶんコントロール自体をデータの入れ物にするような設計、
つまり何かのタイミング(ファイルにセーブするとか?)で一度に全部のコントロールの
プロパティをまとめて読むような設計なんだろうけど、普通はそもそも
そういうプログラムの書き方しないと思うよ。

732 名前:718 mailto:sage [2007/06/15(金) 22:55:30 ]
ガーン。
そうなんですか。

>>731の書いてある通りに、登録ってしたらコントロールの内容をDBへ
一括に書き込もうとしているんですが、これってオカシイんですか。
(コントロール→データクラス→DB)

それで、登録されずに閉じられようとした場合には、確認のメッセージを
出したいって感じですが・・・。

733 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 00:37:24 ]
いや、検証はいつかしなくちゃいけないんだから、

・コントロール全部にイベントつけて値が変わったら個別の検証コード走らす
・close, apply, ok等のアクションで全体の検証コード走らす

のどっちかでしょ。

前者だったらclose,apply,ok等のアクションで判定するのは一つのフラグで済むけどイベントがたくさん
後者だったらイベントたくさんはいらないけどアクションで全体を検証しなくちゃいけない

どっちでもいいと思うけど、コントロールが多いなら後者がいいんじゃないの?

734 名前:716 [2007/06/16(土) 01:43:54 ]
どなたか分かりませんか?;
ボタンのクリックイベントで

Dim str as string

str=Format("ABC","@,@,@")

Msgbox(str)

とだけやっても結果が@,@,@となりできませんでした・・・
数字の場合だと

Dim str as integer

str=Format("123","00000")

Msgbox(str)

00123となり大丈夫だったんですが、Stringになると・・。

開設サイトを見ても文字列の書式は

Format("ABC","@@@@@")

で結果が  ABCとなると書いてあるのに私のプログラムですと@@@@@なってしまいます;

735 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 10:04:26 ]
まあ何が間違ってるか、ってそれはきみの学習姿勢が間違ってるんだよ。煽り抜きで。
または致命的に頭が悪いか。

いずれにせよ、そのレベルのことを人に聞くのは恥ずかしいことだ、って意識がないとしたら
PG向いてないよたぶん。

736 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 10:19:00 ]
>>734
ここの下のほうを見ろ
msdn2.microsoft.com/ja-jp/library/wb216dct(VS.80).aspx

737 名前:デフォルトの名無しさん mailto:age [2007/06/16(土) 16:41:37 ]
>>735
ま た お ま え か

煽り抜きで言わせてもらうが頭大丈夫か?
このスレで「PGとして〜」「仕事として〜」「才能が〜」「素質が〜」とか言って叩かれてるやつ全部お前だろ?
お前はプログラマという職業が素質、才能のあるやつにしかできないものだと思っているみたいだが
もはやPGが流れ作業員として溢れている現状を把握できていればそんな高貴なもんじゃないと分からんのかw

そもそも、ここはVB.NET質問スレであって
ここに来ているやつは初心者はもちろんの事、仕事外で趣味でやってるやつもいて当然なんだが
そこを把握できてない点で頭でっかちなお前さんはPG向いてないよ?
チームで組んだことがない孤独PGか、自分の発想しか受け付けないワンマン上司と見たな。

そんなハイクオリティなお前さんには
つ「【才能(笑)】高貴なVB.NET質問スレ【才能(笑)】」



738 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:02:51 ]
>>737
> このスレで「PGとして〜」「仕事として〜」「才能が〜」「素質が〜」とか言って叩かれてるやつ全部お前だろ?
俺も言ってるから、全部同一人物ではないよ。



739 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:05:57 ]
「VB.netの」質問をするレベル以前の質問があるのも事実

740 名前:737 mailto:sage [2007/06/16(土) 17:12:17 ]
>>738
ちなみに俺も。

741 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:12:21 ]
「VB.netの」回答をするレベル以前の回答があるのも事実

742 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:30:05 ]
>>737
何度言っても分からん馬鹿だね。
初心者であることと叩いてるんじゃないんだよ。
怠惰を叩いてるの。

初心者でも怠惰じゃなきゃ734みたいな質問はしない。

743 名前:デフォルトの名無しさん [2007/06/16(土) 18:39:35 ]
>>742
かわいそうな  ゆ  と  り  w

744 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:00:10 ]
>>741
低レベルな質問には低レベルな回答で十分

745 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:06:25 ]
VBスレだけは回答者がアホ杉。 C丼スレと比べても明らか。

746 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:08:19 ]
c#スレもここ1年ぐらいはずいぶんレベル低いんだけどな。

747 名前:デフォルトの名無しさん [2007/06/16(土) 20:12:18 ]
てかみんなC#もVB.NETも同じように使えるんだろ?

748 名前:デフォルトの名無しさん [2007/06/16(土) 21:02:23 ]
同じように使えるがVB上がりは総じてバカなんだお^^



749 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 21:49:57 ]
VB6しかできません><

750 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 02:43:45 ]
>>742
怠惰?お前は734の何が分かってるんだ?
分かったから>>737で書いたとおり専用スレにでも行っとけ

751 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 02:45:45 ]
>>742
あと「何度」って
どれとどれとどれとどれどれと、どれだよ?

752 名前:デフォルトの名無しさん [2007/06/17(日) 03:35:48 ]
>>742
そう思えばスルーすればいいじゃないか?
別にここはそういう人間が来ていけない理由もないし
怠惰であろうがなかろうが答えてもいいと思える人間が答えられるならそれでいいじゃないか

753 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 05:56:12 ]
throw new exception("他でやれ")

754 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 22:58:03 ]
VB2005からVCで作られたDLLをコールするときにエラーが出て困ってます。
関数のパラメータに構造体を指定して、構造体のメンバの文字列を渡したいけれど、
なんかうまく行かないんですよね。VB2005だと固定長文字列ってのがサポートされて
いないとか何とか言うのは分かったけれど、解決方法が不明となっています。アドバイスをお願いします。

コードはこんな感じ。
*VC2005*****************************************************************
typedef struct{
 int iTemp;
 char cTemp[256];
}tag_strTemp;

void __declspec(dllexport) WINAPI TestFunction(tag_strTemp* pstrTemp)
{
 MessageBox(NULL, pstrTemp->cTemp, "", 0);
}

*VB2005*****************************************************************
Moduel Module1
 Public Structure tag_strTemp
  Public iTemp as Integer
  Public cTemp as String ←ここの定義に問題があるんだと思ってます。
 End Structure
End Module

Public Class Form1
 Private Sub Form1_Load(・・・)
  Dim strTemp as tag_strTemp
  strTemp.cTemp = "ABCDE"
  TestFunction(strTemp)
End Sub
End Class

755 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 23:03:16 ]
MSDN の相互運用マーシャリング以下の項目見れ
サンプル付きで解説されてる

756 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 23:34:39 ]
つうか
chrにString渡してどうする・・・・
Chrで渡せばいいのに・・・・

757 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:12:40 ]
>>756
君も恥かかないうちにその辺で止めといたほうがいいよw

758 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:23:27 ]
>>757
まぁ・・・書き方はともかく理由は分かってそうなイメージだけどな



759 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:41:08 ]
756が分かってるわけないでしょw

値型と参照型の区別もついてないか、あるいはCで>>754みたいな構造体を
作ったときのメモリイメージが理解できてないか、少なくとも何れかではある。

760 名前:デフォルトの名無しさん [2007/06/18(月) 09:14:20 ]
>>759
まさか・・・Stringを値型と勘違いしている・・・わけねぇべ
そんなPGいねぇだろ




761 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 10:07:38 ]
>>754
<StructLayout(LayoutKind.Sequential)> _
Public Structure tag_strTemp
  Public iTemp as Integer 
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst := 256)> _
  Public cTemp as String
End Structure

詳細は>>755 の通りでMSDN参照のこと。
複雑になるようならC++/CLIでアセンブリラッパを作ってもよい。

762 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 12:24:29 ]
アラインメント(パッキング)も指定した方がいいんじゃない?
まあMSDNライブラリにデフォのパッキングサイズは8Byteって書いてあるのは
間違いっぽいから要らないのかもしれないけど。

あとOut属性も。

763 名前:デフォルトの名無しさん [2007/06/18(月) 13:32:31 ]
SQL鯖のDBのカラムで AAA というカラムがあり VarChar(100)でNotNull+デフォルト空文字だとして
データ取得する時に

1: dim temp as string
2: temp = directcast(dt.rows(0).item("AAA"),string)

として取得している部分があったとき
2の部分でこうやってやるのってムダダしやる必要ってあると思う?
俺は定義で必ずNullはないとしているんだからナンセンスだと思うんだが みんなはどうやってるんだろ?

if dt.rows(0).item("AAA") isnot dbnull.value then
 temp = directcast(dt.rows(0).item("AAA"),string)
else
'あれば何か書く
end if


764 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 17:59:04 ]
SQL文中で
ISNULL(対象カラム,'')
ってしておけばいいんでない。

765 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 19:42:13 ]
やる必要なし
NotNull制約を外した場合を考慮するってことなんだろうけど
そんなこと考え出したら、システムがややこしくなっちまう
心配ならデータ設計見直すべき

766 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 21:37:34 ]
>>762
適当なこと言うな。
.NET のマーシャリングのデフォルトパッキングは8で間違いないし
この場面ではパッキングサイズは問題にならない。
文字列を DLL に渡したいのに Out 属性つけてどうする。

767 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 21:47:07 ]
>NET のマーシャリングのデフォルトパッキングは8で間違いないし
いやだからMSDNライブラリにはそう書いてあるけど、実際いろいろ試してみると
どうも4になってるみたいだよ。VB固有かも知れないが。

あと、アラインメントが問題にならない訳がないw
最後の行に関しては確かに>>754はそう言ってるね見落とした。

768 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 21:53:44 ]
>>767
間違いなくパッキングサイズの意味を勘違いしてる。

<StructLayout(LayoutKind.Sequential, Pack:=4)> _
Structure Pack4
    Public Data1 As Byte
    Public Data2 As Long
End Structure

<StructLayout(LayoutKind.Sequential, Pack:=8)> _
Structure Pack8
    Public Data1 As Byte
    Public Data2 As Long
End Structure

<StructLayout(LayoutKind.Sequential)> _
Structure PackDefault
    Public Data1 As Byte
    Public Data2 As Long
End Structure

Debug.WriteLine(Marshal.SizeOf(GetType(Pack4)))
Debug.WriteLine(Marshal.SizeOf(GetType(Pack8)))
Debug.WriteLine(Marshal.SizeOf(GetType(PackDefault)))

> あと、アラインメントが問題にならない訳がないw
「この場面では」と断ってるだろ。



769 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 21:55:12 ]
だから「この場面で」問題になるってw
頭おかしいんじゃないの?

770 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:02:24 ]
>>768 でデフォルトが 8 ってのは証明できてるとして。

<StructLayout(LayoutKind.Sequential, Pack:=4)> _
Structure Pack4
    Public Data1 As Integer
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=5)> _
    Public Data2 As String
End Structure

<StructLayout(LayoutKind.Sequential, Pack:=8)> _
Structure Pack8
    Public Data1 As Integer
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=5)> _
    Public Data2 As String
End Structure

Debug.WriteLine(Marshal.SizeOf(GetType(Pack4)))
Debug.WriteLine(Marshal.SizeOf(GetType(Pack8)))

何がどう問題になるのか教えてもらおうか?

771 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:10:02 ]
?

772 名前:754 mailto:sage [2007/06/18(月) 22:18:26 ]
>>755,761
ありがとう!
解決しますた!
>>762さんが言ってたことについては、
アラインメントについても詳しくは理解できていないので、
メンバを8byte区切りにしたり、ダミー変数使ったりして対応します。

773 名前:デフォルトの名無しさん [2007/06/20(水) 11:56:14 ]
検索システムで,検索結果をDataGridに表示しています.(ReadOnly)
ちがう条件を入力したら,現在表示されている行に追加されていきます.
どうしたら,DataGridに表示されている内容をリセットできますか?
DisposeだとDataGridごと消えるし,空データをバインドしても消えないし…
どなたか教えて下さい.

774 名前:デフォルトの名無しさん [2007/06/20(水) 12:02:59 ]
Panel コントロールで、ScrollBar の Scrollイベントに合わせて
リアルタイムで追随する移動を行うべくあちこち探してるのですが、
こういうときは、Client領域を移動できるメソッドかプロパティとして
何を使用すればいいでしょうか。

775 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 12:12:07 ]
Location

776 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 12:40:29 ]
>>773
ちょっとソース書いてみ

777 名前:デフォルトの名無しさん [2007/06/20(水) 12:45:56 ]

一つのプロジェクト内にユーザコントロールを作成して利用していますが、
コントロールを配置したフォームのデザインが修正されると?エラーになり、
デザイン画面が表示されなくなります。

エラーメッセージ
型 'hogehoge.TukuttaControl' が定義されていません。


例:
プロジェクト名:hogehoge
ユーザコントロールクラス名:TukuttaControl
コントロールを配置したフォーム:Form1

とある時に、Form1.Desugner.vbの内容が以下のように勝手に
修正されてしまい、上記のエラーになってしまいます。

○ Me.TukuCon = New TukuttaControl

× Me.TukuCon = New hogehoge.TukuttaControl

どうにか対策は無いでしょうか?

778 名前:777 mailto:sage [2007/06/20(水) 12:47:40 ]
追記です。

× Me.TukuCon = New hogehoge.TukuttaControl
上記のhogehoge.を消せば、デザイン画面も正常に表示されます。

またTukuttaControlはDllにはなっていません。

よろしくお願いします。



779 名前:デフォルトの名無しさん [2007/06/20(水) 12:58:12 ]
>>775
あーっそうでしたか、助かりました!!
回答ありがとうございました!!

780 名前:デフォルトの名無しさん [2007/06/20(水) 13:30:11 ]
>>779
と思ったら、これってのはもしかして、Client領域のView範囲を動かす
のではなくて、中のコントロールだとかを自前で動かすということでしたか・・・?

PanelのClient領域のView位置をプログラムで移動するには何を使えば
いいでしょう?

781 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 14:04:23 ]
>>780
何いってんのかさっぱりわからんが、
Panel内をスクロールさせたいの?
もしかしてPanelにScrollコントロールをわざわざつけてたりする?
AutoScroll = trueにすれば自動で表示されるけど。

あとは
ScrollControlIntoViewとか
VerticalScroll/HorizontalScrollとか

782 名前:デフォルトの名無しさん [2007/06/20(水) 14:58:45 ]
>>781
どうもです!!

実はそのAutoScrollですが、確かにScrollBarが出てきてすくロース機能は
あるにはあるのですが、、

そのスクロースバーを掴んでマウスボタンを離すと、Panel内のViewが移るのが
わかります。

しかし、リアルタイムの動作にならず、これを、マウスボタンを掴んだままで
View位置を動かしたいのでした。

マウスのホイールをまわすと確かにリアルで動きますが、スクロールのスピード
が限定されるので、できればバーの動きと同期した移動を行ないたいのです。

SetDisplayRectLocation なども見ていますが、これだとWinProcとか使わないと
いけなさそうでした。できれば手軽に既存のメソッドかプロパティがあればと・・・。

783 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 23:37:19 ]
ID3v1のタグを読み取りたいのですが
発売の年だけがうまく読み取れません
誰かご教授願えませんでしょうか?
あとエクスプローラーからのドラッグ&ドロップも宜しければお願いします。

784 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 23:46:29 ]
それだけ言われてもそうか大変だなとしか言いようがねぇ
D&D なんて検索すりゃいくらでも出てくるだろ

785 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:10:21 ]
昔VB6で作ったプログラムを、プロジェクト変換機能を使ってVisualStudio2005に
読み込ませてコンパイルしてみたら、.Netframework必須のアプリが
できあがってしまいました。
VB6で作ったプログラムをVisualStudio2005でコンパイルして
.Netframework不要のアプリを生成することはできないでしょうか。
.Netの機能を使いたいわけではなく、コンパイルしたいだけなのですが
なんとかならないでしょうか。

786 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:14:27 ]
なりません。
はい次。

787 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:22:00 ]
>>785
いかんともしがたい

788 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:51:06 ]
>>782
オレの環境では、Panelにボタンを置いてスクロールさせるとリアルで追従するけど?



789 名前:デフォルトの名無しさん [2007/06/21(木) 01:01:09 ]
Diposeパターンについて教えてください。

PenやBrushのようなアンマネージリソースをラップしたオブジェクトを保持するクラスの場合
AとBのどちらで開放するのが正解?


Public Overrides Sub Dispose( ByVal disposing As Boolean)
If disposed Then
If (disposing) Then
' マネージリソースの開放 (A)
End If
' アンマネージリソースの開放 (B)
disposed = True
End If

End Sub

790 名前:デフォルトの名無しさん [2007/06/21(木) 01:02:32 ]
いきなり打ち間違えてるし。。。
Disposeパターンです。

791 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 01:03:15 ]
disposingに関わらず解放


792 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 01:04:48 ]
IntPtr 以外は全部マネージドと考えてもいいよ。

つかその辺は保持するな、必要な時に作ってすぐ捨てろ。

793 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 01:06:42 ]
いや、コストを考えるとキャッシュしておきたい場合もあるだろハゲ

794 名前:デフォルトの名無しさん [2007/06/21(木) 01:06:51 ]
ん?
791と792と回答が違うけど、どっちが正解?


795 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 01:09:39 ]
792。
自分が持っている参照型のフィールドはファイナライザのタイミングでは手を出しちゃダメ。

796 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 01:10:14 ]
ファイナライザ?

797 名前:デフォルトの名無しさん [2007/06/21(木) 01:10:56 ]
サンキュー
イマイチ、この辺の具体例を書いてあるサンプルが見つからなくて困ってた。
勉強になったよ。

798 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 01:24:05 ]
また羊がひとつ屠られた



799 名前:デフォルトの名無しさん [2007/06/21(木) 01:50:49 ]
VB2005(Express)でお聞きしたいのですが

Public Sub WriteXml(ByVal fileName As String)

Dim instance As New DataSet1.NewItemDataTable

instance.WriteXml(fileName)
End Sub

上記コードでデバッグ中にDataTableVisualizerで確認してもデータテーブルにデータが
ない状態で、出力されたXMLにも書き出されていませんでした。
データセットに存在しているのはこのテーブルだけです。
DataTableをバインドしているDataGridViewには入力中データが反映されています。
DataTableをXMLに出力するにはどうすればよいのでしょう。

わかりにくいかも知れませんが、よろしくお願いします。



800 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:35:37 ]
new って英単語の意味は知ってる?

801 名前:デフォルトの名無しさん [2007/06/21(木) 09:24:27 ]
>>799

DataGridView.DataSource
つかえこのカス野郎!


802 名前:デフォルトの名無しさん [2007/06/21(木) 09:48:20 ]
VB2005について質問です
SPREADで列数18、幅25の表を作ったら動作が重かったんですが、軽くする方法ありませんか?

803 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 09:55:58 ]
>>802
グレープシティーに聞けばいいと思うよ

804 名前:デフォルトの名無しさん [2007/06/21(木) 10:08:52 ]
>>802
しかもおまえマルチかよ・・・・
ほんと頭悪いから出て行けよw
なにをどうとかなら判るが これだけの情報でどうやって動作軽くしろとかいうんだ
アフォらしいの通り越して、お前みたいな奴がソフト作るのホントやめてほしい

//--------------------------------------------------------
Visual Basic2005やりたいんだけどアドバイス頼む
ttp://pc11.2ch.net/test/read.cgi/tech/1158410544/67

67 名前:デフォルトの名無しさん[] 投稿日:2007/06/21(木) 09:25:40
初心者な質問スマソ
SPREADで行列100 X 18、列幅25の表つくったんだけど、
処理(スクロールや行選択)が重いんだけど軽く出来ませんかね?



805 名前:デフォルトの名無しさん [2007/06/21(木) 12:01:29 ]
メールアドレスを正規表現で抽出する場合どのように記述すればいいのでしょうか?

806 名前:デフォルトの名無しさん [2007/06/21(木) 12:05:32 ]
>>805
スレ (´∀`( ´∀`) チガイ


807 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:27:59 ]
>>805
ググれよ

808 名前:デフォルトの名無しさん [2007/06/21(木) 12:40:18 ]
散々ググったんですがどうもいまいちわからないんですよ。
冷たいこと言わないで教えてくださいよ。



809 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:44:16 ]
メールアドレスに一致する正規表現は「ありません」

とぐぐった一発目にあるが?

810 名前:デフォルトの名無しさん [2007/06/21(木) 12:51:04 ]
あ(笑)。もしかしてほんとは皆さん知らないんじゃ無いんですか?

811 名前:デフォルトの名無しさん [2007/06/21(木) 13:09:25 ]
>>788
どうもです!!
自分はWindows2000+VS2005Proの環境を使ってまして
そこではスクロールバーの動きに追従しませんでした。
環境差による可能性がありそうなので、これから別PCの
WinXp環境に移して試してみます。助かります!!

812 名前:799 mailto:sage [2007/06/21(木) 13:59:53 ]
>>800
と言うことは、Newでクラス参照すると全く新規で作られるということでしょうか?
既存のDataTableを参照するにはどうすればよいのでしょう?

>>801
調べてみましたが、使い方がわかりませんでした。すみません。

813 名前:デフォルトの名無しさん [2007/06/21(木) 14:08:28 ]
だから

調べてみましたが、使い方がわかりませんでした
じゃわかんねぇYO!
どこがどうわからんのか言えよ
使う気ないのかしらんが

あと既存のDataTableを参照するには
と書いてあるということはDataTableをDataGridViewにバインドさせて使ってるんだよな?
つまりDataGridViewはその元のDataTableをDataSourceとして持ってるわけだ

814 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 14:12:26 ]
>>813
こんな努力もしないアホに教えようとするだけムダだ
質問すらもまともにしようとしていないしな

ほれこれでいいだろ もう来るなよ

Public Sub WriteXml(ByVal fileName As String)
Dim instance As DataSet1.NewItemDataTable
instance = DirectCast(DataGridView1.DataSource , DataSet1.NewItemDataTable )
instance.WriteXml(fileName)
End Sub


815 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 15:34:06 ]
>>808
うぜえな
www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=vb+%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE+%E6%A4%9C%E7%B4%A2&num=50
3つめにあるじゃねえか。

816 名前:デフォルトの名無しさん [2007/06/21(木) 15:36:45 ]
>>815
みんなスルーしてたのにお前の優しさに>>808が泣いた

817 名前:デフォルトの名無しさん [2007/06/21(木) 18:56:25 ]
知ってたら教えてー。
VS2005(VB.NETもC#)のIDEで、タブ付きドキュメントにしてソースを
開いていくと、タブが左側に追加されていくのを、右側に追加して
いくように変更できないのかな?

818 名前:デフォルトの名無しさん [2007/06/21(木) 19:02:29 ]
>>788
WinXp環境に移して試してみましたところ、この環境ではScrollBarの
動きに追随してリアルタイムでViewが動くのを確認しました。
これは環境的な理由があるようにも思いましたので、
ひとまず現状のままにしておきます。
情報ありがとうございました!!!



819 名前:デフォルトの名無しさん [2007/06/21(木) 20:19:49 ]
hp.vector.co.jp/authors/VA026956/MouseGesture.html を組み込みました。
実行ファイルをダブルクリックで実行、ショートカットからの実行では問題ないのですが、
ファイルにこのアプリケーションを関連付けしてファイルから実行すると、
エラーで落ちてしまいます(エラーの詳細はわからず)。

おそらくDLLの場所がわからず、読み込めないため落ちてると思うのですが、
レジストリの関連付けで、作業フォルダの指定もできないみたいです。

どうすればいいのでしょうか。。

820 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:05:30 ]
VBにはJavaのThrowsのような
関数に例外をスルーさせる方法はありますか?

821 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:06:51 ]
あります。

822 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:09:55 ]
ググッてみてもJavaとは例外処理の概念が違うから
ウンヌンカンヌンで例外のエスカレーションは
できないのです。みたいな事書かれていたので
できたら、やり方教えてもらえないでしょうか
キーワードだけでも結構です。

823 名前:819 mailto:sage [2007/06/21(木) 22:19:21 ]
やり方がわからなかったので、自前でマウスジェスチャくみますた。。

824 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 22:24:21 ]
例外はほっときゃ勝手に呼び出し元に伝播する

825 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:03:32 ]
互換機能のOn Error Goto は使わないようにね

826 名前:819 mailto:sege [2007/06/22(金) 01:22:39 ]
1 sub main()
2 F(1,1)
3 F(1,0)
4 end sub

5 function F(a as integer, b as integer) as double
6 return a/b
7 end function

たとえば上のような疑似VBコードにおいて
実行すると 6行目で例外発生して止まる。
で5行目を
function F(a as integer, b as integer) as double Throws Exception
のように書き換え実行すると
2行目で例外が発生しましたとなって止まる。
ようにしたい。要するにデバッグしやすいように例外を使用したい

827 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 01:51:25 ]
>>826
なんだ例外のエスカレーションとかいうレベルの話じゃなかった

828 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 02:11:58 ]
>>819
たぶんdllとはなんの関係もないウンコなミスとエスパーするがどうか。




829 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 02:29:14 ]
>>826
茶化したままだとあれだから、VS2005でマイコードのみの設定が有効になってるのを確かめて、
DebuggerNonUserCode属性を付ければ目標は達成できる。

<DebuggerNonUserCode()> _
function F(a as integer, b as integer) as double
  return a/b 
end function 


830 名前:デフォルトの名無しさん [2007/06/24(日) 06:16:44 ]

誰か似たようなことを経験していたら教えてほしいのですが、、

あるコントロール上をマウスが通ると、MouseMoveイベントが普通立つと思う。

しかし、何かある操作をしてから、同様にしても、今度は全然 MouseMove
     ~~~~~~~~~~~~
イベント自体が立ってくれなくなる。それで仕方なく、別のアプリケーションの

ウインドウをクリックしてFocusを移してから、再度元のアプリケーションに

戻って同様にしてみると、今度は MouseMoveイベントが立ってくれる、

とちょっと変な現象なんですが、こういうことってあり得るでしょうか?


831 名前:デフォルトの名無しさん [2007/06/24(日) 06:37:21 ]
>>830

この場合、「何かある操作」 というのは、そのコントロールの置いてある Panel 

の右クリックで ContextMenuStrip を表示して、その際、そのメニューのどれも

クリックせずに、また Panel 上のどこかをクリックして ContextMenuStrip を

Close する、というだけの操作なんですが、これをすると、それまで立ってくれてた

その Panel 上のコントロールで MouseMove イベントが立たなくなるのでした。

832 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 07:03:19 ]
一切自分では調べてないだろ
ttp://www.google.com/search?hl=ja&lr=lang_ja&oe=utf8&q=mousemove+contextmenustrip

833 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 11:59:27 ]
>>831
メニューのClosedイベントで
System.Windows.Forms.ToolStripManager+ModalMenuFilter.ExitMenuMode()
を呼ぶと直る。
リフレクション使わないといけないけど。

834 名前:デフォルトの名無しさん [2007/06/24(日) 13:42:03 ]
>>832
ありがとうございます。
これ一応 BUG だったんですね・・・う〜ん。

>>833
どうもです、助かります。

>System.Windows.Forms.ToolStripManager+ModalMenuFilter.ExitMenuMode()

この方法、調べて使ってみます。

>リフレクション使わないといけないけど

これについても具体的にはどうすればいいかまだわかりませんが、また調べてみます。
それでもわからない場合また質問するかと思いますが、
またよろしくお願いします。


835 名前:デフォルトの名無しさん [2007/06/24(日) 15:54:43 ]
>>833

すみません、この ModalMenuFilter というのは、ヘルプで検索しても
検索結果 0 で情報が出てきませんでした。

ググってみましたが、ただ一件
www.google.com/search?hl=ja&q=ModalMenuFilter&btnG=%E6%A4%9C%E7%B4%A2&lr=

があるだけでしたが、これって何かのクラスなのでしょうか。このページ開いても
該当箇所は見られませんでした・・・う〜ん困りました。。。

よろしければご指導の続きを戴ければありがたいです。すみません・・・。


836 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:34:16 ]
>>834
internalなクラスだから説明はどこにもないと思う。
手元にあるのはC#のコードだけど適宜よみかえてちょ。

void contextMenuStrip1_Closed( object sender, ToolStripDropDownClosedEventArgs e )
{
    Type t = Type.GetType( "System.Windows.Forms.ToolStripManager+ModalMenuFilter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" );
    MethodInfo mi = t.GetMethod( "ExitMenuMode", BindingFlags.NonPublic | BindingFlags.Static );
    mi.Invoke( null, null );
}

837 名前:デフォルトの名無しさん [2007/06/24(日) 18:56:16 ]
ContextMenuStrip の中のどれかをクリックして実行すると(それが空の関数であっても)
問題は起こらないため、一つ考えられるのは、 ContextMenuStrip の Closing
イベントでそれを強引に実行してやればどうだろう、とも思ったのですが、この
強引にコードから ContextMenuStrip の中のどれかに Click イベントを起こすためには
どうすればいいでしょう、これについて知りたいです。
よろしくお願いします。



838 名前:デフォルトの名無しさん [2007/06/24(日) 18:58:05 ]
>>836
おお、どうもです!!かぶってすみませんでした。
こういう方法あるんですね、ありがとうございます。
助かります。やってみます!!



839 名前:838 [2007/06/24(日) 20:53:38 ]
>>836
素晴らしいです、みごとに一発で解決しました。

一時は本当にどうしたものかと悩みました、でもこれで助かりました。

>internalなクラスだから説明はどこにもない

やっぱり一般人には知りえない内容なのでしょうか、
もしかしてMSの人じゃないとわからない、とかでしょうか・・・

でも本当に助かりました、ありがとうございました!!


840 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:25:37 ]
Reflectorだろ

841 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:42:37 ]
vbというよりもフォームの質問なのかもしれませんが、
初心者スレが見つからないのでここで質問させていただきます。

グループボックスの中にラジオボタンがいくつかと、ラベルをひとつ配置します。
そのラベルの中にラジオボタンをいくつか配置した上で、
ラベルの外(グループボックスの中)のラジオボタンとラベルの中のラジオボタンを
同じグループとして扱いたいのですが、どのように設定したらよいのでしょうか?
お分かりの方がいらっしゃいましたら御教示お願いいたします。

842 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:44:29 ]
そんな変態行為は .NET では認められません

843 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:45:37 ]
おぁー!変体行為だったんですか。
それは困りました。どうしましょう?

844 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:46:36 ]
さぁ。

845 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:17:59 ]
>>841
ラベルはコンテナコントロールじゃないよ。
言ってる意味わかる?

まあ、「初心者スレが見つからないので」とか言ってるが
質問なんかせめて初心者本の数冊も読破してからにしてくれよ。

846 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:18:41 ]
こういうのっておおっぴらに使うか悩んだりしない?
まあ、ネット上で見つけた情報を利用したって立場をとるんだがw


847 名前:826 mailto:sege [2007/06/25(月) 00:19:44 ]
>829
遅くなって申し訳ない、ありがとうございます。

848 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 02:40:29 ]
>>846
「こういうの」ってのが何を指してるのかさっぱり。



849 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:24:33 ]
>>839


850 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:33:11 ]
>>841
ユーザコントロール作れ

851 名前:デフォルトの名無しさん [2007/06/25(月) 14:55:01 ]
誰か助けてくたざい。
VB2005で、プログラムが完成して、動作を確認できました。
そこまではよかったのですが、実行ファイルを共有フォルダー(サーバーに)
において、実行すると、どうしても実行できません。実行できたとしてもまともに動作しません。
これの解決策だれか知りませんか?


852 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:58:26 ]
ヒント:カレントディレクトリ

853 名前:デフォルトの名無しさん [2007/06/25(月) 15:04:38 ]
サーバに実行ファイルがおいてあるんだろ?
普通は実行できないだろ.
MSDNに書いてある.

854 名前:デフォルトの名無しさん [2007/06/25(月) 15:06:36 ]
>853
それを実行する方法を知りたいのです。

855 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:26:09 ]
素人にはおすすめしないがポリシーをいじる。
コントロールパネルの管理ツールの
.NET Framework 2.0 Configuration ランタイムセキュリティポリシー
(他をいじってなければ)コンピュータのコードグループのAll_Codeの下に
新規作成の条件の種類を選択するでURL:\\サーバー名\共有名\*
アクセス許可セットFullTrust

インストーラを作るかClickOnceを使うかかサーバーからローカルにコピーさせるかをすすめる。

856 名前:デフォルトの名無しさん [2007/06/25(月) 16:12:33 ]
むしろこれはVB.NETの問題ではないな・・・

つうか、あれか・・・クリックワンスのまえのやつやりたいのか?
名前忘れたけど

857 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:23:03 ]
ノータッチ デプロイメント?

858 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:39:38 ]
気持ちは良く分かる。

正直セキュリティが云々言われても無駄に面倒くさい。

ちょちょっとしたものを作って共有しようとしても
インストーラやらClickOnesやら、、、。


ちょっと話がずれるが必要なDLLとかは、実行ファイルへ含めるもしくはフォルダ等へ
指定できたら良いのに。
この時代に容量削減も糞も無いだろう。

実行ファイル1Gとか上等じゃねーか。



859 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:59:56 ]
質問です。
いまFramework1.1で勉強中なのですが
1.1のNotifyIconはバルーン?が表示できなかったので
いろいろ調べて
ttp://supware.net/?notifyiconex
に辿りつきました。

このクラスを使うとバルーンは表示できるのですが、
ContextMenuがどうしても表示できません。ContextMenuのPopupイベントは反応あるのですが・・・

色々検索してみて大量にヒットするC#のコードを見る限りおかしい所は
自分の力量では発見できないので、ヒントでも構いませんので助言をお願いします。
環境はWindowsXP、Framework1.1、メモ帳です。

以下のコードを同上のクラスの下に書き、コマンドプロンプトでコンパイルしています。
Module Test
Private myForm As Form
Private notifyEx As NotifyIconEx
Private cMenu As ContextMenu
Sub Main()
cMenu = New ContextMenu
cMenu.MenuItems.Add("Item1")
notifyEx = New NotifyIconEx()
notifyEx.Icon = New Icon("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ndpsetup.ico")
notifyEx.contextMenu = cMenu
myForm= New Form()
myForm.ContextMenu = cMenu
myForm.ShowDialog()
End Sub
End Module

860 名前:859 mailto:sage [2007/06/26(火) 20:49:34 ]
なんか俺の質問でスレが過疎ったみたいで・・・・(´・ω・`)

調べたらTrackPopupMenuExがうまく動作してなかったみたいなんで
試行錯誤してNotifyIconExのTrackPopupMenuExを修正して
ContextMenuがでるようになりました

はっきりと原因した原因はいまだ不明ですが
とりあえずしゅっくり勉強したいと思います。

861 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:47:38 ]
>>859
>Framework1.1で

今古いランタイム使う意味は何でしょう?
行きがかり上のしがらみ?それとも以前のもののバージョンアップ
でしょうか?もし新規アプリなら2.0以上でやるべきではないでしょうか?

862 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:59:18 ]
それは大きなお世話だと思うぞ。

863 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 10:37:28 ]
>>859-860
コマンドプロンプトでコンパイルしている人間がここにはいないんだろう。

864 名前:デフォルトの名無しさん [2007/06/27(水) 13:17:50 ]
>>861
おまえ某MVP臭いぞ
仕事してたらわかるだろ? 仕方ないときもあるんだし

865 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 16:04:39 ]
でも>>859の場合は多分勉強だよ?
VB.NET Expressでいいやん

866 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:17:35 ]

ちょっと安めおまいら。これでも見ろ。知らない人間は えーーーーっと驚くこと請け合いだぜ。

「911」の真実とはダイジェスト版 ? 日本語と英語 ? .movフォーマット ? 31分 - 23MB
www.harmonicslife.net/gallery/main.php?g2_itemId=3443

「動画をダウンロード」 をクリックすると、動画が始まるまでに20分ぐらい待つと
自動開始する。

30分ぐらい待ってもよければこっちも見る。こっちは詳細バージョンだから、上のを見て
興味もったらぜひ見てみれ。

『911の嘘をくずせ ルース・チェンジ・セカンド・エディション』 日本語版 - ウェッブ・バージョン ? .mov フォーマット ? 83分 - 83MB
www.harmonicslife.net/gallery/main.php?g2_itemId=1225

要するに俺らはこういう戦争に加担しちまった。おれも当時は小泉に賛成しちまって
ネットで賛成派に回っちまったよ。だが悪いことだった、北朝鮮のミサイルが来るって
ことでアメリカとは同盟するしかないって信じ込んでた。しかしこれを見れば、
ちょっと待て日本はこれでええのか?と疑問になるはず。



867 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:26:46 ]
003はフランソワーズ   まで読んだ

868 名前:859 mailto:sage [2007/06/27(水) 22:52:37 ]
>>861
確かに勉強中なんですが、職場にはFramework1.1のvbc.exeしか
はいってないので昼休みとかにも弄るために1.1でやってます。
基本はそんな変わらないだろうってことで。
職場はネットにも繋げないんでヘルプもクラスライブラリをHTMLで保存して
CDに焼いて持ち歩いてたりします。
家にはVB2005Expressインストールしてあるんですけどね・・・

>>863
やっぱ危篤な人種なのか・・・
dllとかを毎回入力するのが億劫なんで
簡単なHTA作ってコンパイルしてます。
とか言ってたらこんなん見つけました
ttp://www.sliver.com/dotnet/SnippetCompiler/

ところで、
「FileSystemWatcherで共有フォルダにあるExcelファイルが更新された場合にバルーンでその旨を表示」
というコンセプトで勉強アプリを作り始めたのですが、
Excelは「開く」「閉じる」だけで、更新日時が変更されNotifyFilters.LastWriteを設定しても
正確な情報が取れないことが分かりました・・・
自分で考えつくのは、

変更されたらファイル名と更新日時の値を保持して次に同名ファイルが更新されたら比較する

といったものなのですが、もっと良い案や確実に更新されたのを取得できる方法がありましたら
アドバイスお願いします&このスレの住人さんはレベルが高そうなんで
素人はこっちいけや〜的なスレがありましたら誘導していただけると嬉しいです

ここからずっと俺のターン?(´・ω・`)





869 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 01:44:00 ]
>このスレの住人さんはレベルが高そうなんで
ナニヲイッテイルンダ


定期的にファイルのハッシュ比較するとか
前回保存日時で比較するとか
すりゃいいんじゃね?

870 名前:デフォルトの名無しさん [2007/06/28(木) 09:05:36 ]
みなさんこんにちは。お尋ねします。

通常のLabelですと後ろに引っ込んだ3D形状はあるものの
手前に出っ張った形状は付属されていないのですが、
どこかのサイトで、手前にふくらみのあるラベルコントロールなどが
あるところをご存知ないでしょうか?

それともこういったものは有料のものになるのが普通でしょうか?
昔、LabViewというものを触ったことがあり、それには手前に出っ張って
いるガジェットがたくさんあったのを記憶しています。あれと同じような
感じに見えるものがほしいのですが、

もしご存知の方がおられましたら教えて戴きたく、
なにとぞよろしくお願いします。



871 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 10:00:47 ]
>>870
LabelのPaintイベントで自分で描画する。
例えば
Label1のPaintイベントに
e.Graphics.DrawRectangle(New Pen(SystemColors.ControlDarkDark), New Rectangle(0, 0, Label1.Width - 1, Label1.Height - 1))
e.Graphics.DrawLine(New Pen(SystemColors.ControlLightLight), 0, 0, Label1.Width - 2, 0)
e.Graphics.DrawLine(New Pen(SystemColors.ControlLightLight), 0, 0, 0, Label1.Height - 2)
微調整はお好みで。

872 名前:デフォルトの名無しさん [2007/06/28(木) 10:08:31 ]
>>871
これって、自分で描画できるものなのですか!凄い。
ありがとうございます、やってみます。助かります。

873 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 15:51:21 ]
>>871
直接描画するんじゃなくてControlPaint.DrawBorder3Dを使うべき

874 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:18:24 ]
数字をアルファベットに変換する場合、みんなはどうしてる?
たとえば、99ならninety nineとか、11ならelevenとかに変換したいんだけど(´Д⊂グスン

875 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:28:51 ]
自前で実装

876 名前:871 mailto:sage [2007/06/28(木) 16:30:14 ]
>>873
Private Sub Label1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
ControlPaint.DrawBorder3D(e.Graphics, Label1.ClientRectangle, Border3DStyle.Raised, Border3DSide.All - Border3DSide.Middle)
End Sub
こんな感じでいいかな?

877 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:52:48 ]
>>875
めんどくさい(´Д⊂グスン

878 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:55:33 ]
>>877
このスレで一番言ってはならないことを言ったなw
もう誰も答えてくれんよw



879 名前:874 mailto:sage [2007/06/28(木) 17:07:53 ]
>>878
んだねw
↓探したらいろいろあった
www.google.co.jp/search?hl=ja&q=NumberToWord%E3%80%80C%23&btnG=%E6%A4%9C%E7%B4%A2&lr=

880 名前:デフォルトの名無しさん [2007/06/28(木) 17:26:07 ]
>>873>>876

こちらもやってみました。

実は、ユーザーコントロールで複合したものでやってみてるのですが、
Label と TextBox の組み合わせで同じ UserControl に乗っけてまして、

その際、ClientRectangle の Inflate とかが必要のようですね。+2ぐらいしないと
外形が遇わないようです。

ところで、この Raised を使った場合、それを通常の BorderStyle プロパティに
追加して選択できるようにもしたいのですが、UserControl なのでPropertyを
Overrideして追加するとしたら、どういった感じにすると出来るでしょう?
ご指導戴ければありがたいです。

881 名前:デフォルトの名無しさん [2007/06/28(木) 17:28:11 ]
普通にプロパティつくってその中でいじってやればいいんじゃねぇ?
やり方は好みだとおもうんだが・・・・

オーバーライドする必要がないと思うから

882 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 17:32:32 ]
>>880
UserControlじゃなくてLabelクラスをオーバーライドするほうがスマート

883 名前:882 mailto:sage [2007/06/28(木) 17:33:38 ]
すまんオーバーライドじゃなくて継承ね

884 名前:880 [2007/06/28(木) 19:31:41 ]
>>881
なるほど、UserControl だと、そのものの Property になるということですね。

わかりました、助かりました。

>>882-883
そういう方法もあるということですね。今こちらのはTextBoxと他にもうひとつ
Labelも使ってたので、むずかしそうだったため、UserControl にしてしまってました。
たぶんよく理解していればできるのだと思うのですが、組み合わせコントロールとしては
デザインモードでの視覚的な組み合わせが楽な UserControl にしてました。

その方法での実現についてはまた勉強して考えてみます。

885 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:25:32 ]

user.configの仕様どうにかならないかなー。
MySettingsで保存する際に、保存場所を指定できたらすごく便利なのに。。

バージョンごとに保存先が変わるとか、どうしてこんな糞仕様なのか。
せめて選べたら良いのに。

886 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:40:44 ]
>>885
MSDNみたら
user.config は System.Windows.Forms.Application.LocalUserAppDataPath プロパティで指定した場所に配置されます。
とある。
試して無いけど。

887 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:38:34 ]
っていうか、恥ずかしいからMy爺さんの機能なんか使うなよw
リソースにアクセスする用途しか使ったことないぞ俺は

888 名前:デフォルトの名無しさん [2007/06/29(金) 12:39:42 ]
質問です
VB(どういうかVSのマクロ)で、ドキュメントウィンドウに文字を出力する際に
入力する文字列に,(カンマ)が含まれるとE_FAILが帰ってくるんですが
これをどうにかして,,,,見たいなのも出力できるように出来ませんかね?

具体的に言うならこういうの↓
DTE.ActiveWindow.Selection.text += "nullpo,,"
でエラーなしにする方法、,,で打ち切られないようにする方法が知りたいのです



889 名前:デフォルトの名無しさん [2007/06/29(金) 12:43:54 ]
>>887
設定保存とからくじゃないかw
俺はSettingとResource使ってるな

890 名前:885 mailto:sage [2007/06/29(金) 13:05:37 ]
>>886
おお!

どうもです。
ちょっと調べてみようっと。


>>887
初めちょっと嫌だなーとか思ったけど、使ったら超便利だった。
サクサク保存できる。

891 名前:885 mailto:sage [2007/06/29(金) 15:53:01 ]
>>886
Read only でした。

892 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:00:10 ]
次のようなクラスを作成する場合、

aaa.bbb()
aaa.ccc.xxx()
aaa.ccc.yyy()
aaa.ddd.zzz()


Public Class aaa
Public Sub bbb()
〜〜〜
End Sub

次のコードは??

End Class

教えて下さい。

893 名前:デフォルトの名無しさん [2007/06/29(金) 17:08:31 ]
適当に
やり方はいろいろだと思うけれど・・・・とりあえずで

public class c_ccc
public sub xxx
end sub

public sub yyy
end sub

end class

public class d_ddd

public sub zzz
end sub

end class

public class aaa

public ccc as new c_ccc
public ddd as new d_ddd

public sub bbb
end sub

end class


894 名前:デフォルトの名無しさん [2007/06/29(金) 17:33:47 ]
>>893
thx

895 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 20:45:04 ]
サーバに置いたexeを動かすのにexeと同じ場所にMicrosoft.VisualBasic.Compatibility.dll
が無いと動かないPCと無くても動くPCがあるのは何故なんでしょう?
OSは2KだったりXPだったりだけど、どっちでもなるのならないのあるし、
もちろんみんな.netフレームワーク1.1は入ってるし
(動かないPCでもそのDLL置いただけで動くようになった)

896 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 22:40:14 ]
>>895
.netを再インストしてみよう
com登録してなくても検索パスにdllをおいただけで動くよ

897 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:04:34 ]
>>896
thx
XPだと.netプリで入ってるけど、一度アンインストールして再インストールすればいいのかな?
一度試してみます

898 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:10:12 ]
>>895
プログラムがバージョン違いのMicrosoft.VisualBasic.Compatibilityを参照してる ってことはない?
.NET 1.1 なら ver. 7.0.3300.0 のはずだが。.NET 2.0は Ver.8.0.0.0 。
あと.NET 1.1 のSPで差が出るかどうかはわからないがその辺も調べてみて。



899 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 05:23:45 ]
こんにちは、お尋ねします。

各種オブジェクトのイベントの発生順序に関する一覧表のようなものは
どこかのサイトで公開されていたでしょうか?

(例えば TreeViewコントロールのTreeNodeをクリックした後の各種イベント
MouseClick,Click,OnBeforeSelect,OnAfterSelect などの発生順序、等です)

こうしたものはすべてのイベントについて実験していくことは可能なのだとは
思いますが、できたら理論的に分っているものがあれば、そのほうが正確で早い
と思いました。

もしご存知でいらっしゃいましたら教えて戴きたく。よろしくお願いします。

900 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 06:26:29 ]
強いて言うならMSDN

901 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 10:34:09 ]
つか常識的にMSDN

902 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:44:35 ]
MSDNとS・G・G・Kって何か似てるよな

903 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:44:35 ]
たぶん OnBeforeSelect は OnAfterSelect の前

904 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:52:13 ]
>>899
そういうこと言いたい気持ちはよく分かるんだけど、
実際自分で試すのが一番正確で速いでしょ、どう考えても。

というか、まあ一概には言えないけどコントロールのイベントの発生順序に
依存するコードというのは、ちょっと不吉な匂いがするよ。

905 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 14:43:50 ]
>>904
禿同
特にツリービューは気をつけたほうがいい

906 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 15:05:28 ]
>>900-905

MSDNですと、発生順序に関しては必ずしも明記されていないように思いました。

確か本にはFormのLoad時とClose時のものなどが掲載されているものがありました。
それと同様の情報がどなたか公開されているのではないかと思ったのでした。

それでは、また調べてみます。ありがとうございました。

907 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 16:34:26 ]
明記されていない場合は順番を当てにしない方がいいと思うよ

908 名前:デフォルトの名無しさん [2007/06/30(土) 22:22:46 ]
自分でConsoleWriteでもつかって調べればいいだろうに・・・・



909 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 22:36:44 ]
俺も前にトレイからの復帰時にtreeview関係のイベントが起きて困ったもんだ

910 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:29:39 ]
順番を当てにされたくないから意図的に明記してないのかもしれないし

911 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:40:46 ]
いやそういう問題でももちろんあるんだけど、
「イベントの順序に依存したコードの不吉な兆候」というのは、
仮にそれ(イベントの順序)が確定しているとしても、それを人間が正しく
認識していないと意味を把握できないコードになりがちだから
保守性や拡張性の点で問題があるということでしょ。

912 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 15:37:39 ]

GroupBoxの線の色を代えられないとか、どんな仕様にしてるんじゃ.NETは〜!!

ちょぼちょぼ、痒い所に手が届かない風にコントロールなどが
作られてあって面倒くさい。

つうか、折れも画面を作る前に気が付けよ・・・。
は〜〜〜。orz

913 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 15:51:28 ]
馬鹿の要望きいてるほどMSも暇じゃないんじゃね?

914 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 16:01:51 ]
文句はチラシの裏に書け。
質問なら、素直に聞け。
思わせぶりな文章書いて、対策案を貰おうとしている様が見え見えで引く。

915 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 16:32:44 ]
>>913-4
すいません。愚痴でした。
確かにチラシの裏に書いとけば良かったです。

まあ、もう、解決したんですが、その方法もチラ裏に書いときますわ。

いや、しかし.NETはほんとに、ちょっと足りないよ。
DateTimePickerは空に出来ないとか、FileDialogでフォルダとファイルの選択が〜とか。
ま、こちらも解決しているんで、今となってはどうでも良いですが。


916 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 17:56:26 ]
>>915
だからチラシに書けよ。書き込むな。

917 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 17:58:22 ]
質問スレに愚痴てwwwwwどんだけwwwwwwwww

918 名前:デフォルトの名無しさん [2007/07/02(月) 18:16:42 ]
>>915
>いや、しかし.NETはほんとに、ちょっと足りないよ。
いや、足りないのは君の頭と想像力と解釈力



919 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 20:05:50 ]
>>915
標準コントロールの機能が十分だったらサードパーティ涙目だろが

920 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 20:16:06 ]
というより、たまたま俺様が欲しいと思ってる機能がないのは何でじゃ〜(ムキー)
っていうのはちょっと精神病チックだよね正直w

まあ20%ぐらいは共感できる部分もあるけど、ドトネトの場合比較的簡単に
コントロールの機能が拡張できるから俺はそんなに不満はないなあ。

ただ、ToolStrip関係はもう少しなんとかならなかったのか?とは思わんこともない。
クラスライブラリ的に醜すぎるし、拡張がしづらいんだよねToolStrip関係は。

921 名前:デフォルトの名無しさん [2007/07/03(火) 12:01:30 ]
業界未経験ですが、PGの面接に行ったらVB6をやってもらうと言われました。
現職場でVB.NETではアプリケーションを作ったこともあり、受注先に納品した
り、社内でのデータベースを構築した経験(図書管理など)もあります。

.NET→VB6へ下がってしまうのがなんか時代に逆行するようで嫌なのですが、
.NET→VB6への移行(頭の切り替え?)はやっぱり難しいものでしょうか?
一応、エクセルのVBAはフォームまわりやファイル処理はできます。

922 名前:デフォルトの名無しさん [2007/07/03(火) 12:13:28 ]
VBA+αくらいで考えとけばいいんじゃない?

意向が難しいかどうかは人それぞれだけど たぶん君なら大丈夫

ただ・・・いろいろ.netならなぁ・・
とか思うことは多いだろうな・・・・

923 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 14:02:48 ]
If文とか書いたとき、自動でEnd Ifを挿入してくれなくてイラつくと予想。

924 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 14:03:27 ]
VB.NETなら誰が書いたコードでもそれなりに理解できるが
アホがVB6で書いたコードは何がどうなってるのか読むのが大変

925 名前:デフォルトの名無しさん [2007/07/03(火) 14:05:35 ]
2005のWindows.Formアプリで質問です。

DataGridViewのコンボボックスカラムを使用してデータを選択させています
このデータはDataSourceで指定されたデータを使用しています。

問題はこの後で、データの文字がセルの幅を超える場合、ドロップダウンが表示されたときにすべて表示されない状態になっています。
オーナードローすればいいんでしょうが、幸いDropDownプロパティがあるのでこれを使いたいと思います。

このとき、普通であれば表示させるデータをなめてMeasureStringで最大幅を設定するのでしょうが
データ取得に時間がかかりデータ数が多いこともあり、できるだけループで回すようなことをしたくありません。

もし何か回避する方法があるのであればお教え願えませんか?
もし無いのであれば諦めてデータをなめて最大幅を設定しようと思います。

926 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 14:24:00 ]
>>925
AutoSizeMode = AllCells でいいんじゃない?

927 名前:デフォルトの名無しさん [2007/07/03(火) 14:31:51 ]
>>926
あ〜そういう手がありますね
早速やってみたところドロップダウンが奇麗に表示されました。
長い文字を選択するとセルのサイズ変わっちゃうけど、まぁこれはこれで取りあえず置いておいてつづけようかと思います。
(Keyの項目なので表示しきる必要はあると考えて)

回答ありがとうございました。

928 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 05:41:03 ]

ところでおまいら少し安め。

ベンジャミンフルフォード 「日本はここから侍のこころを取り戻そう!」
www.harmonicslife.net/PodCasts/2006/Yumi20061013Podcast_911Fulford.mp3





929 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:07:03 ]
文字コードの自動判別ができるのはどのバージョンのVB.NET?

930 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:20:07 ]
むしろその日本語ってどんなバージョンだよw
頭おかしいんじゃねえの

931 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:38:56 ]
多分それができるころにはVBはなくなってると思う

932 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:10:25 ]
C:\WINDOES\fontsのなかにあるEUDC.TTEをローカル(C:\copy)にコピーしたいんですが、
System.IO.File.Copyを使ってもwindowsに変な影響出たりしませんか?

933 名前:デフォルトの名無しさん [2007/07/04(水) 23:39:43 ]
DatagridViewでデザイン時にカラムを追加してPropertyName設定してテーブルをバインド

データソースの中身Dispose+Nothing

同じ構造の別テーブルをDataSourceにセット

最初にデザイナで追加しておいたカラムがDataGridViewのColumnsから消えてる

( ゚Д゚)ポカーン
気付くまで30分かかったw

934 名前:932 mailto:sage [2007/07/05(木) 09:36:36 ]
自己解決しました。

935 名前:932 mailto:sage [2007/07/05(木) 12:26:34 ]
↑って誰ですか?
解決してないんですけど

936 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:35:11 ]
>>932
削除とかならまだしも、普通にコピーとるだけなんだろ?なにを心配してるんだ?
馬鹿らしくてみんな答えないだけだよ。

というか自分で試せることだろ?
心配なら復元ポイントでもつくってやってみろ。

937 名前:デフォルトの名無しさん [2007/07/05(木) 13:18:45 ]
>>936
こういう馬鹿は試しもせずに聞いてくるからたちが悪い
失敗から学ぶことのほうが多いというのに

938 名前:デフォルトの名無しさん [2007/07/05(木) 19:27:17 ]
コンポーネントってデザイナでフォームじゃなくなんか下の方に置かれるじゃないですか?
カスタムコンポーネントを作ろうとした場合、どうやってフォームの情報を取得するんですかね?



939 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:29:12 ]
Containerをフォームの型にキャストすればいいんだけど
そうするとコンポーネントとして分離した意味がなくなるからそういうのはダメ

940 名前:デフォルトの名無しさん [2007/07/05(木) 19:45:04 ]
ぇぇー、ダメって、例えば貼り付けるだけでフォームの特定のコントロールにほにゃららな
機能を追加するってようなのもダメぇ?コントロールをカスタムるより楽じゃん?

941 名前:デフォルトの名無しさん [2007/07/05(木) 20:15:37 ]
OSのGUIを使わず、アカウントがビルドインユーザ
であるかそうでないか判断する方法しっている方
いましたら、教えて欲しいです。
Visual Basic .NET プログラムで実装します。
 コマンド、Win32_API 、レジストリ、WMI
でもかまいません。

942 名前:デフォルトの名無しさん [2007/07/05(木) 20:20:07 ]
いや・・・いろいろ方法ありますよ

943 名前:941 [2007/07/05(木) 22:20:28 ]
ちょっと文章がおかしかったっす
Visual Basic .NET プログラムで実装します。
クラスライブラリ、コマンド、Win32_API 、レジストリ、WMI
どれか1つでかまいません ということです




944 名前:941 [2007/07/05(木) 23:02:18 ]
自己解決しました。

945 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:14:09 ]
>>940
どうやんのそれ
プロパティで対象のコントロールを直接指定するの?
それなら>>938みたいなことをする必要は全くない
フォームの特定のコントロールを勝手に参照したら
そのフォームに依存してしまうだろ

946 名前:デフォルトの名無しさん [2007/07/06(金) 02:50:00 ]
>>941
なに使ったの?
俺は調べきれなくって 時間なかった時だったんでNetUserEnum 使ったんだが


947 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 04:01:19 ]
WindowsPrincipal じゃね?

948 名前:デフォルトの名無しさん [2007/07/06(金) 06:31:03 ]

Objectクラスの MemberwiseClone メソッドについて教えてください。
これで Clone を作って調べてみると、

  cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名)

ここで、元のオブジェクトインスタンスと別ものらしいこと

  cntrlClone IsNot cntrl  は True 

はわかったのですが、Control でこれを使って作ったCloneを操作すると、
元オブジェクトのインスタンスが操作されてしまいました。

この cntrlClone の Size や Location を変えると、元の cntrl が動いてしまい、
cntrlClone の方は該当の場所には現われてすら来ませんでした。

MemberwiseClone メソッドで作成されるCloneというのは、どういうものなのか
今一よくわからず、これは別のインスタンスを完全に別ものとして作成するのでは
ないということでしょうか、あるいはまた扱い方に問題があるでしょうか。

よろしくお願いします。



949 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 06:51:01 ]
>>948
MemberwiseCloneは直接のメンバーのコピーしかしない。
メンバーとして参照型のオブジェクトを持っていた場合は参照しかコピーされないので
コピーされたオブジェクトは同じ子オブジェクトを参照することになる。

950 名前:デフォルトの名無しさん [2007/07/06(金) 07:16:55 ]
>>949

その 「メンバー」 の意味するものとは、元オブジェクトのフィールドのことですよね、

しかし、Clone 自体のインスタンスは、明らかに、元オブジェクトのインスタンスとは
別物になるはずですよね?

それが、cntrlClone と cntrl が別ものとして

   cntrlClone IsNot cntrl  は True 

とはなっているのに、cntrlClone を操作すると、どういうわけか、cntrl が動いて
しまうようなのです。cntrlClone と cntrl の両方が画面に現われるかと思っていると
片方しか現われないのです。つまり、cntrlClone はで来ていないかのように見える
のです。

こういうことはおかしいように思うのですが、よくわからないのでした。

951 名前:デフォルトの名無しさん [2007/07/06(金) 07:20:06 ]

それとも、cntrlClone への操作が、自動的に cntrl 側にも同時に伝わってしまって
同時に2つとも同じ操作の対象になってしまっているのでしょうか??

まさかそういうことはちょっと信じられないのですが・・・。

952 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 07:37:17 ]
class B { public int Ope() { .. } }

class A {
  B b = new B();
  public int Ope() { return b.Ope(); }  
}
こういう構造ならいくらAのクローンを作ってもBはひとつ。
a もクローンa もインスタンスは違っても共通の動作になるだろ

953 名前:デフォルトの名無しさん [2007/07/06(金) 07:54:52 ]
>>952
そのおっしゃってることの意味は>>949の意味かと思いますが、

画面にすでに cntrl があった場合に、>>948のように

  cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名)

のようにして作成した場合、実体として cntrl と cntrlClone は別モノで、
別々のコントロールとして作成されるとすれば、

  cntrlClone.Top = cntrlClone.Top + 10

と操作したら、cntrl の Top が +10 してしまうのはおかしいのではないかと・・・

それとも、cntrl が何かの派生であった場合、Baseクラスに対しても Clone を
別に作成しないといけない、というようなことなのでしょうか?まさか


954 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:13:15 ]
Windows.FormsのFormやらButtonがどういう構造になってるかは知らんが、
実体はWin32のアンマネージドリソースなんだから、
SizeやらLocationやらは毎回Win32のリソースに問い合わせてる可能性が高いぞ。
そうなると両方のオブジェクトが同じハンドルのWin32リソースを操作するわけだから
同じになるのは当然だろ。
ICloneable.Cloneが実装されてないのに、中身もわからないクラスのクローンを作るのは
無謀だと思うぞ。

955 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:19:32 ]
>>953
既に954が書いてるし、俺はあまりWin32に明るくないんだけど、
要するに、例えばFormにTextbox1があるとして、Form上に見えている
テキストボックスはTextbox1そのものではなく、「Textbox1が内部にもっている何物か」
に過ぎないということなんでしょう。

それなら話の辻褄あうでしょ。

956 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:44:23 ]
>>954-955

どうもです、やっぱり 

  cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名) ・・・[1]

で コントロールの別実体の Clone が作れると思わない方がいいでしょうか?

ICloneable.Clone については、
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=27051

なども参照してみて実装してみたりしてますが、この使い方では結局 Clone
の作成は [1] でやっているんですよね。

普通に最初から New でコンストラクトして、必要なフィールドなどを値でコピーして
地道に作成するほかないでしょうか。そうなると、 MemberwiseClone の利用方法が
今一不明になるわけですが・・・どうもよくわかりません

957 名前:デフォルトの名無しさん [2007/07/06(金) 08:48:58 ]
>>956

あっ、これ書いてみて今気がつきましたが、この参照サイトにあるのは [1] ではなく、

  Dim hWankuma As WankumaData = DirectCast(Me.Clone(), WankumaData)

・・・
Private Function Clone() As Object Implements System.ICloneable.Clone
Return Me.MemberwiseClone()
End Function

となってるところが違うのか・・・、もしかしてこれでしたか?ちょっとやってみます。
だとしたら自分の使い方のミスですね。飯食ってからやってみてまた報告します。
どうもでした。

958 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 09:41:34 ]
ああ、くそう
ここで交わされる会話がスラスラ理解できるようになりたいw



959 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 11:14:28 ]
たいしたこと言ってないから

960 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 12:36:43 ]
>>956-957
なんか書いてること読むと基本が理解できてない感じ。
自分でクラス作れない人?

だったら場当たり的な「調べ方」では永遠に埒あかないと思うよ。

少なくともクラスと構造体の区別が理解できていれば、
フィールドの値(オブジェクトのメモリーイメージ)だけ複製しても
無意味な場合があることはすぐ理解できるはず。


961 名前:デフォルトの名無しさん [2007/07/06(金) 12:58:22 ]
>>960

うーん、おっしゃってることは分ってるつもりですが、
要はコントロールの複製を作るにはこういうメソッド使えない
ということでしょうか?

もし使えるとしても、では後何をどうすれば複製を作成できるようになるでしょう?

毎回、Newでコンストラクトして作成して、それにフォールド値をいちいちコピーする
やり方では、クラスをバージョンアップしてフィールドが増えたりするたびにそこに
手を入れる必要があるので忘れやすく、そういうことを防止するためにはこのメソッドを
使うほうがいいという感じで書いてあるところが多くあるかと思います。

では、現実の実体としてコントロールをこのメソッドも使って複製したい場合、
どれとどれとどれのどのような手続きをへて可能になるのか、それが知りたいのですが、
現状の知識ではわかりません。またそうした使い方をして説明してあるサイトが見つからない
のです。

ちなみに、当然というか、>>957で試してみてもやっぱりだめでした。まー同じことだろうとは
思ってましたが、やっぱりその通りでした。


962 名前:デフォルトの名無しさん [2007/07/06(金) 13:03:03 ]
>>954-955のご指導もありましたが、もしオブジェクトの実体を指すインスタンスが
別途にできていないのだとするとそういうことになるのかもしれませんが、
しかし、たとえフィールド値のコピーだけだとしても、そうだとすると、コントロールの
実体を指すプロパティが他にあって、それのCloneを作成する必要があるということ
でしょうか?

もしよろしければ、その辺をご指導いただけますか?

963 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 14:27:19 ]
>うーん、おっしゃってることは分ってるつもりですが、
ダウト


>コントロールの 実体を指すプロパティが他にあって、それのCloneを作成する必要があるということ
>でしょうか?

大雑把にいうと
Control ->
NativeWindowクラスのプライベートフィールド->
IWin32Window(Win32ハンドルのラッパ)->
アンマネージドの世界

素直にICloneableを実装して必要なフィールドを自力で埋めろ、ってこった。


964 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 15:21:46 ]
意識的に自分で使ってるプロパティだけ新しいオブジェクトに移せばいいだろ
コントロールなんて大概「同じもののように見える」で十分
手軽にできるようにしたかったら,
コントロールの初期化をラップしといて簡単に再現できるようにするとか

965 名前:デフォルトの名無しさん [2007/07/06(金) 15:28:26 ]
>>963
どうもです。

おっしゃてることは、ですから、要するに、

>>957
Private Function Clone() As Object Implements System.ICloneable.Clone
  Return Me.MemberwiseClone()
End Function

の中の Return Me.MemberwiseClone() は使えません(>>961の通り)ということで、
全部毎回フィールドを自分で世話するという、以前からある手法でやるほかない、
ということなのですね。

つまり、少なくともコントロールに関するかぎり、 MemberwiseClone() は有効にはならず
利用できない、ということで納得するほかないと・・・。わかりました、ということはせっかく
MemberwiseClone() というメソッドが継承されていても、使えないメソッドなのだという
ことなのですね、少なくともControlクラスにおいては。

ではやはりそのようにするしかなさそうですね。ご指導感謝します。

966 名前:デフォルトの名無しさん [2007/07/06(金) 15:29:58 ]
>>964

同様のご意見ということで、わかりました。無理そうなので
結局そういう感じでやることに致しました。

967 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 16:42:48 ]
>Dim hWankuma As WankumaData = DirectCast(Me.Clone(), WankumaData) 
Wankumaってここを見たんだろうけど、
blogs.wankuma.com/jeanne/archive/2006/04/06/22272.aspx
blogs.wankuma.com/jeanne/archive/2006/04/07/22287.aspx

ICloneableの実装の説明としてみると例えとして変なので軽く理解したら他をあたったほうがいい。

968 名前:デフォルトの名無しさん [2007/07/06(金) 17:03:04 ]
ADO.NETでウィザードを使ってデータベースに接続したり,コントロールに連結したりした
アプリケーションを配布する場合,データベースへのパスがユーザによって変わってくる
と思いますが,どこでConnectionStringの変更を指定したらいいのですか?

具体的には,ウィザードを使うとFormのRegion〜EndRegionの間にOledbConnectionに関する
記述がありますが,配布した時に最初にデータベースの位置をユーザが指定して,それを
レジストリに書き込みたいのですが,それに関する記述はどこに書いたらいいでしょうか?
Form_Loadですか?



969 名前:デフォルトの名無しさん [2007/07/06(金) 18:49:34 ]
CheckdListboxコントロールの継承に関して質問です。

このコントロールの中にあるItemsにAddやRemoveなどのコマンドがありますが、
こちらを継承、もしくはItemsにメンバー変数などを追加するには
どのようにすれば良いのでしょうか?

やりたい事は、CheckdListboxコントロールは、主にItemsの「Index、item、Checked」と
三つの情報を取り扱いますが、こちらに一つ追加したい。

現状は、CheckdListboxコントロールの継承クラスに、メンバーを追加して、
ItemAdd とか ItemRemove とかを作って無理やり実現させています。


970 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:50:50 ]
>>945
ヒント:ErrorProvider

971 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:52:48 ]
>>969
継承についてもっと勉強してください。
あなたの考えてることは不可能です。

972 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 23:02:22 ]
>>971
その前に君969の言ってることがわかるの?
俺にとっては>>969の文章はサッパリ理解不能なんだが。
きっとエスパーなんだね君は。

自分の勝手な想像と書いてあることの区別がつかない痛い奴でなければ。

973 名前:デフォルトの名無しさん [2007/07/06(金) 23:38:51 ]
>>972は自分でさっぱり理解不能な場合、答える人は
全てエスパーに見えるらしい。

…あ、釣りですか。そうですか。

974 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 23:43:46 ]
いや釣りじゃなくて嫌味ね。
しかし、嫌味が通じない人間の人生ってきっとさぞかし「楽しい」んだろうな。
おっと、この人嫌味が通じないんだったなw

975 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:14:44 ]
くだらね。

976 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:54:58 ]
なんか最近.net関連のスレに気違いが混じってるなぁ

977 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:56:52 ]
「釣りですか」というのが嫌味だと理解できなかった可哀相な人がいるスレはここですか?

978 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 01:01:31 ]
そういや「全てエスパーに見えるらしい」ってもの嫌味の部類だよなあ
通じなかったみたいだけど。



979 名前:969 [2007/07/07(土) 09:52:05 ]
自己解決しました。

980 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:09:52 ]
>>932がさっきから腹いせにスレを荒らしている件

981 名前:デフォルトの名無しさん [2007/07/07(土) 10:26:25 ]
フォォムのLoad中〜Load完了までの状態を判定するにはどうすればいんですかね?
Visible=False Then じゃなんとなくダサいんですが

982 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:49:43 ]
だれが判断したいわけ?


983 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:29:48 ]
>>982
入社2年目のプログラマーです

984 名前:デフォルトの名無しさん [2007/07/07(土) 13:01:08 ]
自作コントロールのItemプロパティを作成したんだけど
出来ればデザイン時に項目を設定できるようにしたいんです。

確かシリアライズ出来るようにしなければいけないと思ったんですが
ちょっと情報が探せませんでした。
ご存知の方簡単で構いませんのでお教え願えませんか?


985 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 13:18:26 ]
>>984
ん?propertyになっているなら、デザイン時に設定できるだろ?

986 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:08:17 ]
>>984
悪いけど酷い日本語だなあ。何が言いたいのか意味わからんよ。

なので推測で答えるけど、プロパティグリッドで独自のUIを使いたいってことなら
多分ここの記事が参考になると思う。

www.comrade.co.jp/component/dotnetroom/index.htm

987 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:18:56 ]
デザイナまで作ろうってんじゃなくて単にプロパティウィンドウに出したいだけじゃねぇの?
BrowsableAttribute属性付けるだけでいいレベルじゃないのか。

988 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:25:21 ]
プロパティグリッドが俺やアンタの作った俺様コレクションの俺様アイテムの
編集方法を理解できるわけないでしょアホか。



989 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:52:08 ]
日本語云々に拘っている変な人がいるよね。

990 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 16:09:18 ]
向こうで書きにくくなったJittaが暴れているんだろ。

991 名前:デフォルトの名無しさん [2007/07/09(月) 12:13:11 ]
VB2005で、IEのプロキシを設定したいのだけど、コマンドがわかりません。
教えていただけませんでしょうか。

992 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:17:34 ]
>>991
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
のProxyServerの値をVBでいじればいい


993 名前:デフォルトの名無しさん [2007/07/09(月) 12:18:17 ]
>>991
どんな方法で設定するのか知らないけど
HKEY_CURRENT_USER\…\Internet Settings
このレジストリいじるのじゃなくって別の方法?

994 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:45:49 ]
>>981
普通に書けば、メンバ変数
    Private m_loaded As Boolean = False
とプロパティ
    Public ReadOnly Property Loaded() As Boolean
        Get
            Return m_loaded
        End Get
    End Property
を持たせておいて、OnLoadで
    Protected Overloads Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)
            m_loaded = True
    End Sub
でいいと思いますが。

>Visible=False Then じゃなんとなくダサいんですが
Boolean値をリテラルと比較するのは「ダサい」というより「間抜け」ですね。

>>988
>俺様コレクション
かどうかは判りませんが、それが既知の型の配列であれば
何もしなくともプロパティグリッドに表示されますね。
まあ、そうならないから質問してるんでしょうけど。

995 名前:991 [2007/07/09(月) 22:15:08 ]
>>991>>992
さっそく、ありがとうございました。
とても参考になります。

まだレジストリをいじったことがないので、
まずはレジストリのいじり方を調べてみます。



996 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:25:38 ]


997 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:26:07 ]
t

998 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:26:42 ]
t




999 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:27:11 ]
p


1000 名前:小倉優子 ◆en0rG2J.f6 mailto:sage [2007/07/10(火) 09:28:10 ]
1000ならジュースでも飲むか

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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