VB.NET質問スレ (Part ..
[2ch|▼Menu]
642:デフォルトの名無しさん
06/12/12 22:33:05
>>639
お前さん、いい加減自分の言葉を自分自身に適用することを覚えろよ……。

っていうか、お前さん、自分の発言が俺を擁護するものであることに気づいてるか?w
そう、お前さんの言うとおり誰も答える義務はない。
だから「気に入らない奴」には回答しないんだよ。
「気に入らない奴」とは、一言で言えば自助努力をしない奴、する気のない奴だな。

「気に入らない」奴がスレに居つくのは俺の精神衛生上よくないから、
あえて「気に入らない」奴にとって居心地が悪いスレになるように心がけてるって訳。

643:デフォルトの名無しさん
06/12/12 22:35:03
隊長!自作自演警報発令中であります!

644:デフォルトの名無しさん
06/12/13 00:09:23
VB2005ExpでWindowsフォームで、データバインドしたDataGridViewにバインドしない列を最後尾に追加しました。
で、この列の並びがビルドするたびに前のほうに行ってしまうのを防ぐためには「列の自動生成オプション」とやらをオフにすればいいところまでは分かったのですが、どこでするのか分かりません。
AutoGenerateColumnsであってます?DGVのプロパティに無いし…しかもForm1.Designer.vbを覗くと
'DataGridView1

Me.DataGridView1.AutoGenerateColumns = False
ってなってるんですけどねぇ…あうぅ…

645:デフォルトの名無しさん
06/12/13 11:47:39
DataGridView については専用のスレッド
スレリンク(tech板)l50

がありました。そちらで聞かれるといいかも・・・
自分もあちらで聞いていました。

646:デフォルトの名無しさん
06/12/13 14:27:51
>>642
質問者レベルをコントロールしたいなら、
自分で管理する掲示板でしろ。

647:デフォルトの名無しさん
06/12/14 00:04:21
理解不足を棚に上げ煽り、1行レスで返す方が多いようですが、
そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい。

また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。

648:デフォルトの名無しさん
06/12/14 10:07:06
>>647
君が評価してくれるの?

コテハンにしてくれない?

649:デフォルトの名無しさん
06/12/14 18:26:04
>>647
で・・・どこを縦読みすればいいわけ?

650:デフォルトの名無しさん
06/12/14 20:23:18
            /  ///// ////ハヾヽト、ヾリメヽ
             /   //////|l|l|l|l川l|j  iメ!l|l| | l|l|l|lト、
            /     l|l|l | |l|!|l|l|l川l|!  | |l|l| | l|l川l|l|
        / // ィl|l|| | |l| |l|l升十ト、 | !|l|l| 川l川l|l|!
         | / / |川||l  |l|川||  川川 升ト川l|リ
         | / / /|l|l| | |l  ヽーr==、      ___|ノノ
         |// / ∠川 川   ヽヾ:::::ノ      イ::::「
        |////´r-、ヾl     `'ー‐'       、゙ーヘ
        V/ハ ヽ  l|   ////            !
         V/彡、 \ ノ                   /
         ヾミミ>-、              ⌒ /  >>647いつにもましてキモイなこいつ
          ト=-、彡ヘ、    J         /
          |川|l川l| ノ)、             /
           |川l川l|!(((ハ      「 ̄´
            |川l|川l|_,ノ_,ノ!       |、
             |川l|<ヾ、   `ヽ、     〉`ー-、
             !川/⌒ヽ、ヽ、    `'ー<⌒ヽ 川
          川l|     \`'ー------ `ヽハ|l|lト、
           /|l|ll|      `ヽ、ヾ、_`'ー-=ニ三ヾ!l|\

651:デフォルトの名無しさん
06/12/14 21:48:14
正規表現と置換についての質問です
例えばPerlで1行全体の文字列に対してTABをSPACEに変換したい場合
s/\t/ /g;
このように書きますが
.NETの場合どの様に書いたらいいのでしょうか?
String^ str = "hoge  hoge  hoge";
str = Regex::Replace(str, "\t", " ");
これでは部分マッチングしかできないですよね?

652:デフォルトの名無しさん
06/12/14 21:51:08
651です
スマソVBスレでしたね(^^;
ごめんなさい、でも分かる人いたら教えてもらえませんかVBでもいいので
タノンマス


653:デフォルトの名無しさん
06/12/14 21:56:23
なんでリファレンス見ないの?

654:デフォルトの名無しさん
06/12/14 21:59:40
リファレンスの見方が良く分かんないんだよね、ぐぐったけど
旨くヒットしないし・・・・

655:デフォルトの名無しさん
06/12/14 22:04:15
こんな奴が C++/CLI か。世も末だな。

656:デフォルトの名無しさん
06/12/14 22:06:10
str = Regex::Replace(str, "\t", " ");
コレデ全体の置換もOKだったなワハハ

657:デフォルトの名無しさん
06/12/15 03:00:12
【使用環境】vb.net2003

PictureBox1_Paintイベントで
e.FillRectangle(Brushes.black, 0, 0, 500, 500)
と黒色の四角を描画し、

PictureBox1_MouseDownイベントで
Dim g As Graphics = PictureBox1.CreateGraphics
g.DrawEllipse(Pens.white, 0, 0, 100, 200)と、
PictureBoxをマウスで押すことによって黒色の四角の上に円を書くプログラムを作ったのですが
実行したウィンドウを最小化したりすると描いた円が消えてしまいます。

ウィンドウを最小化したり、サイズを変えたりしても
黒色の四角の上に円が描かれ続けているようにするにはどうすればよいのでしょうか?
ご存知の方いましたらよろしくお願いします。

658:デフォルトの名無しさん
06/12/15 06:54:38
ResizeRedraw

659:デフォルトの名無しさん
06/12/15 11:27:01
PaintやMouseDownでGraphicsに直接描かずに
pictrureBox1.ImageにつっこんだBitmapに描く

660:デフォルトの名無しさん
06/12/16 10:21:52
VC8をよく使いますが、自前のANSI Cで書いた関数をDLL化して
.NETで呼び出すことって可能デツカ?


661:デフォルトの名無しさん
06/12/16 10:26:46
可能

662:デフォルトの名無しさん
06/12/17 13:40:35
以前、相互に循環する画面遷移を、
DLLでやってたプロジェクトに参加してたけど、
どうやって、可能にしていたのだろう?




663:デフォルトの名無しさん
06/12/17 14:42:31
いみがわかんない


664:デフォルトの名無しさん
06/12/17 20:18:19
2次元のarraylistって作れるんですか?

665:デフォルトの名無しさん
06/12/17 20:22:32
ジャグ配列的になら

666:デフォルトの名無しさん
06/12/17 20:33:12
初心者な俺には理解できない用語がorz
伝票発行するソフトつくらなきゃいけないんですがDBだと難しくなりそうなんでCSVと配列でどうにかならないかなと思って。

部門、商品、相手先、入力データそれぞれ横6要素以上あって読み書きを頻繁にするとなるとおとなしくADOかなんか
勉強するしかないのかな・・・

667:デフォルトの名無しさん
06/12/17 21:09:51
>>666
ジャグ配列なんてどうでもいい。

正規化はわかるのか?




668:デフォルトの名無しさん
06/12/17 21:13:47
667が日本語をうまく使えない、ということはよくわかるよ。

669:デフォルトの名無しさん
06/12/17 21:16:58
>>668
665乙。

670:デフォルトの名無しさん
06/12/17 21:17:34
え、俺?

671:デフォルトの名無しさん
06/12/17 21:18:44
え、え、俺?

672:デフォルトの名無しさん
06/12/17 21:20:00
え、え、え、俺?

673:666
06/12/17 21:20:52
えっと俺はどうボケればいいんでしょうか?ヽ(;´Д`)ノ

674:デフォルトの名無しさん
06/12/17 21:24:41
ちょっとマジレスしますよ

>>666
伝票発行ソフトってことだけど元になるデータはどこ?

675:666
06/12/17 21:33:52
元のデータですか?
えとMDBかCSVにいれておこうかと思ってるんですが・・・

676:デフォルトの名無しさん
06/12/17 21:37:44
>>666
素直にアクセスでやるのが吉

677:デフォルトの名無しさん
06/12/17 21:58:13
\1,980で買えるアプローチでいいじゃん

678:674
06/12/17 22:23:05
CSVを「これから作る」でおk?
だったら
一行分の構造体orクラスを定義して
配列なりファイルアクセス用のクラスなりを使えばいける

ただしデータ構造が単純であることが大前提になるけど
単なる検索やソート以上の処理をするならAccessの方が楽かと

679:674
06/12/17 22:33:29
簡単にインターフェースの概要をば

一行分のデータのクラス(以後一行データ)
各アイテムのアクセサ
Shread Parse(string):一行データ (Newを利用する方法もある)
ToCSVLine():string(ToStringをオーバーライドする方法もある)

ファイル全体のクラス
Item(int) : 一行データ
Load:(IO::FileInfo):void
Save(IO::FileInfo):void


Loadのときは一行ずつParseで一行データを生成、
Saveのときは一行ずつToCSVLineで文字列に変換して書き込み

680:デフォルトの名無しさん
06/12/17 22:57:43
まあその説明でわかればたぶん質問しないわな。
こういう自己陶酔型の人ってヒトから自分がどう見えるか考えないから微笑ましいというか、
ちょっと困ったクンだよねw
っていうか、ここ何のスレだかわかってんの?w

681:デフォルトの名無しさん
06/12/17 23:26:08
うんこに群がるフンコロガシのためのスレッド

682:デフォルトの名無しさん
06/12/18 00:18:07
きもいよ

683:酔いちくれ ◆J0rwikii8c
06/12/18 06:24:40
>>679

1000件のレコードがあった場合は、一行分の子クラスの
インスタンスを1000回生成するの???

684:666
06/12/18 07:07:48
みなさんありがとうございます。

元データの商品マスタと部門マスタはあります。
それぞれ列6要素ぐらいで行100〜1000ぐらいです。

初心者なんで理解しきれてないのですが、マスタの一要素ごとに一次元配列を作ってそれをコレクションとかにいれて使うっていうことでしょうか?

あ、ちなみにVB2005EXPRESS使ってます

685:デフォルトの名無しさん
06/12/18 08:14:00
>>666
まず具体的に実現したい処理内容をかかなきゃ誰も答えようがないと思いますが。

こういう人って本当どういう頭してるんだろう。
他人はアンタの考えてることが言葉にしなくてもわかるエスパーか何かだと思ってんの?
なんにしろ、説明能力に問題がある時点でプログラマには向いてないといわざるを得ない。

686:デフォルトの名無しさん
06/12/18 16:37:03
>>539,634,609,680,685 
これ以上、辿るのめんどくさいからやめた。

この人って本当どういう生活してるんだろ。
仕事では、対人関係の問題で使い物にならないんだろうな。
ネットで延々と煽って憂さ晴らし。ご愁傷様です。

687:デフォルトの名無しさん
06/12/18 22:10:41
フォームのサイズを変えたら一緒に
ボタンやラベルを大きくする方法ないですか??

688:デフォルトの名無しさん
06/12/18 22:11:44
Anchor
Dock

689:デフォルトの名無しさん
06/12/18 22:43:00
>>688
もうちょい詳しくおしえてください・・・

690:デフォルトの名無しさん
06/12/18 23:15:49
Anchor 【あんかー】
Dock【どっく】

691:デフォルトの名無しさん
06/12/18 23:25:50
いじめられた・・・

692:デフォルトの名無しさん
06/12/19 00:09:15
アンカー 船舶が使用する錨のこと
ドック 船舶の製造、修理などに際して用いられる設備

693:デフォルトの名無しさん
06/12/19 00:11:55
碇、後戻りはできんぞ
さすがドックだ、なんともないぜ

694:デフォルトの名無しさん
06/12/19 00:38:44
これほど「ぐぐれかす」が似合う男もそういないぞ。がんばれ。

695:デフォルトの名無しさん
06/12/19 11:24:20
VBのランタイム関数って.NETになってからも追加されているんですかね?

696:デフォルトの名無しさん
06/12/19 17:54:34
Microsoft.VisualBasic

697:デフォルトの名無しさん
06/12/19 19:42:06
Windows2000(SP4)でVB2005を動かした場合なんですが
フォームにListViewを置いて、そのListViewにToolTipを設定した時
ListViewの空白部分をマウスでポイントすると普通にToolTipが表示されるのですが、
行(ListViewItem)が表示されている部分をポイントすると
ToolTipが一瞬だけ表示されて消えたり、ちらちらと点滅したり
異常な動きをします。

原因、対処法をご存じでしたらお教え下さい。

698:デフォルトの名無しさん
06/12/20 11:57:24
VB6 から VB2005 に移行して勉強した人が、

以前からの会社の都合でどうしても VB.NET 2003 とかで開発する

必要がある、というような場合、言語上で新たに覚えないといけないような点

はありますでしょうか?


Version としてはバックすることになりますが、VB2005 の方が楽になっている

ので VB.NET 2003 とかに戻ると オブジェクト指向プログラミング的に

厳密にやらないといけない部分が出てくると思うのですが、その辺で

やっかいな部分から列挙するとどんな感じになるでしょう、、

このあたりを心配していましたが、すみませんが、よろしければこの件で

ご指導くださればありがたく、よろしくお願いします


それとも、VB.NET 2003 で開発していた案件はすべて 

VB2005 に移行していくと考えてよいでしょうか

この辺もよろしければ教えてくださると助かります

699:デフォルトの名無しさん
06/12/20 11:59:19
上げるの忘れました、スマソ

700:デフォルトの名無しさん
06/12/20 14:34:40
言語よりむしろNET Framework 2.0と1.xの違いの方が大きいと思われ。


701:デフォルトの名無しさん
06/12/20 22:14:33
一番大きいのは Using が無い事か?
ジェネリクスの方はどうも VB ではあまり聞こえてこないんだが導入に積極的でないのかね

702:デフォルトの名無しさん
06/12/21 08:19:32
このスレは既にPart17ですが、いったいみなさんはVB.NETで何を開発してるのでしょうか??
やっぱ、ほとんど、サーバーサイドのWebアプリケーションでしょうか??
クライアントサイドの.NETアプリをあまり見かけないので質問しました。


703:デフォルトの名無しさん
06/12/21 08:33:23
質問があります。

エディタにxxxxx.ToStringと入力した時にToString()って
自動的にカッコが付く様にはできないのでしょうか?

704:デフォルトの名無しさん
06/12/21 12:27:01
VS、というかVBのエディタの設定項目なんて数える程しかないのにな。
仮に500以上の設定項目が幾重かの階層になっている、とかなら
>>703みたいな質問もさもありなんと思うんだけど。

まあ703みたいな人がPGに基本的に向かない性格なのは疑いようがない

705:デフォルトの名無しさん
06/12/21 12:35:11
>>704
真性のキチガイやろう。

湧いて来るんじゃねぇよ。

706:デフォルトの名無しさん
06/12/21 12:38:33
>>704 氏ねよクズ 死ねよ

707:デフォルトの名無しさん
06/12/21 12:39:46
(・∀・)ジサクジエンデシタ

708:デフォルトの名無しさん
06/12/21 12:40:13
お前ら耐性なさ杉だ

709:デフォルトの名無しさん
06/12/21 12:42:44
「教えて君」「教える君」というのは、
ネット上に存在する2種類の人種の人たちを示す揶揄された敬称のことであるが
その影には「教えない君」という人種が多数いるの事にはあまり注目されていない。

しかし、実はその「教えない君」という人種が一番厄介かつ迷惑な存在だったりするのである。
そもそも荒れる原因というものは「教えない君」の、無秩序かつ、無神経なレスにある部分が
大多数なのだが、彼らの多くは、そういった感覚はどうやら持ち合わせていないようである。

第三者がそうした場面を見た場合に、誰に一番の非があるというのは
「教えない君」にあるというのが客観的事実であるのは明らかなのであるが、
彼らは認めようとしない。

表面上は、「教えない君」はネット上のルールや倫理や秩序などを叫ぶのであるが
どうやら真相は、現実社会において蔑まれる存在である「教えない君」の
鬱憤晴らしのようである。

上記でそういった悲哀のレスを付けた人たちは、勇気を持って自らの弱さと過ちを認め
反省しなければならない。
それがキミたちニートの人間的に成長できる少ないチャンスなのである

710:デフォルトの名無しさん
06/12/21 12:59:11
長文カキコorコピペする「粘着くん」もいるみたいですよ


711:デフォルトの名無しさん
06/12/21 12:59:22
500以上の設定項目が幾重かの階層になっているなら質問OKだってw

ハハハハハ
死ねよクズ

712:デフォルトの名無しさん
06/12/21 13:18:57
500もの設定の中から探すような
規模の事しか質問してはいけないって オイオイ

713:デフォルトの名無しさん
06/12/21 18:42:59
ComオブジェクトのShockwave Flash Objectをコントロールとして利用したいのですが、

依存する COM 参照 "stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" を解決できませんでした。
タイプ ライブラリ "AxShockwaveFlashObjects" のラッパー アセンブリを作成できませんでした。種類 'Microsoft.Build.Tasks.ComReferenceResolutionException' の例外がスローされました。

などのエラーが発生して、利用することが出来ません。前までは出来ていたのですが、、、

714:酔いちくれ ◆J0rwikii8c
06/12/21 19:25:04
>>713
外してたら、スマソ。


2003で使ってたのが、2005で使えなくなったとか。

715:デフォルトの名無しさん
06/12/21 19:41:32
いえ、2005環境で使うことが出来ていました。今試したところ、Delphi6でも貼り付けることができました。
・・・何が原因なんでしょう。

716:酔いちくれ ◆J0rwikii8c
06/12/21 19:49:26
内部でラッパーのAxShockwaveFlashObjectsにアクセスできてない
みたいだから、AxInterop.ShockwaveFlashObjects.dllが悪いのは
確かと思う。

フレームワークが同居してるなら、そのDLLを探してみるのも
いいかも。

ちょっとDelphiは知識ないから、スマソ。

717:713
06/12/21 21:03:13
原因が分かりました。
参照の追加でCOMタブのOLE Automationを参照させないと実行できないようです。
お騒がせしてすいませんでした。

718:デフォルトの名無しさん
06/12/21 22:28:12
URLリンク(www.microsoft.com)
や ら な い か


719:デフォルトの名無しさん
06/12/23 11:47:03
データグリッドの最初の列を足したいんだけど、For eachで書けないかな?
下ので一応いけるんですが。

Dim sum As Single
For i = 0 To DGV.RowCount - 1
sum += DGV.Item(0, i).Value
Next
MessageBox.Show(sum)

720:デフォルトの名無しさん
06/12/23 11:50:08
変数名からして DataGridView のようだが。

721:デフォルトの名無しさん
06/12/23 12:06:07
Option Strict Offなソースを見ると何か嫌な気分になる

722:デフォルトの名無しさん
06/12/23 13:09:52
>>720
そうです。

723:デフォルトの名無しさん
06/12/23 13:29:51
>Dim sum As Single
なんでSingle…


724:デフォルトの名無しさん
06/12/23 13:39:43
>719

つか集計したいのなら、DataColumn.Expressionでsumするのが
早いと思うが…。

URLリンク(msdn.microsoft.com)


725:デフォルトの名無しさん
06/12/23 22:53:30
>723
少数があるので。

>724
ありがとうございます。参考にさせてもらいます。

726:デフォルトの名無しさん
06/12/24 05:01:00
すみません、オブジェクト志向プログラミングについて日が浅いもので
よくわからないのですが、、

たとえば、あるクラスから生成されたオブジェクトのコレクションが定義されているとして、
そのADDメソッドには、その元のクラスから派生されたオブジェクトを指定してコレクションに
追加していくことはできるでしょうか

たとえば、TreeViewコントロールにおいて、あるノードに子ノードを追加するという場合、
その子ノードは(ノードのコレクションである以上)TreeNodeクラス型オブジェクトでなければ
ADDできないと思っていましたが、実際には、「TreeNodeクラスの派生クラスのオブジェクト」
でもADDできているようでした。

これは通常の コレクションにおけるADDメソッド のデフォルトの性質でしょうか?

ヘルプの説明では普通に TreeNodeクラス型のオブジェクトをADDするようになっています
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/M_System_Windows_Forms_TreeNodeCollection_Add_1_526d62f3.htm

初心者ですみませんが、よろしくお願いします

727:デフォルトの名無しさん
06/12/24 09:56:13
ArrayList というコレクションが標準ライブラリにある。
これの Add メソッドは引数に Object 型を要求する。

さて、Object 型しか入れられないのならこのコレクションの存在意義ってなんだ?

728:デフォルトの名無しさん
06/12/24 11:01:47
>>727
どうもです、ありがとうございます

要するに ADDメソッド の基本機能が、そもそもどんなオブジェクトでもADDできる
ようになっている、ということなのですね

ArrayList.Add メソッド を見ると、はじめから ADD(”・・・”) で String型 の値を
渡してもそのままADDされるということは、ADDの引数は始めからオーバーロード
で定義されているということもあるのでしょうか、ただ

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/cpref2/html/M_System_Collections_ArrayList_Add_1_b4c5a2da.htm

には、オーバーロードの複数引数定義は書かれていませんでした


それとも、Object型として引き受けるということ自体が、String型の値でも元々引き受ける
ようにできているということなのでしょうか、つまりオブジェクト指向での必要条件として
元々 ADDメソッド はこういう構造になっていると・・・)、このどちらなのでしょう?

729:デフォルトの名無しさん
06/12/24 11:06:30
派生クラスのインスタンスは基底クラスのインスタンスとして振る舞う事が出来る。
それだけ。

ついでに言うと全てのクラス・構造体は Object クラスから派生する。
String クラスのインスタンスは基底クラスである Object クラスのインスタンスとして振る舞う事が出来る。

730:デフォルトの名無しさん
06/12/24 11:14:03
例として
 TreeNodeCollection.Add メソッド
の説明ですと、
 ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/O_T_System_Windows_Forms_TreeNodeCollection_Add.htm
のように、
 String型の値のADD、TreeNode型のオブジェクトのADD
も共にオーバーロードの定義が明示されていましたので、型の拡張は明示されて
初めて利用可能になるものと考えたのでした

731:デフォルトの名無しさん
06/12/24 11:16:40
>>729
あ、すみません、かぶりました

>派生クラスのインスタンスは基底クラスのインスタンスとして振る舞う事が出来る。

つまりオブジェクト指向の標準として、そういうことななのだと、
わかりました。

ありがとうございました。



732:デフォルトの名無しさん
06/12/24 11:20:27
>>730の 「TreeNodeCollection.Add メソッド」 のような場合は
他の引数のオーバーロードも定義したので、基本的な標準の
 String型の値のADD、TreeNode型のオブジェクトのADD
もついでに記載した、ということなのでしょうね。

ご指導ありがとうございました。

733:デフォルトの名無しさん
06/12/25 18:44:38
いやTreeNode型のオーバーロードが標準だろ
あとはそれに皮をかぶせただけのオマケ

734:デフォルトの名無しさん
06/12/25 20:27:07
Windows Media Playerを制御することってできますか?
ファイルを指定して再生、停止、開始/終了時間の範囲指定など。

735:デフォルトの名無しさん
06/12/25 21:51:19
できます

736:デフォルトの名無しさん
06/12/26 02:39:28
こんばんは

例外を以下のように処理しようとしているのですが、
メッセージボックスが表示されずに、通常のエラーメッセージが表示されます
原因は何でしょうか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Dim A As String = "aaa"
 Dim B As Integer

 Try
   B = CType(A, Integer)
 Catch ex As Exception
   MessageBox.Show("Error")
 End Try
End Sub

737:デフォルトの名無しさん
06/12/26 06:00:31
ネタ?
ネタだよな?


738:デフォルトの名無しさん
06/12/26 06:48:40
質問です。

1を2のように記述したら警告になってしまうのですけど、
この警告を出ないようにするにはどうすればいいですか?
おしえてちょ。

1 Me.DialogResult = Windows.Forms.DialogResult.OK
2 Me.DialogResult = DialogResult.OK

739:デフォルトの名無しさん
06/12/26 08:16:06
理由がわかるようになるまで学習を進める、が正解だと思うよ。

740:734
06/12/26 08:27:26
>>735
どのクラスライブラリを使えばいいんでしょうか?
よかったら教えてちょ

741:デフォルトの名無しさん
06/12/26 10:32:23
>>736

  ∧ ∧
 (*‘ω‘ *)  ちんぽっぽ
  (   )
   v v
        ぼいんっ
    川
  ( (  ) )


>>740
wmp.dllを参照に追加



742:デフォルトの名無しさん
06/12/26 14:05:23
皆様お疲れ様です、またよろしくお願いします。
(タイトル)  デザイン環境による作成時にコントロールを初期化する方法について
(開発環境) VS2005Pro
(実現したい内容)
 コンポーネント・クラスの作成の仕方として、そのコンポーネントを アプリケーションの
 フォーム・デザイン時に単に貼り付けた時点でのみ動作する初期化どのように実装するか
(試行)
  <System.Diagnostics.DebuggerNonUserCode()> _
  Public Sub New()
MyBase.New()
'この呼び出しは、コンポーネント デザイナで必要です。
InitializeComponent()
  End Sub
  に追加しますと、実行時にも実行されてしまう
(その他に)
  ComponentDesigner.InitializeNewComponent メソッド
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_fxdeveloping/html/914eaa03-092f-4556-9160-b8a2a40641d9.htm
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/cpref3/html/M_System_ComponentModel_Design_ComponentDesigner_InitializeNewComponent_1_d8aa9975.htm
 を用いる説明があり、Public Overrides Sub InitializeNewComponent(ByVal defaultValues As IDictionary)〜End Sub
 を *..Designer.vb に追加してみるものの継承元のクラスには同メソッドはなくエラーとなり、
 Overrides をはずしてエラーを回避し実装したが (ComponentDesignerクラスは特に利用して
 いないためか)その中にに書いたコードは実行されず
(・・・) フォーム・デザイン時に単に貼り付けた時点でのみ動作する初期化はどのようにして実装するべきか、よろしくご指導ください、お願い致します

 



743:デフォルトの名無しさん
06/12/26 14:14:29
ネイティブジャパニーズとはとても思えない日本語だな
if DesignMode

744:734
06/12/26 14:23:53
>>741
できません。。。
ぐぐると URLリンク(www.users.gr.jp)
ツールボックスにWindows Media Player コンポーネントが
出てくるらしいのですが、出ません。

当方、
・WinXPSP2Pro
・Windows Media Player10
・VB2005Express
なんですが・・・orz

ちなみに上記からダウンロードしたソースをC#2005Expressで開くと実行できましたが、
やはりツールボックスにはWindows Media Player コンポーネントがありません・・・

もしかしてExpressEditionではダメなんですかね?

745:デフォルトの名無しさん
06/12/26 14:30:32
>>744
URLリンク(homepage1.nifty.com)

746:デフォルトの名無しさん
06/12/26 14:51:59
>>743
日本語下手ですんません、どう書くと整理できるか編集中にてにをはが狂いました。
実は Windowsアプリケーションに貼り付けるコントロールだったのですが、

>if DesignMode

これを書いてみたところデザイン時も、実行時も常に False のようで、どちらでも
実行されませんでした(継承元のクラスは TreeView)。

ヘルプによると、DesignMode は 
 名前空間: System.Web.UI
 アセンブリ: System.Web (system.web.dll 内)
とあったので Web部品用のものなのでしょうか?

747:734
06/12/26 14:52:47
>>745
ありがとうございました。
できました(´∀`)

748:デフォルトの名無しさん
06/12/26 14:54:46
>>746ですが、実際には System.Web.UI を Imports していなくても
使えていたので、「Web部品用」でなくても持ってるプロパティですよね
うーん、どうしてだろ。。。

749:デフォルトの名無しさん
06/12/26 15:21:12
>>748
System.ComponentModel.Component.Designmodeだよ。
で、C#の記事だけどこれかな?
URLリンク(blogs.wankuma.com)

750:デフォルトの名無しさん
06/12/26 17:02:24
>>749
どうもです、そうでした、System.ComponentModel.Component にも
DesignMode はありました。

Parent の DesignMode はその記事の通りやはり Protected だった
ようでエラーとなりました。

いまいろいろ調べてみましたがまだ解決していませんが、
さらに調べてみます。

751:デフォルトの名無しさん
06/12/26 20:25:20
URLリンク(www.be-interactive.org)
これをVB2005で行いたいのですが、どのようにすれば良いのか分かりません。

Const WM_COPYDATA As Integer = &H4A
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByVal lParam As COPYDATASTRUCT) As Integer

Sub main()
Dim sendMes As New COPYDATASTRUCT
sendMes.lpData = _
New System.Text.StringBuilder("TestAPP" + Chr(0).ToString + "Music" + Chr(0).ToString + "1" + Chr(0).ToString + "{0} - {1}" + Chr(0).ToString + "TEST" + Chr(0).ToString + "TEST")
sendMes.cbData = sendMes.lpData.Length + 2
SendMessage(132030, WM_COPYDATA, Nothing, sendMes)
End Sub

Public Structure COPYDATASTRUCT
Const dwData As Integer = 1351
Public cbData As Integer
Public lpData As System.Text.StringBuilder
End Structure

このようにしたところ、SendMessageのところでTypeLoadExceptionを吐いてしまいます。

よろしくお願いします。

752:デフォルトの名無しさん
06/12/26 20:48:53
・文字コードはそれで大丈夫?
 ANSIだと
  sendMes.cbData = sendMes.lpData.Length + 1
 だと思うけど。
 SendMessageWにしてCharSet = CharSet.Unicodeにし、
 その場合
  sendMes.cbData = (sendMes.lpData.Length + 1 )*2

・シグネチャ
  ByVal lParam As COPYDATASTRUCT → ByRef lParam As COPYDATASTRUCT



753:デフォルトの名無しさん
06/12/26 20:55:40
回答ありがとうございます。・・・しかし無理でした。COPYDATASTRUCTのlpDataが悪さしているようですが、、、

Const WM_COPYDATA As Integer = &H4A
Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Unicode Function SendMessage Lib "user32.dll" Alias "SendMessageW" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByRef lParam As COPYDATASTRUCT) As Integer

Sub main()
Dim sendMes As New COPYDATASTRUCT
sendMes.lpData = _
New System.Text.StringBuilder("TestAPP" + ChrW(0).ToString + "Music" + ChrW(0).ToString + "1" + ChrW(0).ToString + "{0} - {1}" + ChrW(0).ToString + "TEST" + ChrW(0).ToString + "TEST")
sendMes.cbData = (sendMes.lpData.Length + 1) * 2
SendMessage(FindWindow("MsnMsgrUIManager", Nothing), WM_COPYDATA, Nothing, sendMes)
End Sub

Public Structure COPYDATASTRUCT
Const dwData As Integer = 1351
Public cbData As Integer
Public lpData As System.Text.StringBuilder
End Structure

754:デフォルトの名無しさん
06/12/26 21:04:56
もうぶっちゃけちゃうと、

COPYDATASTRUCT.lpData をIntPtrにして文字列をMarshal.AllocHGlobal, Marshal.StringToHGlobalAutoで割り当てる
(あとでFreeHGlobal)
んで
sendMes.cbData = (sendMes.lpData.Length + 1) * 2

COPYDATASTRUCTそのものもMarshal.StructureToPtr, Marshal.StructureToPtrでメモリに割り当てて
(あとでFreeHGlobal)

そいで
SendMessageの第4引数をByVal IntPtrにする。

755:デフォルトの名無しさん
06/12/26 21:17:52
もうこれはあきらめるしか無いのですかね、、、

Const WM_COPYDATA As Integer = &H4A
Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Unicode Function SendMessage Lib "user32.dll" Alias "SendMessageW" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByRef lParam As System.IntPtr) As Integer

Sub main()
Dim sendMes As New COPYDATASTRUCT
Dim str As String = "TestAPP" + ChrW(0).ToString + "Music" + ChrW(0).ToString + "1" + ChrW(0).ToString + "{0} - {1}" + ChrW(0).ToString + "TEST" + ChrW(0).ToString + "TEST"
Dim ptr As IntPtr
sendMes.lpData = System.Runtime.InteropServices.Marshal.AllocHGlobal(System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(str))
sendMes.cbData = (str.Length + 1) * 2
System.Runtime.InteropServices.Marshal.StructureToPtr(sendMes, ptr, True)
SendMessage(FindWindow("MsnMsgrUIManager", Nothing), WM_COPYDATA, Nothing, ptr)
System.Runtime.InteropServices.Marshal.FreeHGlobal(sendMes.lpData)
System.Runtime.InteropServices.Marshal.FreeHGlobal(ptr)
End Sub

Public Structure COPYDATASTRUCT
Const dwData As Integer = 1351
Public cbData As Integer
Public lpData As System.IntPtr
End Structure

756:デフォルトの名無しさん
06/12/26 21:20:51
ミスしました。
Dim ptr As IntPtr = System.Runtime.InteropServices.Marshal.AllocHGlobal(System.Runtime.InteropServices.Marshal.SizeOf(sendMes))
これだとうまくいくっぽい、、、

757:デフォルトの名無しさん
06/12/26 21:25:48
やっぱりダメでしたorz

758:デフォルトの名無しさん
06/12/26 21:31:25
一度メッセージ受けるだけのアプリ作ってみれば?
とりあえずメッセージとその内容が正しく届いてるか確かめるためにさ。

文字列をマーシャリングするときに\0で終了と認識されてるのかも。
byte配列とかにする必要があるかもね〜


759:デフォルトの名無しさん
06/12/27 02:51:36
こいつの(Cで書かれた)ソースにもコメントに書かれているんだが。
途中の区切文字は"\0"であって、
chr(0)でもchrW(0)でもvbNullCharでもvbNullStringでもString.EmptyでもNothingでもない。

Structure COPYDATASTRUCT
Dim dwData As Int32
Dim cbData As Int32
Dim lpData As IntPtr
End Structure
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal data As IntPtr) As IntPtr
Private Declare Ansi Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Sub SongNameSendToMessenger()
Dim dtstrct As New COPYDATASTRUCT
Dim buf As String = Nothing
Const WM_COPYDATA As Integer = &H4A
buf = "OrgApp\0Music\01\0{0} - {1}\0曲名\0アーティスト名\0アルバム(シングル)名" & vbNullChar
dtstrct.dwData = 1351
dtstrct.cbData = buf.Length * 2
dtstrct.lpData = Marshal.StringToHGlobalUni(buf)
Dim MyPointer As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(dtstrct))
Marshal.StructureToPtr(dtstrct, MyPointer, False)
Dim hWnd As IntPtr = FindWindow("MsnMsgrUIManager", Nothing)
Dim ret As IntPtr = SendMessage(hWnd, WM_COPYDATA, 0, MyPointer)
Marshal.FreeHGlobal(MyPointer)
End Sub

760:デフォルトの名無しさん
06/12/27 09:04:32
ネタだろといわんばかりだ。

761:デフォルトの名無しさん
06/12/27 18:47:00
>>755
たぶんこれでいけるんじゃないかな?
なんちゃらメッセンジャーなんてクソ鬱陶しいソフトは使ってないので試してないが、
とりあえずメッセージの送信はこれでできているはずと思う。
見ればわかると思うけど、Formのコマンドボタンのクリックで送信するようになってる。
あと、いろんなところに属性がくっつけてあるけど、あまり考えずテキトーに使っているので
たぶん冗長なものがあると思う。
  Const WM_COPYDATA As Integer = &H4A

  <DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
  Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As IntPtr) As IntPtr
  End Function

  <DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
  Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
  End Function

  <DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
  Private Shared Function SendMessage(ByVal hWnd As IntPtr, _
                  ByVal MSG As Integer, _
                  ByVal wParam As Integer, _
                  ByRef lParam As COPYDATASTRUCT) As IntPtr
  End Function

  <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode, pack:=4)> _
  Public Structure COPYDATASTRUCT
    Public dwData As Integer
    Public cbData As Integer

    <MarshalAs(UnmanagedType.LPWStr)> _
    Public lpData As String
  End Structure

762:デフォルトの名無しさん
06/12/27 18:47:39
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim sendMes As COPYDATASTRUCT
    Dim strArray As String() = {"TestAPP", "Music", "1", "{0} - {1}"}
    Const separator As String = "\0"
    Dim str As String = String.Join(separator, strArray)
    Dim byteCount As Integer = Encoding.Unicode.GetByteCount(str)

    With sendMes
      .dwData = 1351
      .lpData = str
      .cbData = byteCount + 2
    End With

    'メモ張のウィンドウハンドルを取得してみる。
    Dim hWnd As IntPtr = FindWindow("Notepad", IntPtr.Zero)
    Console.WriteLine("hWnd = " & hWnd.ToInt32.ToString("X8"))
    Dim ret As IntPtr = SendMessage(hWnd, WM_COPYDATA, 0, sendMes)
    Console.WriteLine("SendMessage = " & ret.ToInt32.ToString("X8"))
    '自分にも同じメッセージを送ってみる。
    ret = SendMessage(Me.Handle, WM_COPYDATA, 0, sendMes)
  End Sub

  Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    MyBase.WndProc(m)
    Select Case m.Msg
      Case WM_COPYDATA
        Dim dat As COPYDATASTRUCT _
          = CType(Marshal.PtrToStructure(m.LParam, GetType(COPYDATASTRUCT)), COPYDATASTRUCT)
        Console.WriteLine("Received String = " & dat.lpData)
    End Select
  End Sub

763:デフォルトの名無しさん
06/12/27 19:28:34
>>759,>>761
ありがとうございます、出来ました。

764:デフォルトの名無しさん
06/12/27 20:57:03
Visual Basic 2005 Express Editionで手軽に使用できるフリーのグラフを描画できるライブラリってありませんかー

765:デフォルトの名無しさん
06/12/27 23:29:30
VB2005には、ExcelのScreenUpdateのように描画を後でまとめて処理する
ような関数は用意されているんでしょうか?

766:デフォルトの名無しさん
06/12/28 19:39:37
VB2005で作成したDLLファイルなどのクラスライブラリを使用する
Windowsアプリケーションを構成すると、それらのDLLを含む形で
Releaseフォルダーが出来上がりますが、それらのDLLファイルを
初めから実行ファイル.exeに入れ込んでしまうようなビルドって
できましたっけ?

767:デフォルトの名無しさん
06/12/28 21:52:06
ソリューションのプロパティのコンパイルのところの
ビルド出力パスの設定をすればOK

768:デフォルトの名無しさん
06/12/28 21:52:43
じゃないな

769:デフォルトの名無しさん
06/12/28 21:54:26
出力ディレクトリにコピーというところを する に設定
すればってことか?

770:デフォルトの名無しさん
06/12/28 22:25:51
フォルダごと自己解凍形式のEXEにする

771:デフォルトの名無しさん
06/12/28 22:37:03
>>766
むりぽ

772:デフォルトの名無しさん
06/12/28 23:24:37
>>766
フルマネージドなアセンブリなら、ildasm/ilamsを使って統合できるよ。
バッチを組めば全自動でできる。

773:デフォルトの名無しさん
06/12/29 00:53:21
ILMerge


774:デフォルトの名無しさん
06/12/29 01:00:58
>>773
へーへーへー

775:デフォルトの名無しさん
06/12/29 13:44:25
こんにちは
VB2005使ってPACMAN作りたいんですけど
どんな風に作ればいいですか?
正方形のPicBOXを並べて中の画像を入れ替えたりするのか
それともPicBOXを移動させるべきなんでしょうか・・
移動させるとなると、どこからどこまで移動できるのかなどは
どのように定義してやれば良いんでしょうか;;

アドバイスお願いします

776:デフォルトの名無しさん
06/12/29 13:51:19
作りたいように作れば?
どんな風って、中華風のコピーでしょ?


777:デフォルトの名無しさん
06/12/29 14:09:14
>>767-774
ご教授助かります、
>>772 ilasm
>>773 ILMerge
というのがあったんですね!

現在まだ明確に理解できていませんが、MSIL や JIT 等についても
調べつつありました

>>772 ilasm
で生成される実行可能ファイル.exe は、MSILファイルをポータブル実行可能
ファイル.exe にするためのアセンブラーで、統合する機能はあるかどうか
(参照) URLリンク(msdn2.microsoft.com)(VS.80).aspx
・・・単一のファイルのアセンブル用(つまり通常のVS環境で生成される
  exeと同等のアセンブル用)なのかもしれないかとも思われました

>>773 ILMerge
こちらですとDLLファイル等をexeファイルに統合するようでした(現状実施未確認)

これらと、JITコンパイルとの関係がまだよく理解できていませんでしたが、次のように
考えておいて良いでしょうか?

 1.通常VSによるコンパイル=ilasm → ソースからMSILを経て単一の exe や dll へ
 2.ILMerge → それら exe や dll を一つにまとめるまでを行い、JITコンパイル相当の
           アセンブルは行なわれない
 3.JITコンパイル → 1や2で作成されるファイルはすべて実行時に初めてマシン固有の
               機械語に落ちる

778:デフォルトの名無しさん
06/12/29 14:16:41
>>777
これに関連してですが、一旦 ILMerge で作成された統合実行ファイル exe は、
もはや ildasm で 逆コンパイルすることはできないのでしょうか?

もし逆コンパイルできないようになってしまう場合は、リバースエンジニアリング不能に
なってソースのセニュリティ上は都合がいいかもしれませんが・・・

779:デフォルトの名無しさん
06/12/29 14:21:41
なんかかわいいな、せにゅりてぃ

780:デフォルトの名無しさん
06/12/29 15:10:18
単にILのコードを繋げるだけじゃないの

781:777
06/12/29 17:53:30
ILMerge を使って試しに1本のファイルを作ってみたところ、確かにそれ1本だけで動作しました。

>>780
どうも’MSIL へのコンパイル ’
URLリンク(msdn2.microsoft.com)(VS.80).aspx
によりますと、

-------
”MSIL とメタデータは、実行可能ファイルのファイル形式として使用されてきた従来の Microsoft PE と
COFF (Common Object File Format) に基づき、それらを拡張したポータブル実行可能 (PE) ファイル
に格納されます。

MSIL、ネイティブ コード、およびメタデータを保存できるこのファイル形式を使用すると、オペレーティング
    ~~~~~~~~~~~~~~~~~~
システムが共通言語ランタイムのイメージを認識できるようになります。MSIL と共にメタデータが
このファイルに格納されるため、コードは自己記述型になります”
-------

とあり、どうも VS開発環境 および ilasm が出力する exe ファイルそのものが、
 「ポータブル実行可能 (PE) ファイル」
であり、ということはその中にすでに ネイティブ コード が埋め込まれているかのような説明に読め
ましたが、現実にPE形式のファイルにはすでに JITコンパイルされた後にできるはずの ネイティブ コード 
が含まれてしまっているのでしょうか?

782:デフォルトの名無しさん
06/12/29 18:06:32
C++/CLIとかで意図的にネイティブコードを混ぜることができることを指してるのかな

783:デフォルトの名無しさん
06/12/29 19:29:56
>>781
あんまり俺解釈するな。


784:777
06/12/29 19:44:57
>>782
あ、なるほど、そういうことか、であればJITコンパイルで出来上がるネイティブ・コードが
含まれていることはなさそうですよね

ということは、結局MSILレベルで複数のexeやdllがうまく結合されて1本にまとまっている
ということになり、逆にいえばコードの構造は ildasm (逆アセンブル)可能となって
>>778のリバース読み込みも不可能ではない、ということになるのかも

結局、「MSIL → *.exe」 を行なっている ilasm は 「実際にはアセンブルというほど
”コード変換” は行なっていない」 ということなのか・・・


785:デフォルトの名無しさん
06/12/29 19:57:55
だから俺解釈するなと。

>「MSIL → *.exe」 を行なっている ilasm 
なんでそうなる。
ああ、それともMSILをMSILのソースコードの意味で書いてるのか?
ならまさにアセンブルだろうに。


786:765
06/12/29 20:37:23
スルーされてますが、無いでFA?

787:デフォルトの名無しさん
06/12/29 20:39:02
>>785
>ああ、それともMSILをMSILのソースコードの意味で書いてるのか?
>ならまさにアセンブルだろうに。

なるほど、そういわれてみれば・・・わかりました

788:デフォルトの名無しさん
06/12/29 20:51:23
>>786
Bitmapオブジェクトに対して描画しといてあとでDrawImageする

789:デフォルトの名無しさん
06/12/29 21:14:23
>>788
おいおいw
あのさあ、>>765は愚問なんだよ。
愚問というより、質問として成立してないだろ。
こういうエスパーでなければ理解できない質問書く奴も馬鹿だが、
エスパーでもないのに理解できたつもりになって回答する奴も同じぐらい馬鹿だと思うよ。

まあ俺もエスパーじゃないんだがあえて答えるとするなら、
エクセルのScreenUpdatingと同等のプロパティを持つコントロールはあるよ、って回答になるかな。

790:デフォルトの名無しさん
06/12/29 21:52:51
>>789



791:デフォルトの名無しさん
06/12/30 02:18:32
>>765
コントロールの配置や再描画ならこの辺でいけたはず
つControl.Invalidate
つControl.Update
つControl.SuspendLayout
つControl.ResumeLayout

画像の話なら>>788でおkかと

>>789
エスパー向け質問ってのは"俺が理解できない質問"のことではないぞ
少なくとも俺は>>765の質問は簡潔で具体的だと思うが

792:デフォルトの名無しさん
06/12/30 12:07:02
>>791
お前さんも馬鹿だな。

偉そうに人に講釈たれたいなら、まずエクセルのScreenUpdate(正確にはScreenUpdatingだが)
の動作を調べてからにしたらどうだ。

ついでに言えば、具体的なのは妄想癖持ちのお前さんの脳が勝手に補完した妄想なのであって、
765の文章では決してないから。


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

4989日前に更新/273 KB
担当:undef