VB.NET質問スレ (Part21 ..
[2ch|▼Menu]
357:342
07/05/25 00:38:37
>>350
>問題があるからここに〜
intにしているときとは違いlongにするとコンパイル時にエラーはでませんでしたが。

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

358:デフォルトの名無しさん
07/05/25 00:43:18
コンパイル時じゃなくて実行時だった。

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

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

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

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

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

362:デフォルトの名無しさん
07/05/25 15:31:36
とりあえず、ExpressEdition使ってみたら

363:デフォルトの名無しさん
07/05/25 17:35:05
2005で質問です。

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




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

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




366:363
07/05/25 18:22:21
連投失礼します。

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

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

367:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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
07/05/25 21:38:46
>>367-368
帰宅してたのでレス遅れてすみません
ちょっとご飯食べて試してみます


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

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

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

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

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


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

374:デフォルトの名無しさん
07/05/26 02:01:15
s = Sum(n, aa(0))

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

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

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

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

377:デフォルトの名無しさん
07/05/26 02:14:34
s as intger =0
n as intger =1
aa as string =123456

s = n + aa(0)

だとおk?
一部省略

378:デフォルトの名無しさん
07/05/26 02:16:18
aa(0)をint(aa(0))に修正↑

379:359
07/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:デフォルトの名無しさん
07/05/26 02:21:52
でたよ・・・
プログラマ特有の頭でっかち

381:デフォルトの名無しさん
07/05/26 02:23:30
>>380
頭を落としてきた人は黙ってて下さい

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

383:デフォルトの名無しさん
07/05/26 02:34:30
何か勘違いしているようだが>>335でもないし>>347でもないぞ?

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

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

386:359
07/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
07/05/26 03:24:50
間違えたorz
CharからIntegerって普通には変換できないじゃんw

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

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

389:デフォルトの名無しさん
07/05/26 07:46:16
VBでSumって組み込みであるの?

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

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

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

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

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

394:デフォルトの名無しさん
07/05/26 23:28:26
そんなの自分でソースをパースすればいいんだよ。なんでもできる。

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

よろしくお願いします。

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

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

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



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

399:デフォルトの名無しさん
07/05/28 10:28:51
何のカーソルの位置を何の行数で知りたいの

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

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

401:398
07/05/28 13:57:34
コードエディタのカーソル位置です。

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

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


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

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


404:デフォルトの名無しさん
07/05/28 15:44:50
アホをVB.NETスレから出すなよ……

ふらっとC♯, C#(初心者用) Part16
スレリンク(tech板:257番)

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

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

よろしくお願いします。

405:デフォルトの名無しさん
07/05/28 16:18:34
いや・・・これ・・・VB.NET関係無い気が・・・

406:デフォルトの名無しさん
07/05/28 16:45:46
>>405
中のソースをVB.NETで書いてたんじゃね?

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

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

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

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

410:デフォルトの名無しさん
07/05/28 21:17:50
>>408がVB6やVBAの経験があるとは限らないだろ

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

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

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

413:デフォルトの名無しさん
07/05/28 23:00:59

>>410
>>409

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

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

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


416:デフォルトの名無しさん
07/05/29 08:24:32
なるほど、だから誰も君には何も言わないわけかw

417:デフォルトの名無しさん
07/05/29 09:58:26
おまえら・・・・

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

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

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

418:デフォルトの名無しさん
07/05/29 13:26:32
何で、ってそれがVB.NETクォリティだろ

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

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

421:デフォルトの名無しさん
07/05/29 15:04:45
いいえ

422:デフォルトの名無しさん
07/05/29 15:35:18
レジストリに書いたら??

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

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

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


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

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

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

427:デフォルトの名無しさん
07/05/29 19:24:46
>>425

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

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

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


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

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

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

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

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

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

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

433:デフォルトの名無しさん
07/05/29 22:34:28
>>432
それは、そもそも可変不可では?

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

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

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

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

437:デフォルトの名無しさん
07/05/31 02:29:57
(゚д゚)ハァ?

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

439:デフォルトの名無しさん
07/05/31 11:53:27
いやいや、つか多くの言語はそうだろ

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

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

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

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

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

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

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

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

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

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

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

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


446:デフォルトの名無しさん
07/05/31 15:20:05
さすがにLocationはお粗末過ぎるだろ
自分で描画しろ

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


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

449:デフォルトの名無しさん
07/05/31 15:44:08
この機会にWPFに乗り換える

450:デフォルトの名無しさん
07/05/31 16:02:24
>>449
横レスだが

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

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


451:デフォルトの名無しさん
07/05/31 17:41:15
>>445
タイマのイベントの中でLocationですね。
調べてみます。

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

452:デフォルトの名無しさん
07/05/31 17:44:10
回答ありがとうございます。

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

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


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

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

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

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


454:デフォルトの名無しさん
07/05/31 23:11:07
透明?

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

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

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

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


456:デフォルトの名無しさん
07/06/01 00:04:30
透明といえば

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

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

457:デフォルトの名無しさん
07/06/01 00:49:50
結論:スプラッシュは不要

458:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/01 03:24:39
DLL内で使用された解放されないメモリ、てのが分からん。
そんなんがあったらアンマネージドの世界が大混乱だろ。

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

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

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


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

461:デフォルトの名無しさん
07/06/01 09:36:19
あほ

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

ただ、>>458

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

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

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

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

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

464:デフォルトの名無しさん
07/06/01 10:12:49
>>459も460もちがうんじゃんw

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




466:デフォルトの名無しさん
07/06/01 15:24:07
質問させてください。
環境はVB2005です。

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

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

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

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

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

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

468:デフォルトの名無しさん
07/06/01 15:48:49
>467
レスありがたふ。

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

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

469:デフォルトの名無しさん
07/06/01 16:26:48
>>468
ちょっwwwwww
ちょっと調べてみてたらMSDNに答えあるじゃねぇかwwwwww
URLリンク(msdn2.microsoft.com)


470:デフォルトの名無しさん
07/06/01 16:50:10
>469

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

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

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


474:デフォルトの名無しさん
07/06/02 16:14:06
>>473

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

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

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

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


476:デフォルトの名無しさん
07/06/02 16:18:11
PropertyDescriptorでなんとかなるんじゃね?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

483:デフォルトの名無しさん
07/06/04 02:15:06
オメガでおk

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

485:デフォルトの名無しさん
07/06/04 03:56:42
>>483
(´・λ・`)サンクス


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



487:デフォルトの名無しさん
07/06/04 11:14:53
ない

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

489:デフォルトの名無しさん
07/06/04 11:52:16
偶数行に特別な意味を持たせたいのならば、ないこともない

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

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


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

493:デフォルトの名無しさん
07/06/05 01:22:18
それはただの気のせい

494:デフォルトの名無しさん
07/06/05 22:46:12
携帯から失礼します
SQLの質問です

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

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

よろしくお願いします

495:デフォルトの名無しさん
07/06/05 22:50:49
>>494
やってみてダメならまたおいで

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

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

よろしくです。

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

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

499:デフォルトの名無しさん
07/06/06 00:15:27
動作をスタックにしていれとく
戻したらこんどはRedoのスタックにいれる

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

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

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

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


502:デフォルトの名無しさん
07/06/06 06:59:42
>>497
覆水盆に帰らず

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

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

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

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

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


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


505:デフォルトの名無しさん
07/06/06 14:21:17
あります

506:デフォルトの名無しさん
07/06/06 14:39:24
>>503

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

508:504
07/06/06 15:01:05
>>505
すいませんが、教えてください。


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

510:504
07/06/06 15:11:59
それをせずに、したいのです。VB5では当然のように、できてましたから。

511:デフォルトの名無しさん
07/06/06 15:32:46
>>504
IDE に戻って Ctrl+Break では不満なのか。

512:504
07/06/06 15:56:09
>>511
知らなかった。そんな方法でできたとは・・・  ありがとう。

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


514:デフォルトの名無しさん
07/06/06 21:15:38
は???
>>513
NewRowがあるじゃないか????
ん???
イミフ

515:デフォルトの名無しさん
07/06/06 21:59:15
うへへww

516:デフォルトの名無しさん
07/06/07 06:54:44
Visual Studioのマクロも子のスレでいけるんでしょうか?

517:513
07/06/07 09:31:44
>>514
ADDNEWがいいんです。

518:513
07/06/07 09:35:58
すまん。知らなかった。INSERT してた。

519:デフォルトの名無しさん
07/06/08 20:40:15
なんか最近廃れてるね。

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

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

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

521:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/08 21:21:42
なんでC#だと言語レベルでNullableをサポートしてるのに
VB.NETはサポートしてないんだろうな
逆ならわかるけど

523:デフォルトの名無しさん
07/06/08 21:27:18
なんでわかるのかわからない

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

525:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/08 21:52:18
何がわからないのか
そのように書け、としか

527:デフォルトの名無しさん
07/06/08 21:53:32
ArrayList→List


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


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

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

530:デフォルトの名無しさん
07/06/08 22:14:34
なんでテストしないの?


531:デフォルトの名無しさん
07/06/08 22:15:09
誰かができるといったら確証が持てるわけ?


532:デフォルトの名無しさん
07/06/08 22:15:51
ってかできないと思う理由は何?


533:デフォルトの名無しさん
07/06/08 22:17:40
>>528
別にごく普通の手法だと思うけど。。

534:デフォルトの名無しさん
07/06/08 22:19:48
それはおかしい

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

536:デフォルトの名無しさん
07/06/08 22:31:09
>>533
ネタだよね?ね?

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

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

Public Funtion Hoge() as List(of MyStruct)

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


538:デフォルトの名無しさん
07/06/08 23:06:10
まあ自分が使う分にはいいんじゃない

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

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


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

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


542:デフォルトの名無しさん
07/06/09 01:24:59

              ら
  な       い
             か?

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

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

Public Class IntList
Inherits List(Of Integer)
End Class

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

544:デフォルトの名無しさん
07/06/09 01:29:04
>>537
Integerはやめてって言う意味だと思う。

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


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

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


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


547:デフォルトの名無しさん
07/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だと許されるんでしょうか



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5091日前に更新/282 KB
担当:undef