VB.NET質問スレ(Part37)

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
テンプレは>>2-4 あたり

※前スレ
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
2デフォルトの名無しさん:2011/10/01(土) 18:07:46.25 BE:364414234-2BP(0)
341
を134にならべかえるには
データテーブルをつくればいいの?
3デフォルトの名無しさん:2011/10/01(土) 18:43:17.41
>>2
ToCharArrayしてArray.SortかけてNew Stringで完成。
Stringに拘らないなら、From ch In "341" Order By ch とかも。
4デフォルトの名無しさん:2011/10/01(土) 23:09:38.43
ピクチャーボックスに星型の画像を入れると画像の部分だけクリックイベントが発生するようになりますか?
5デフォルトの名無しさん:2011/10/02(日) 00:23:36.34
>>4
そういうことか。
調べてないけど、たぶん無理っぽい。
画像の背景の色はプロパティで設定できたと思うから
フォームの背景と同じにしてごまかすとかしかできないかも
イベント自体はそこでも発生してしまうが。

もしくは、フォームのクリックイベント利用して
そこの座標がx,yだったらみたいな条件で処理に入るとかどうですか?
6デフォルトの名無しさん:2011/10/02(日) 00:29:08.30
>>4
WPFでそういうカスタムコントロール作るのはどうよ
7デフォルトの名無しさん:2011/10/02(日) 00:37:03.68 BE:637723973-2BP(0)
>>3
なるほろ
8デフォルトの名無しさん:2011/10/03(月) 22:01:42.27 BE:121471722-2BP(0)
今から10枚のスク水を貼るぞ
For i = 0 to 10
TextBox1.Text = "http://image.space.rakuten.co.jp/lg01/22/0000773922/56/img58f90a27zikfzj.jpeg"
Next
9デフォルトの名無しさん:2011/10/04(火) 00:06:00.07
11枚ありますけど
10デフォルトの名無しさん:2011/10/04(火) 05:28:48.65
>>8
もう少しガンバレ
For i as Integer = 0 to 9
TextBox1.Text = "http://image.space.rakuten.co.jp/lg01/22/0000773922/56/img58f90a27zikfzj.jpeg"
Next i

こうじゃね?
11デフォルトの名無しさん:2011/10/04(火) 19:47:13.08
今回の場合、ループ内の処理はスルーするとして、
For i = 1 To 10 が読み易さ的には正解かな。
12デフォルトの名無しさん:2011/10/04(火) 21:09:39.83
でもループって配列とかのインデックスに使うことが多いから
0から始まるのが普通では?
13デフォルトの名無しさん:2011/10/04(火) 21:12:27.06
Cの世界ではね。停止条件に"i < 10;"って書くのが習慣になってるから。
VBで指定回数回す場合は>>11が普通。
14デフォルトの名無しさん:2011/10/04(火) 21:23:12.06
回すだけならいいけどインデックス指定するときに
-1するのが面倒くさいからこうなる
For i = 0 to array.Length - 1
15デフォルトの名無しさん:2011/10/04(火) 21:45:41.76
俺の場合
0〜 の変数は i
1〜 の変数はXxNo
みたいにして変数名で
分けてる。
16デフォルトの名無しさん:2011/10/04(火) 22:26:13.79
なんか来週.NETのプロみたいな人に俺がどれくらい
VB.NETができるかの尋問(w)を受ける予定なんだけど、
何を訊かれるんだろ? 

LINQとかあとデリゲート絡みのクラス設計とか前もって
復習しておけばOKかな? 

正直俺は既存システムの改修ばっかりやってて
一応VB.NET(C#)はできるが、なんか知識的には
器用貧乏w

プロの人は何を質問してきますかね?w
17デフォルトの名無しさん:2011/10/04(火) 22:47:08.14
俺がその.NETのプロ(笑)なら、口頭で質問なんてしませんね。
人のスキルを見るにはそいつが書いたコードを見るのが一番。

2chもそうだけど、「妙に細かいことは知ってるけど、ちゃんとコード書けるのかなコイツ?」
って感じがする人、web上には大勢いるよねw
18デフォルトの名無しさん:2011/10/04(火) 23:02:06.80
>>17
その場でコード書けと言われたら、俺はアウトw
ググりまくってるところ見られないなら、なんとかw
19デフォルトの名無しさん:2011/10/04(火) 23:17:13.10
>>18
俺SEだけど
むしろググりまくってるほうがいい印象
どういう手段であれ実装できればそれでいい
20デフォルトの名無しさん:2011/10/04(火) 23:43:56.47
>>19
元COBOLERに多いんだけど
コピペして意味もわからず適当に修正して問いあえず動いたからいいや
みたいなソースが量産されるのは勘弁。無意味な行があったり。
SEならメンテも考えてくれよ

VBAマクロの自動記録の連結のようなやつとか
21デフォルトの名無しさん:2011/10/04(火) 23:47:45.90
>>19が言いたいのは、恐らく、webで情報を拾うのは別に減点材料にはならない、
ってことでしょ。

それはそうだよ。もちろん、程度問題ではあるが。
22デフォルトの名無しさん:2011/10/05(水) 00:06:08.39
>>16
俺ならとりあえずいままで書いたコードの
例外処理と、変数スコープ、メソッド切り出しのセンスを見るな。
winformならイベントまわり、
チェンジ、フォーカス、イネイブルあたり
がまともに制御できるか。
あとはオブジェクト指向の基本的なことが分かってればまあ任せて大丈夫って思う。
LINQやデリゲートは必須ではないかな。
2319:2011/10/05(水) 00:17:13.62
>>20
すまん
意味あいは>>21の言ってること
ソースは動きさえすれば適当でいいといっているわけではない
2416:2011/10/05(水) 00:19:18.87
いろいろ意見有難うございます。
一応、向こうはこちらが中級なのは当り前で、
あとはどれだけ上級に近いかを確認してくると
思います。
その人が書いたC#のベースのフォームクラスが
すげーややこしいLINQ、匿名メソッド、ラムダ式の塊
だったんで、それを踏まえた上でのクラスが作れるか
どうかなのか〜って思ったりで。

ただ結論がでない質問ですね。すいませんでした。
週末に浅く広くもう1回VB.NETについて勉強してみます。
25デフォルトの名無しさん:2011/10/05(水) 00:42:35.62
>>24
結論は特になにもする必要なない。
.NETのプロ(笑)ならややこしいことするなと言ってやれ。
26デフォルトの名無しさん:2011/10/05(水) 12:56:54.55
>>24
メンテナンス性って言葉教えてあげたほうがいいよ。
あんたもそいつもずっとメンテ出来るとは限らないんだからさ。
27デフォルトの名無しさん:2011/10/05(水) 17:13:27.59
2,0が出た頃はいろんな機能実装してすげーフレームワーク作ったぞ
みたいなことを言ってたが
結局他人に渡したときに可読性が悪くて
渡す先のスキルや癖の差もあって理解できる出来ないってのがかなりあった

結局今はVBAが読める人レベルに落としてコーディングしてる
28デフォルトの名無しさん:2011/10/05(水) 17:42:53.60
そうそう。複雑なコーディングする為にフレームワークがあるんじゃなくて、
複雑な処理を簡単なコーディングで出来る
ようにすることがフレームワークの目的なんだからさ。
2916:2011/10/05(水) 23:26:33.32
そうなんですよね。
その人の作ったフレームワークがややこしすぎて、
理解してれば、確かに恐ろしいほど少ないコードでいろんなことを
実現してるんだけど、初めて見て手を加えようと思った時は
さっっぱり分からんかった。テキストボックス一つ増やすだけでも
いろんな準備やら何やら整えなくてはいけなかったりで
(ちなみに作った人は現場にはいないw)、普通に組めば簡単な
処理でも、フレームワークのロジックの深いところで出たエラーは
内容がさっぱりで進まなかったし。

確かにメンテナンス性を考えて、分かりやすいレベルにしておく
べきだよね。(って自分に都合のいい結論にしておくw)
30デフォルトの名無しさん:2011/10/06(木) 00:56:39.14
http://www.natswell.com/techcolumn/category/自社開発フレームワーク『niji』/

こんな感じですかね?

フレームワークが過度に出しゃばるシステムって、コーディングが楽しくないイメージが強いです。
31デフォルトの名無しさん:2011/10/06(木) 06:51:57.67
無駄なフレームワークが多すぎる。
.Net Frameworkのバージョン上げるだけで解決出来るのにずるずる使い続けてるのも多すぎる。
32デフォルトの名無しさん:2011/10/06(木) 07:44:01.50
VBな人って、プログラミングテクニックといった面ではどうせ停滞した人たちなんだから、
もうVBの言語仕様を変えるのはやめてほしいよ
C#の進歩に波長を合わせる必要なんてないのに

やろうと思えばいろんな書き方ができるだけにつらいわ
馬鹿に合わせて、10年前からなんの進歩もないようなコードを書くのは苦痛
33デフォルトの名無しさん:2011/10/06(木) 07:49:41.60
>確かにメンテナンス性を考えて、分かりやすいレベルにしておく
>べきだよね。

おっしゃる通りで
匿名メソッドだのLINQだのを使いこなすより、そっちのが重要


34デフォルトの名無しさん:2011/10/06(木) 08:34:10.19
お前らのいうメンテナンス性

VB6しかわからない人でも読んで理解できること
35デフォルトの名無しさん:2011/10/06(木) 12:31:25.84
極論を言えばそうかもしれない。
少なくともパッと見で何してるか分からないようなソースコードは複数の人間が見なきゃいけない部分で書いちゃいかんというのは、経験則からくる業界の常識。
言語仕様上できる事全てがやっていいことではない。
36デフォルトの名無しさん:2011/10/06(木) 12:50:56.49
>>32
VBでやりたいこと自体が
10年前からたいして変わってないからな。
本当にハマる部分は言語が進化してもあまり有効な改善方法無いし。
37デフォルトの名無しさん:2011/10/06(木) 13:03:35.27
Outlook.Application、Outlook.MailItemクラスを使用して、
メールを作成しているのですが、差出人がOutlookの既定のアカウントになってしまいます。
Outlookに複数アカウント設定されている場合、差出人を指定することは可能でしょうか?
38デフォルトの名無しさん:2011/10/07(金) 08:18:44.10
質問です
複数のイベントで同じ処理を行う場合
例えばTextBox_TextChangedとTextBox_LostForcusで同じ処理を行う時
その処理のメソッド作成して両方のイベントでそのメソッドに飛ばすのと
TextChangedイベントに処理を書いてLostForcusではCallを使ってTextChanegeに飛ばすのと
どちらが好ましいでしょう?
39デフォルトの名無しさん:2011/10/07(金) 08:35:33.99
>>38
好みによるんじゃないの?
どっちでもいいと思うけど。特に分かりにくい記述にもならないだろうし。
私の場合だと、Handlesが使える環境なら、
適当なSub名付けてHandlesにTextBox1.TextChanged,TextBox1.LostForcusを付けるかしら?
40デフォルトの名無しさん:2011/10/07(金) 08:37:20.94
イベントハンドラを明示的に呼び出すのは無いな
41デフォルトの名無しさん:2011/10/07(金) 12:20:06.33
>38
前者でいいんじゃね?
LostForcusイベントが発生してないのにイベントハンドラを呼び出すのってキモい
42デフォルトの名無しさん:2011/10/09(日) 14:00:52.02
過去にVBやってた人間がVB.NET学習するのに
良さげな参考書ってありませんか?
43デフォルトの名無しさん:2011/10/09(日) 15:08:25.78
>>42
プログラミング未経験者じゃないんだから、自分に合った本ぐらい自分で選べよクズ
まあどうせ未経験者並のスキルしかないんだろうけど

はじめての〜とか、やさしい〜とかついてる本がお前向けかなw
44デフォルトの名無しさん:2011/10/09(日) 15:52:39.88
>>43
わかりました、ありがとうございます。
やさしいとかはじめてだとちょっと見つからなかったんで
入門で探して買ってみます。
45デフォルトの名無しさん:2011/10/09(日) 18:38:29.52
煽り無視ワロタ
オレはネット上で.NETとVB6の差異が説明してあるところを
適当に回ってサンプルいじって移行した
オレ程度の初心者でも.NETの方が洗練されてると感じたな
substringとかスゲー便利だわーとかそんな感じでvb6には戻れなくなってく
46デフォルトの名無しさん:2011/10/09(日) 19:01:31.71
midに対する優位性は?
47デフォルトの名無しさん:2011/10/09(日) 19:39:18.12
よく考えると全く無い
right left midをひとつにまとめた感動?w
カウントが0から始まるのは良いと思う
vb6の何でも1から始めるのは分かりやすいけどなんか違うと思っていた
48デフォルトの名無しさん:2011/10/09(日) 19:48:28.37
そうかな?
lengthが1返すんだから1から始まるのが始まるのが自然だと
思うがねえ…
49デフォルトの名無しさん:2011/10/09(日) 21:46:39.64
substringはすぐ例外泊からなー
50デフォルトの名無しさん:2011/10/09(日) 22:27:47.30
.netのメリットとしてなにかひとつ例示するとして、substringなんて挙げるような奴の実力なんて
推して知るべしって感じだなw
51デフォルトの名無しさん:2011/10/09(日) 22:44:39.81
案外そんなもんじゃね?
オレもコントロールがかっこよくなってる事が一番の理由だったりするし
52デフォルトの名無しさん:2011/10/09(日) 23:10:48.33
ネット上の情報総量が.net>vb6になったと感じた時点で乗り換えた
2006年くらいだったかなw
53デフォルトの名無しさん:2011/10/10(月) 00:40:08.87
環境依存要素が大幅に減ったことが一番のメリットかな?
クライアントによってファイル選択ダイアログとかAPI呼び出しで動かなかったり、日本語パッチが当たってなくて文字化けしたりといった、しょうもないことに悩む必要がなくなった。
54デフォルトの名無しさん:2011/10/10(月) 01:03:45.69
>>53
それは違うでしょ。
例えば2.0に限っても無印とSP1,SP2では微妙に動作が違ったりバグが修正されてたりする。

まあそれは仕方がないが、セットアッププロジェクトではSP適用済の.NET Frameworkの
インストールを強制できない。

そもそもSPを頒布してよいのかどうか、はっきりしない。
このあたりVS6時代から何も進歩してないように思う。

っていうか、.NET移行(ってもう10年になるんだがw)のメリットは、
第一には.NET Frameworkそのものだろ。

後は完全なOOP言語であること。
VB6なんて名前空間も継承も使えない上に、例えばEnumのメンバー名が名前空間の閉じてない
(Enumのメンバー名と同じ名前はもう外では一切使えない)糞言語じゃん。

こんなので大きなプログラムは書けないよ。
55デフォルトの名無しさん:2011/10/10(月) 01:16:32.98
>>54
後半は異論ないが、
少なくともランタイム配布のあたりは、DLする正式な場所がMSから提供されてるんだから、VB6よか遥かに進歩したと思う。
VB6の時はランタイムの配布がカオス過ぎで何入れればちゃんと動くのかわからない状態も多かった。
56デフォルトの名無しさん:2011/10/10(月) 01:41:18.61
>>54
> セットアッププロジェクトではSP適用済の.NET Frameworkの
> インストールを強制できない。
ttp://blogs.msdn.com/b/astebner/archive/2009/03/03/9457968.aspx
これ使えばいいんじゃね?
57デフォルトの名無しさん:2011/10/10(月) 15:42:28.43
フォームの範囲外に画像を描画したい場合はどうすればいいんですか?
58デフォルトの名無しさん:2011/10/10(月) 17:22:39.69
GetDC使えばデスクトップのHDCが手に入るけど再描画の問題もあるから
RegionなりTransparencyKeyなりを使ったフォームの方が楽
59デフォルトの名無しさん:2011/10/10(月) 18:26:59.00
gifを一度だけ再生する方法を教えてください
60デフォルトの名無しさん:2011/10/10(月) 19:00:59.33
VB6時代の方が良かった、とか思うことってあんのか?
VB.NETの生産性最強じゃないか
61デフォルトの名無しさん:2011/10/10(月) 19:08:50.44
適当なPG書いててもご飯が食えた良い時代
62デフォルトの名無しさん:2011/10/10(月) 20:08:45.03
>>60
固定長ファイルの扱いとか
63デフォルトの名無しさん:2011/10/10(月) 22:08:23.34
TextFieldParserの方がお手軽じゃね?
64デフォルトの名無しさん:2011/10/10(月) 22:19:45.37
いいえ
65デフォルトの名無しさん:2011/10/10(月) 22:47:03.49
チマチマチマチマReleaseComObjectとかやらなくてもいいのはVB6/VBAの利点

というか、.NETからOfficeを制御するのはなにを使うのが一般的なの?
Excelの制御に莫大な工数使うの馬鹿馬鹿しい
金払って済むならそっち使うよ
66デフォルトの名無しさん:2011/10/10(月) 23:15:27.61
プロセスが残ることさえどうでもいいと割り切れば
いちいちReleaseComObjectしなくていい
67デフォルトの名無しさん:2011/10/10(月) 23:21:27.21
Excelの制御って何年たってもめんどくさいのな
68デフォルトの名無しさん:2011/10/10(月) 23:30:51.71
Excelの操作だけvbscriptにやらせればいいのでは
69デフォルトの名無しさん:2011/10/10(月) 23:31:29.14
プロセスが残るなんて都市伝説みたいなもの。
普通にエクセルのUI表示して制御するだけなら、余程の下手でも打たないと
実際はそんな問題は起こらないでしょ。(少なくとも俺は全く経験なし)

その手のクレームを訴える人は、UI表示せずにワークブックのファイルを作成のために
エクセルのオートメーションを使う変則的な使い方してる人だけだと思うよ。
70デフォルトの名無しさん:2011/10/11(火) 00:20:23.38
Application.Quit直前に、
GC.Collect+GC.WaitForPendingFinalizersを呼ぶようにすれば、
他のExcel関係のオブジェクトはNothingにしておくだけで済むよ。
71デフォルトの名無しさん:2011/10/11(火) 00:23:16.36
EXCEL操作用の自動で開放処理までしてくれるクラス作っといて
必ずそれ経由で操作すれば問題起きないよ。
毎回、開放処理書くのはバグの元以外の何物でもない。
72デフォルトの名無しさん:2011/10/11(火) 00:52:56.18
>>69
いちいちExcel表示して操作してんのか?
OfficeTanakaあたりの糞コードでもそんなことやらんだろ
73デフォルトの名無しさん:2011/10/11(火) 01:15:04.32
>>72
いきなり喧嘩腰の奴って例外なく馬鹿だな。
もともとオートメーションは「いちいちExcel表示して操作」するための物。

だからそれ以外の使い方については、俺は変則的だと言っている訳。
変則的って日本語知らないのかよ。知らないのなら辞書を引け馬鹿。
74デフォルトの名無しさん:2011/10/11(火) 01:54:04.10
>>73
> オートメーションは「いちいちExcel表示して操作」するための物。

先生!堂々とホラを吹く前に↓にせめて目を通してください!
http://msdn.microsoft.com/ja-jp/library/y1xatbkd(v=vs.80).aspx
75デフォルトの名無しさん:2011/10/11(火) 06:46:41.55
ASPがOfficeファイルを生成する度、サーバではパカパカ画面が開きます。
って事か?
76デフォルトの名無しさん:2011/10/11(火) 07:23:32.22
パカパカ開くとかしょうもないことしてないで、これ買って使え
http://www.adv.co.jp/product/product_excelcreator2012.htm

安いし
77デフォルトの名無しさん:2011/10/11(火) 07:34:48.59
POIでいいじゃないか
78デフォルトの名無しさん:2011/10/11(火) 09:52:39.03
>>75
サポート外の使い方を例に出されても
79デフォルトの名無しさん:2011/10/11(火) 12:32:24.27
>>76
その手の製品で作ったファイルって
互換性がいまひとつだったりして、EXCELのバージョン上がると読めなくなったりするからな。
80デフォルトの名無しさん:2011/10/11(火) 13:26:47.22
どうしちゃったの?この流れは
81デフォルトの名無しさん:2011/10/11(火) 15:20:58.05
Javaでいうところと
ArrayList<Hoge> hoge = new ArrayList<Hoge>
のようにArrayListに型を持たせたいのですが
どのような記述にすればよいでしょうか?
82デフォルトの名無しさん:2011/10/11(火) 18:31:09.30
List(Of Hoge)
83デフォルトの名無しさん:2011/10/11(火) 18:55:25.16
フォームをリサイズした時に動的にTextBoxを一緒に伸び縮みさせたいのですが
SplitContainerを使わない方法ってありますか?
84デフォルトの名無しさん:2011/10/11(火) 19:01:33.40
>>82
ありがとうございます。できました。
85デフォルトの名無しさん:2011/10/11(火) 20:11:23.81
>>83
アンカー
86デフォルトの名無しさん:2011/10/11(火) 20:23:22.24
ああ、ただmultilineでないと縦には伸びないがな
87デフォルトの名無しさん:2011/10/11(火) 21:04:05.13
>>83
フォームのResizeイベントでTextBoxのサイズ変更するのは駄目なの?
88デフォルトの名無しさん:2011/10/11(火) 21:31:46.43
>>85
アンカーはTop,Leftにしていますが・・・
なるほど、右・下も設定できるんですね
解決しました

>>87
Sizeはデザイン時にしか変えられない仕様みたいですよ
VB6なら変えられたように思います
そこでつぼに
89デフォルトの名無しさん:2011/10/11(火) 23:46:16.58
え?
変えられるだろ?
90デフォルトの名無しさん:2011/10/12(水) 03:19:45.45 BE:971769784-2BP(0)
TPPってなに?
91デフォルトの名無しさん:2011/10/12(水) 07:26:16.24
92デフォルトの名無しさん:2011/10/12(水) 08:50:23.01
textboxの中身をとりあえず規則とか考えないでソートする時
↓にしたけど並び変わってくれません、何が悪いんでしょうか?

Array.Sort(TextBox.Lines)
93デフォルトの名無しさん:2011/10/12(水) 09:20:24.87
Linesを一旦変数にうけとって、Sortして、Linesに設定し直す
94デフォルトの名無しさん:2011/10/12(水) 10:35:12.07
>>88
少なくともGroupBox、DatagridView、ComboBoxではフォームのResizeイベントに合わせてサイズ変更はしてるよ
TextBoxでは使用してないのでわかりませんが
95デフォルトの名無しさん:2011/10/12(水) 18:26:57.76
>>93
ありがとうございます
配列同士の代入が一気にできるとは素晴らしいですね
96デフォルトの名無しさん:2011/10/12(水) 21:09:39.48
vsのインテリセンスみたいな候補がでるテキストボックスを作りたいんだけど、
可能かな?
97デフォルトの名無しさん:2011/10/12(水) 21:13:58.75
余裕で
98デフォルトの名無しさん:2011/10/12(水) 21:18:46.54
どんな感じで?
99デフォルトの名無しさん:2011/10/12(水) 21:23:34.74
どんな感じと言われても俺の頭の中にはすでに出来てるし
100デフォルトの名無しさん:2011/10/12(水) 22:09:26.94
候補を出すコンボボックスみたいな領域の描画の仕方がよくわからないわ
101デフォルトの名無しさん:2011/10/12(水) 22:41:27.58
Googleの検索文字列入力欄やExplorerのアドレス入力欄みたいのではダメなんだよな?
102デフォルトの名無しさん:2011/10/12(水) 22:47:44.51
全部書いてもさほどでもないよ
103デフォルトの名無しさん:2011/10/12(水) 22:55:43.61
>>101
それだとただのオートコンプリートだからなぁ
104デフォルトの名無しさん:2011/10/12(水) 23:45:23.32
WPFだけど、なんかあったぞ
http://blogs.wankuma.com/kazuki/archive/2008/02/05/121456.aspx
まぁwindowsフォームだけでできるかは不明
105デフォルトの名無しさん:2011/10/13(木) 14:12:08.69
ファイル一覧を取得してるんですが、これをサクっと
ファイル名順に並べ替えるにはどうすればいいでしょうか?
Dim files As String() = System.IO.Directory.GetFiles( _
"c:\", "*", System.IO.SearchOption.AllDirectories)
106デフォルトの名無しさん:2011/10/13(木) 14:18:55.26
Array.Sort
ただし文字列の比較は色々ある
107デフォルトの名無しさん:2011/10/13(木) 14:38:06.16
>>106
さくっとできました。ありがとうございました。
108デフォルトの名無しさん:2011/10/14(金) 02:26:16.77
前にVB6.0ではよく作っていたのですが、
VB.NETを挑戦しようとVB6.0のソースを変換しましたがわからない
箇所があり教えて頂きたいと思いますのでよろしくお願いします。

VB6.0で「fmMain.Info.Columns.Item("Title").SubItemIndex」の箇所が
VB.NETでどうすればよいのかを教えてください。

fmMain・・・フォーム名
Info・・・ListView名
109デフォルトの名無しさん:2011/10/14(金) 03:57:21.49
>>108

エスパーが質問に答えるスレ
http://hibari.2ch.net/test/read.cgi/tech/1187922645/
110デフォルトの名無しさん:2011/10/14(金) 06:50:12.53
>>108
VB.NETだと、Item("Title")でColumnHeaderが返ってくるから、
後はIndexかDisplayIndexのどちらか。
111デフォルトの名無しさん:2011/10/14(金) 13:42:17.93
VSの質問になるのかもしれないけど
VBで運用してるのでこっちで質問させてくれ
VB2003から2010に移行するのにCrystalReportsを含んでるプロジェクトがあるんだが
2010からCrystalReportsが切り離されて別途SAPからダウンロードってところまでは分かったんだが
配布する際に2003にあったマージモジュールって言うファイルが見当たらない
ググってみたけどそれらしい記述が見つからなくてSAPのQ&Aでもよくわからない

112デフォルトの名無しさん:2011/10/14(金) 19:47:22.48
>>111
「Merge Modules」って書いてあるやつじゃないの?
http://www.sap.com/crystalreports/vs2010
こっから手繰ったら直ぐ見つかったのだが。
11396:2011/10/14(金) 22:12:20.14
どうですか?
114デフォルトの名無しさん:2011/10/15(土) 02:05:10.04
フジテレビデモ
花王デモ
要チェック
115デフォルトの名無しさん:2011/10/15(土) 06:15:43.74
要チェックやあ!
116デフォルトの名無しさん:2011/10/15(土) 16:41:53.37
>>112
どうも
そのリンクを踏むと別のページに飛ばされてしまいます
個人ブログにマージモジュール不要の記述があったのですが
そのブログ1件しか見当たらなく信憑性もいまいち
ためしにセットアップファイルを作ってインストールしてみようかとも思ったのですが
うまくセットアップできない状態…
しばらく格闘してみます…
117デフォルトの名無しさん:2011/10/15(土) 17:38:40.04
別のページだろうがなんだろうがmerge modulesってあるじゃん
118デフォルトの名無しさん:2011/10/15(土) 18:49:57.94
すいませんダウンロードページにありました
お騒がせしました
119デフォルトの名無しさん:2011/10/15(土) 19:51:15.29
イタい質問者を見つけたぞwww

ttp://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=29192&rev=&no=0
120デフォルトの名無しさん:2011/10/15(土) 20:42:05.97
そんなのコピペしてる自分は痛くないの?w
二重の意味で痛いお人だね
121デフォルトの名無しさん:2011/10/15(土) 23:11:07.38
イテテテ
122デフォルトの名無しさん:2011/10/16(日) 04:55:30.96
>>120 本人登場ワラタ
12396:2011/10/18(火) 21:57:40.22
動的に配置したコントロールを画面の一番前に配置したいんですが、どうしたらいいでしょうか?
124デフォルトの名無しさん:2011/10/18(火) 22:52:27.28
bringtofrontのこと?topmostのこと?
(もっともコントロールだけtopmostなんて出来ないんだけどね)
125デフォルトの名無しさん:2011/10/19(水) 11:53:19.15
戻り値がIEnumerabe<dynamic>の場合 C#では、
public IEnumerabe<dynamic> Foo ()
{
return ExpandoObject[1];
}
とか書けますが、これをvbで書くとどうなりますでしょうか?戻り値の記述が分かりません。
IEnumerabe(Of Dynamic) とかやってみたのですがだめでした。
126デフォルトの名無しさん:2011/10/19(水) 12:30:55.70
Objectにしとけば良し
他の言語からも使うってんならSystem.Runtime.CompilerServices.DynamicAttribute属性付けとく
127デフォルトの名無しさん:2011/10/19(水) 12:48:08.28
>>126
他の言語からも使います。
MSDN で DynamicAttribute を調べましたが、説明を読んでも引数に何を指定したら良いか分かりませんでした。
reflectorで覗くと、new[] {false, true} とかを指定していました。
これは、何を意味しているのでしょうか?
128デフォルトの名無しさん:2011/10/19(水) 13:06:27.83
自分自身、1番目の型引数、の順にそれをDynamicとして扱うかどうか
IEnumerable(Of Object)なら自分自身=IEnumerable(Of T)、1番目の型引数=Object
129デフォルトの名無しさん:2011/10/19(水) 13:50:41.38
>>128
ありがとうございます。
ものすごく良く分かりました。

vbもdynamicキーワード欲しい。
てか、なんでない?
130デフォルトの名無しさん:2011/10/19(水) 20:38:27.56
遅延バインディングがあるからじゃないか?
131デフォルトの名無しさん:2011/10/20(木) 03:05:33.32
121 :デフォルトの名無しさん [↓] :2011/10/15(土) 23:11:07.38
イテテテ


122 :デフォルトの名無しさん [↓] :2011/10/16(日) 04:55:30.96
>>120 本人登場ワラタ
132デフォルトの名無しさん:2011/10/20(木) 23:05:33.57
DataGridViewのSortmodeがAutomaticのとき、
ヘッダーをクリックすることでソートができますが、
初回クリック時に昇順ではなく降順ソートすることは可能ですか?
自分でソート制御を行うしかないでしょうか?
133デフォルトの名無しさん:2011/10/20(木) 23:11:24.65
継承したフォームのイベントを全部拾って、どのコントロールでどのイベントが起きたかデータセットなどに格納したいのですが、
MyBaseにどういうふうにコーディングしたらよろしいでしょうか?
というか、そんなことは可能ですか?
さすがに全てのコントロールのイベントを1個1個コーディングするのは厳しいです。
134デフォルトの名無しさん:2011/10/20(木) 23:27:01.62
baseのロードイベントにコントロール全てにAddHandlerでメソッドを関連づければいけるはず
135デフォルトの名無しさん:2011/10/22(土) 17:02:35.49
外部でウィンドウが開いたり移動したりしたときにイベントを発生させるにはどうすればいいんでしょうか
136デフォルトの名無しさん:2011/10/22(土) 17:15:02.46
>>135
たった一行にこれだけ意味不明な箇所がある文章も珍しい。
プログラミングより先に推敲することを覚えるべきだ。
137デフォルトの名無しさん:2011/10/23(日) 03:15:08.12
.NET 4.0なんですが、CausesValidationがFalseのTextboxがあって、
そこからTabキーとかでCausesValidationがTrueのコントロールに移動しても
Validatingイベントが発生しません。
試しにそのTextBoxのCausesValidationをTrueにしたら発生するようになりました。
Validatingイベントは移動先のCausesValidationが関係すると思ってたのですが、
いつの間にか仕様が変わったのでしょうか?
138デフォルトの名無しさん:2011/10/23(日) 10:34:19.73
>>137
一寸試してみたけど、少なくともTextBoxに関しては、
CausesValidationがTrueのコントロールにフォーカスが移った時、
自分以外で最後にフォーカスの当たっていた、
CausesValidationがTrueのコントロールのValidatingイベントが発生するっぽいなあ。
TrueとFalseのTextBox一個ずつだけ並べたら、閉じる時しか発生しないしw
よっぽど深い理由でも無い限り、Trueにしておいた方が無難な感じがする。
手元に2008/2005が無いから、2010で挙動が変わった可能性もあるけど。
139デフォルトの名無しさん:2011/10/23(日) 13:24:20.25
単に>>137が"Validation"の意味がわかってないだけにしか思えないけど...,
140デフォルトの名無しさん:2011/10/23(日) 14:32:14.69
テキストファイルを読み込んだり書き込んだりする数行のコードさえ
忘れる記憶力を上げるにはどうすれば
141デフォルトの名無しさん:2011/10/23(日) 23:20:32.18
>>137,138
VB6.0 VS2002 VS2008で試したけど、全部同じ動き。すくなくとも仕様が変わったって事はなさそう
Validation系のイベントは移動元と移動先のCausesValidationが関係する

CausesValidationをFalseにするのなんてキャンセル系のボタンぐらいだから気づいて無かっただけだな
142デフォルトの名無しさん:2011/10/23(日) 23:20:34.60
若い嫁をもらう
143デフォルトの名無しさん:2011/10/25(火) 14:32:34.44
バーコードリーダーを使ってるんだが
読み取り後にCRとLFを付加して送信するんだけど
「入力」と設定したボタンコントロールにフォーカスが当たってる状態で
バーコードを読み取るとCRが送信されてボタンを押したことになってしまう

マウスのクリックかキーボードのエンターのみを機械的に受け付けるようにする方法って無いかな?
keypressやら一通り試してみたんだがやはりバーコードで反応してしまう

ちなみにバーコードリーダーはキーボードとして認識されてる

コンビニのレジの機械とかは上手くやってるようなんだが

144デフォルトの名無しさん:2011/10/25(火) 14:52:54.09
スキャンコードを見ればいいと思う
145デフォルトの名無しさん:2011/10/25(火) 15:14:18.19
バーコードリーダーの設定を変えて改行コードを他の文字に置き換える
そのソフト専用になっちゃうけど
146デフォルトの名無しさん:2011/10/25(火) 16:34:40.84
どうも
やはりプログラムで回避することは難しそうですかね
バーコードリーダーから送られる改行コードは、設定で消去することも出来るのですが
テキストボックスにバーコードの内容が入力された後に、このCRを使ってコードの確定としているので
読み取り後のエンターキー入力の代わりに使っている状態です
147デフォルトの名無しさん:2011/10/25(火) 16:39:29.58
何らかの文字(数字)入力があったら
フォーカスをテキストボックスに移動しちゃえば
148デフォルトの名無しさん:2011/10/25(火) 17:31:02.86
先生、文字列 「otok "男"」 の「""」で挟まれた文字をぶっこぬくにはどうしたら良いのでしょうか?
しょうもない質問ですみません。
149デフォルトの名無しさん:2011/10/25(火) 17:55:08.69
>>147
その方法でも逃げられそうですね
試してみます
150デフォルトの名無しさん:2011/10/25(火) 18:56:33.10
キーボードとして認識されてるデバイスで、フォーカスを与えないで
テキストボックスに入力とかできるの?
151デフォルトの名無しさん:2011/10/25(火) 19:11:34.16
コンビニのPOSとかはOPOSドライバが介在していて
1つのバーコードスキャンイベントが来るようになってる
152デフォルトの名無しさん:2011/10/25(火) 20:24:17.17
フォームのキーイベントでボタンにフォーカスが居たらEnter握りつぶすとかは?
153デフォルトの名無しさん:2011/10/25(火) 21:55:28.78
ユーザーコントロールとカスタムコントロールの違いは何ですか?
154デフォルトの名無しさん:2011/10/25(火) 22:13:15.22
ユーザコントロールはいくつかのコントロールを組み合わせた奴
カスタムコントロールはあるコントロールの機能を追加制限した奴
155デフォルトの名無しさん:2011/10/25(火) 23:20:01.97
>>154
ありがとうございます。
ユーザーコントロールのほうが使い勝手がよさそうですね。

ユーザーコントロールでテキストボックスとその右にボタンをおいたものを作りたいのですが、
ユーザーコントロールをフォームで使うときに高さをユーザーコントロール内に配置しているテキストボックスと同じ高さに固定したいのですが、
そういうことは可能でしょうか?
ドラッグで高さを変えられないようにしたいです。
156デフォルトの名無しさん:2011/10/26(水) 14:04:32.32
>>146
バーコードリーダーの設定で適当なプレフィックス付ければ
157デフォルトの名無しさん:2011/10/26(水) 14:13:46.60
2008のVBにてクラスライブラリにてDLLを作成し、
テスト・デバッグを並行するためにフォームアプリから参照→プロジェクトで
作成したクラスライブラリを参照追加したいのですが、プロジェクト名に出てきません。
どのようにすれば参照できるのでしょうか?
158157:2011/10/26(水) 14:39:49.38
自己解決です。ソリューションが異なっていました。
スレ汚してすみませんでした。
159デフォルトの名無しさん:2011/10/26(水) 14:39:38.84
ソリューションに目的のプロジェクトを追加する
160デフォルトの名無しさん:2011/10/27(木) 17:24:16.27
>>148
自己解決しました。ASCIIコードを使えばよかったのかー。
161デフォルトの名無しさん:2011/10/30(日) 23:18:10.16
プログラムで生成したデータを音声としてスピーカーから出したいのですが、
どうやれば良いでしょうか。
一旦ファイルにすることなく直接出力したいです。
162デフォルトの名無しさん:2011/10/31(月) 00:31:20.17
vb.netでwebbrowserコンポーネントを使用してwebを表示しました。
このとき、webbrowserコンポーネント上で表示されている画像を
取得することは可能ですか?

但し、そのwebにもう一度アクセスすることなしにという条件がつきます。

プログラム上からキャッシュにあるファイルを指定してアクセスする
のかな?と想像したのですが、いまいち方法がわかりません。

webbrowserコントロール上に表示されている画像のファイル名は
htmlタグを見ればわかると思うのですが、そこからwebに再度アクセスすることなしに
その画像データを入手したいのですが、どういう方法があるのでしょうか。

それとも不可能なのでしょうか。
163デフォルトの名無しさん:2011/10/31(月) 00:38:49.97
GetUrlCacheEntryInfo というAPIを使うらしいよ
164161:2011/10/31(月) 00:40:23.32
PlaySoundを使って解決しました。
165デフォルトの名無しさん:2011/11/02(水) 00:01:07.23
テキストボックスが空のときにうっすらと文字を表示しておきたいんですが、
そんなプロパティみたいなものはないでしょうか?
166デフォルトの名無しさん:2011/11/02(水) 00:08:28.03
ありません。
167デフォルトの名無しさん:2011/11/02(水) 00:08:59.42
自作すればおk
168ぱふ:2011/11/02(水) 00:50:18.78
テキストボックスにはデフォルト値をもたせるプロパティがありませんが、
デフォルト値をもたせたテキストボックスを作りたいと思ってます。

しかし、Access使いであることと、VB6で止まっている自分にはまだ
VB.NETでやれると言われてもよく理解が進んでいません。

そこで、こういう手順でやると、デフォルト値プロパティをもたせたテキスト
ボックスを作れるっていうウェブサイトやもしくは方法があれば教えてくだ
さい。

169デフォルトの名無しさん:2011/11/02(水) 01:24:47.34
>>165
ウォーターマークってやつだな。
TextBoxのEnter/Validatingイベントで色変更とかすればそれっぽいのが作れるよ。
実際に空かどうかとかはフォーム側で管理する必要があるけど。
170デフォルトの名無しさん:2011/11/02(水) 01:34:20.97
>>169
プレースホルダじゃないの?
171169:2011/11/02(水) 02:23:07.90
よく調べてみたら、ウォーターマークは、
空の時の表示に限定されるものではないのか。
Silverlight4のSystem.Windows.Control.TextBoxに、
Watermarkってプロパティがあるから勘違いしてた。
薄めに重ねられる画像やテキスト全般ってことっぽいなあ。
172デフォルトの名無しさん:2011/11/02(水) 03:22:58.13
Microsoft Visual Studio 2010で継承とサブクラスのメソッドの使用について聞きたいんだけど

Class SuperClass
Public Sub hello()
Call MsgBox( "Hello" )
End Sub
End Class
Class SubClass
Inherits SuperClass
Public Sub world()
Call MsgBox( "World" )
End Sub
End Class

……とした後、適当な所から

1 Dim obj as SuperClass
2 obj = New SubClass
3 obj.hello()
4 obj.world()

ってやると4行目でエラーが出てコンパイルできないんだけど、これ何か書き方間違えてるのかな・・・?
173デフォルトの名無しさん:2011/11/02(水) 06:29:52.38
スーパークラスにworldメソッドの定義がないから当然だろ
174デフォルトの名無しさん:2011/11/02(水) 07:20:04.14
Dim obj as SuBClassでいいのでは?
175デフォルトの名無しさん:2011/11/02(水) 07:26:18.26
176のぞみ ◆fv9SHj5ibk :2011/11/02(水) 07:58:57.09
ちょっと質問です 最近VB弄り始めてばかりです 前は日本語プラグry
やってたんですけど
まァ本題へ
パスワードをかけて そのパスワードが違ったら違いますという
成功していたら 成功していますという処理にするにはどうすればいいんですか?
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
(Name).Enabled = False
End Sub

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


If TextBox1.Text = "nozomi" Then

MsgBox("認証成功")
(Name).Enabled = True
Else

MsgBox("違います")

End If

End Sub
と打ったんですが
(Name).Enabled = False
~
Name に Botton1 とかTextBox1 と打っても同じでした
177デフォルトの名無しさん:2011/11/02(水) 08:04:47.46
括弧がいらない
178のぞみ ◆fv9SHj5ibk :2011/11/02(水) 08:09:10.59
>>177 何と読むのですか?
179のぞみ ◆fv9SHj5ibk :2011/11/02(水) 08:10:16.89
>>177 ms ()とったんですけど
()とったら全部に波線になります
180デフォルトの名無しさん:2011/11/02(水) 08:13:00.56
それはOSがぶっ壊れてるな。
OSから再インスコが必要だ。
181デフォルトの名無しさん:2011/11/02(水) 17:16:38.83
>>173
SubClass からインスタンスを作成したから
SubClass で定義したWorldメソッドも持ってると思ってた・・・んだけど違うのか?
>>174
スーパークラスを継承したサブクラスを複数種類作って
それを全部一つの参照変数の配列に入れたいんだ
182デフォルトの名無しさん:2011/11/02(水) 17:23:54.08
じゃあ
Ctype(obj, SubClass).world()
でいいのでは?
183デフォルトの名無しさん:2011/11/02(水) 20:20:08.05
>>176を見て一寸試して気付いたのだけど、
Nameが仮にTextBoxとした時、VB.NETだと
(Name).Enabled = false は構文エラーだけど、
Dim stat = (Name).Enabled はOKなんだな。
C#だと両方ともOKだったりするから一寸面白い。
184デフォルトの名無しさん:2011/11/02(水) 20:40:44.65
そんな意味のないことしないから、動きが違おうが誰も気にしないよ。
185デフォルトの名無しさん:2011/11/02(水) 21:35:51.01
以前、とんでもない質問者がいるというカキコがあったが、
回答者にもとんでもないヤツがいるなw

ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=62756
186デフォルトの名無しさん:2011/11/02(水) 21:41:49.55
だから、そういうせせこましい自分については何も思わないのかよ。
なんか典型的な2ch脳だな。きもっ。
187デフォルトの名無しさん:2011/11/03(木) 06:04:15.86
何がとんでもないの?
意味がわからなかった
188デフォルトの名無しさん:2011/11/03(木) 08:30:28.31
見当違いの回答を第三者に指摘されて開き直っている点じゃないの?
189デフォルトの名無しさん:2011/11/03(木) 13:29:51.11
ウィンドウの初期化したいんですが。
どうやればいいんですか?
190のぞみ ◆fv9SHj5ibk :2011/11/03(木) 17:13:26.70
画像を埋め込みたいんですが
Dim tempPath As String = IO.Path.GetTempFileName & ".jpg"
IO.File.WriteAllBytes(tempPath, My.Resources.HSUpdate)
Process.Start(tempPath) ~~~~~~~~~~~~~~~~~~~~
じゃあ ダメですよね Resoures じゃダメなのでどれにしたら
いいですか?
191デフォルトの名無しさん:2011/11/03(木) 22:28:54.86
TINAMIというイラストサイトの画像を取得して表示したいのですが403が返ってきます

Dim wc As New WebClient
wc = New CustomWebClient() With {.Encoding = Encoding.GetEncoding("UTF-8")}

Dim url As String = "http://img.tinami.com/illust2/img/***/*************.jpg"

Dim stream As IO.Stream = wc.OpenRead(url)
Dim bitmap As New Bitmap(stream)
PictureBox1.Image = bitmap
stream.Close()

どうすればうまくいくのかご教示ください
192デフォルトの名無しさん:2011/11/03(木) 22:36:41.51
リファラとかCookieとかで制限してんじゃね
パケットキャプチャ使ってブラウザでのアクセスとリクエストヘッダの違い見比べ
193デフォルトの名無しさん:2011/11/04(金) 11:27:11.26
質問です

VisualBasic 2008 Express Editon
MySQL 5.1.7
Connector/Net 5.2

上記環境でデータベースを扱うソフトを作っているのですが
MySQL内にある改行されてる文字列をそのままSelectして表示
ソフトウェア上でTextBoxのMultiLineに記述した複数行の文字列をInsertして追加

はどうすれば出来るのでしょうか?

194デフォルトの名無しさん:2011/11/04(金) 11:28:33.10
それ質問じゃなくて開発依頼
195193:2011/11/04(金) 12:26:17.31
質問じゃなくて開発依頼とはどういうことでしょうか?
個人的に勉強しようと思い取り組んでいるだけなのですが・・・
196デフォルトの名無しさん:2011/11/04(金) 12:39:13.35
自分で調べてみた書いてみた動かしてみたって形跡が一切無いじゃん
197デフォルトの名無しさん:2011/11/04(金) 12:50:46.98
ゆとりちゃんってマジで常識がないよな
疲れるわー
198デフォルトの名無しさん:2011/11/04(金) 13:10:32.91
まずは自分で出来るところまでやってみるべき

>>197
お前の言動は気持ち悪いけどな
199デフォルトの名無しさん:2011/11/04(金) 13:14:38.42
まあ質問スレで答える気も無く難癖付けてるだけのオッサンもどうかと思うけどな
200デフォルトの名無しさん:2011/11/04(金) 13:17:15.01
そうはいっても酷すぎる質問だろう。っていうか質問じゃないだろうこれは。
201デフォルトの名無しさん:2011/11/04(金) 13:18:29.07
アニメゆとりちゃん
http://yutori-chan.jp/
202デフォルトの名無しさん:2011/11/04(金) 13:18:38.90
もし宿題スレがあるならそっちだろうとは思うけど
203デフォルトの名無しさん:2011/11/04(金) 13:24:41.77
アニオタ気持ち悪い
204デフォルトの名無しさん:2011/11/04(金) 14:17:56.47
全く違うのに宿題とか開発とかのスレで質問しないと回答もらえない質問なのでしょうか?
自分でも調べましたがPHP関連でしか出てこないので質問させていただいたのですが・・・

とりあえずわかる方がいないようなので別の所で質問させていただきます

失礼しました
205デフォルトの名無しさん:2011/11/04(金) 14:21:01.69
vb.net mysqlでググれば山のように回答が出てくるわけだが
マジでゆとりってまったく1ミリも頭使いたくないんだな。
だから最近20代のプログラマが存在しないんだな。
206デフォルトの名無しさん:2011/11/04(金) 14:21:33.90
> 自分でも調べましたがPHP関連でしか出てこないので
是非とも検索ワードを教えていただきたい
どんな調べ方したらそんな惨状になるのか、すごい参考になりそうだ
207デフォルトの名無しさん:2011/11/04(金) 14:32:41.94
>>205
どこにでしょうか?
単なるInsert into、select fromと勘違いしてるのでは?
複数行の改行等そのままで扱いたいって言ってるんですが^^;


検索も「VB.NET MySQL 改行」と検索しても意図する結果が出ないので
「MySQL 改行」とするとPHPの結果ばかり出てきますけど?
208デフォルトの名無しさん:2011/11/04(金) 14:34:49.90
なにそれ?改行がなんなのか知らないってこと?
209デフォルトの名無しさん:2011/11/04(金) 14:38:46.96
改行コードだけ気を付けたら良い話なんじゃないの?
ほとんど読んでないからよくわからんけど。
210デフォルトの名無しさん:2011/11/04(金) 15:06:43.54
mysqlは触ったことないけどAddWithValueを使ってないんじゃないの?
211デフォルトの名無しさん:2011/11/04(金) 15:12:05.09
その流れなら普通は
検索が引っかからない>重要ではない?>試しに改行を含んだ文字列を単純にINSERTしてみる
となるもんだと思うのだけど

VBで改行付き文字列の記述方法を知らないとかそんなのなのか?
212デフォルトの名無しさん:2011/11/04(金) 15:14:41.91
PHPでも考え方は参考になるんでないの?
何が問題かわかっているのなら記法を調べるだけでしょ。
213デフォルトの名無しさん:2011/11/04(金) 17:15:35.94
VB..netでのアクティベーション搭載ノウハウやパターン例が
まとまっているサイトや書籍はないですか?
214デフォルトの名無しさん:2011/11/04(金) 17:44:57.12
haspを買えばいいよ
215デフォルトの名無しさん:2011/11/04(金) 23:21:22.58
釣りなんだからヤメヤメ
むしろ検索に頼るところからゆとり全開
頭とけてんだろ
216デフォルトの名無しさん:2011/11/05(土) 02:26:10.29
.netあまり詳しくないけどバインドとかパラメータクエリとかそういう話じゃないの?
DB連携で改行コード云々てのは言語問わず付いて来るよね
だいたいは変換しちゃうけど
217デフォルトの名無しさん:2011/11/05(土) 04:29:44.55
Dim oApp As Object
Dim Ver As Decimal
oApp = CreateObject("Excel.Application")
Ver = CType(oApp.Version.ToString, Decimal)
これでインストールされているExcelのバージョンを取ろうと思うんですが、
遅延バインディングは使用できません。とエラーになります。
どうしたらいいでしょうか?
218デフォルトの名無しさん:2011/11/05(土) 05:14:49.79
そもそもExcel.Application.VersionにToStringなんてないだろ
219デフォルトの名無しさん:2011/11/05(土) 07:09:47.09
VB.NETでむかしの
ADOやFileSystemObjectを使うにはどうすれば
220デフォルトの名無しさん:2011/11/05(土) 13:39:57.55
じゃExcelのバージョンって取得する場合はどうしたらいいでしょうか?
221デフォルトの名無しさん:2011/11/05(土) 13:44:28.28
コンパイルの設定で遅延バインディングを
許可していないだけのオチに一票。
222デフォルトの名無しさん:2011/11/06(日) 03:23:31.04
レジストリ参照するだけだろ
223デフォルトの名無しさん:2011/11/06(日) 08:53:30.94
都合のいい変換はないものでしょうか?

テキストボックスに入ってる文字を数値にしたい。


ああああ→0
(何も入力されてない)→0
123→123
1,234→1234
1,234あああ→1234


いちいちエラーが出てしまってめんどくさい
224デフォルトの名無しさん:2011/11/06(日) 09:13:42.40
>>223
エラー処理で良いんじゃないか?
225デフォルトの名無しさん:2011/11/06(日) 10:20:23.28
>>223
原始的だが
一文字ずつ回して、Regex.IsMatch なり IsNumeric なりで
数値と判定した文字だけで再作成するとかじゃダメか?
マイナス・プラス記号・小数点も許すってんならもう一工夫必要だが
226デフォルトの名無しさん:2011/11/06(日) 11:50:11.16
>>224
>>225
レスありがとうございます。

結局は225 さんのような処理を通しています。

・数値しか入力できないようにする。
・コピーペーストなども防止する。

それでももしかして何か文字が入っても
とりあえず落ちるのだけは避ける。


要らない緊張感があります。
なんかすっごく疲れる。
227デフォルトの名無しさん:2011/11/06(日) 12:30:13.77
まあ、数値のみ受け付けるTextBoxぐらい標準で用意して欲しいよなとは思う。

国際化の問題とか、指数表記を受け付けるかどうかとか、標準で用意するとなると
意外と面倒なのは理解できるけど。

俺もそうだけど恐らくほとんどの人は自作してるよね。
凄い無駄だよな。
228デフォルトの名無しさん:2011/11/06(日) 18:40:18.84
数値のみならNumericUpDownとかで十分では
229デフォルトの名無しさん:2011/11/06(日) 19:07:09.03
MaskedEditってなんで.NET版ないんだろうね
230デフォルトの名無しさん:2011/11/06(日) 19:10:33.05
MaskedTextBoxのMaskで似たようなことできるからじゃない
231デフォルトの名無しさん:2011/11/06(日) 19:32:24.50
>>230
じゃあ>>227,229はそれで解決だな

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

うはは、俺のアプリまだ1.1だったわw
232デフォルトの名無しさん:2011/11/06(日) 19:40:03.09
日時は、DateTimePicker、数値は、NumericUpDownで
それ以外の固有フォーマットは、TextBox拡張して自作してるけど
なぜか、MaskedTextBoxだけは、使う気しないんだよなあ
なんでかはわからんけど
233デフォルトの名無しさん:2011/11/06(日) 19:47:32.11
>>228
全然十分じゃないって。
あれは基本狭い範囲の数を選択させるためのものだから自由度が低い
234デフォルトの名無しさん:2011/11/06(日) 21:30:07.26
>>231
そういや脱線するけど2以降でトグルボタン無くなったのは地味に痛いな…
チェックボックスじゃ色変えられなくて使いにくいったら
235デフォルトの名無しさん:2011/11/07(月) 18:38:03.61
>>232
俺は右矢印やマウスカーソルで勝手に空白が入るとこが気に食わない。
単純にテキストボックスに入力制限するプロパティが欲しい。
236デフォルトの名無しさん:2011/11/07(月) 20:39:56.15
全部のテスキトボックスに全角入力をしたらエラー処理するには、どうしたら……。
20個以上あるんだ。
237デフォルトの名無しさん:2011/11/07(月) 20:51:40.11
Form.Controlsの中からTextBoxだけ好きなように弄れば良い。
238デフォルトの名無しさん:2011/11/07(月) 20:59:09.07
TextBox継承して、TextChangedイベントなりLeaveイベントなりで
GetByteCountかなんかでチェックするコントロールを作成すればどうでしょうか?
239デフォルトの名無しさん:2011/11/07(月) 21:44:08.28
やってみます。ありがとう。
240デフォルトの名無しさん:2011/11/08(火) 22:22:10.95
.NET で作成された、他のアプリ上のテキストを取得したいのですが、MenuStrip 内のラベルのテキストを取得できません。

GetMenu でメニュー自体のハンドルは取れるのですが、GetMenuItemCount では -1 が返ってしまいます。

MenuStrip 自体に小ウィンドウも配置されていないようですが、どうすれば MebuStrip 内ラベルのテキストなどを取得できるのでしょうか。
241デフォルトの名無しさん:2011/11/08(火) 22:30:05.94
あれはメニュー風に見せてるだけのただのコントロールだからGetMenuは無意味
IAccessible経由ならなんとかなるかな
242デフォルトの名無しさん:2011/11/08(火) 22:45:09.87
>>241
やはり GetMenu 系だと無理なのですか、ありがとうございます。
IAccessible というのは知らなかったので調べてみます。
243デフォルトの名無しさん:2011/11/08(火) 23:29:16.39
vs2010使ってるんだけど、ラベルとかで選択できるフォントが少ないんですが、何が原因なのでしょうか?
244デフォルトの名無しさん:2011/11/09(水) 08:44:48.25
245デフォルトの名無しさん:2011/11/09(水) 13:43:40.73
テキストボックスに「1,234」と数値が右揃えに入っていて
フォーカスが来たら左に寄せて数値は「1234」になって
しかも4文字とも選択された状態に。

入力中は数値とBSくらいしか受け付けずもちろんペーストもダメ。

フォーカスをロストしたら改めて数値しか入っていないことを
確認し、それをカンマ付きに変更して左揃えにする。

もちろん数値の妥当性も考えなくちゃいけない場合もある。


お金貰うのでこのくらいはデフォルトでやらなくちゃいけない。

というか、そう先輩に教わった(泣
246デフォルトの名無しさん:2011/11/09(水) 19:18:31.35
>>245
コンポーネントを買えばいいよ
コムラッドのやつ http://www.comrade.co.jp/component/package/fd4.htm
247デフォルトの名無しさん:2011/11/09(水) 19:48:46.89
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
Dim O As Object=sender
O=CType(O,Button)
Process.Start(O.text)
End Sub

どこに間違いがあるかがわからない。

248デフォルトの名無しさん:2011/11/09(水) 20:03:39.49
遅延バインディングをエラーにしているのが間違い。
遅延バインディング頼りな書き方が間違い。

好きな方をどうぞ。
249デフォルトの名無しさん:2011/11/09(水) 21:57:58.60
何がどうなるのかも書かないで抜粋したコードだけで他人に解ると思う所か
どこかが間違ってると思うのが間違いじゃないかな
250デフォルトの名無しさん:2011/11/09(水) 23:26:14.27
正解は間違いはないってことだろ
251デフォルトの名無しさん:2011/11/10(木) 22:36:24.53
Streamの途中に「挿入」する方法教えてください。「上書き」じゃないです。
252デフォルトの名無しさん:2011/11/10(木) 22:44:59.73
派生クラスを作って、使う側からは挿入されているように見せれば良い。
253デフォルトの名無しさん:2011/11/10(木) 23:41:24.27
超初歩的な質問ですがお願いします
データベースファイルから任意のテーブルのレコードを抽出する時はSQL文を使って抽出できますが
ファイルの存在しないDataSetからレコードを抽出する場合はどうすれば良いのでしょうか?
具体的にはDataSetに対してGroup Byを使用したいのですが・・
Where句に相当するView.RowFilterやOrder Byに相当するView.Sort等は見つかったのですが
Group Byに相当する処理方法がみつかりませんでした
254デフォルトの名無しさん:2011/11/10(木) 23:58:24.27
Linq
255デフォルトの名無しさん:2011/11/11(金) 12:47:33.72
>>254
ありがとうございます。
少しググっただけですが使えそうな感じです。
256デフォルトの名無しさん:2011/11/11(金) 13:18:53.86
Send.Keysで他のアプリのコントロールを操作する際に
フォーカスを奪われないようにユーザーの操作を一切受け付けないようにしたいのですが
どんな方法で実現可能でしょうか?
257デフォルトの名無しさん:2011/11/11(金) 13:36:40.23
不可能です
258デフォルトの名無しさん:2011/11/11(金) 15:10:44.58
すみません、質問です。
GroupBox1にRadioButton1とRadioButton2を配置して、
このいずれかのRadioButtonがクリックされた時の
イベントはどうやって取るのがオーソドックスな
考え方なのでしょうか?

GroupBoxのイベントを取って、RadioButtonの状態を見るという方法が
一般的かと思ったのですが、それに該当するようなイベントがみあたり
ませんでした。
となると、RadioButton1 と RadioButton2 の CheckedChanged のイベントに、
ある別のメソッドが呼び出されるように書くしかないのでしょうか?
259デフォルトの名無しさん:2011/11/11(金) 15:34:09.29
if 〜 then って入力して、Enterキーを押した時に、勝手に
他の行のインデントが変わってしまう機能を停止するには
どの設定を変えたらいいのでしょうか?
VB2005 Express 使っています。
260デフォルトの名無しさん:2011/11/11(金) 17:31:09.35
ComboBoxを配置して、マウスで選択された値を取得しようとするのですが、
Me.ComboBox1.Text とすると、一つ前にマウスで選択された値となってしまいます。
どうしたら、マウスで選択した最新のものが取得出来るのでしょうか。
261デフォルトの名無しさん:2011/11/11(金) 17:43:09.79
補足
>>260は ComboBox1_SelectionChangeCommitted のイベントハンドラつかってます。
262デフォルトの名無しさん:2011/11/11(金) 19:07:16.82
>>258
何をするのかにもよるけどCheckedChangedでよくね?
263デフォルトの名無しさん:2011/11/12(土) 07:50:15.12
>>262
ありがとう
264デフォルトの名無しさん:2011/11/12(土) 09:20:08.97
ComboBoxにおいて、キーボードからの入力を出来ないような
設定はないのでしょうか?
間違えてキー入力がある、もしくは、選択肢と同じ内容の入力を
行ってしまうと、そこでエラーが出てアプリが止まってしまいます。
265デフォルトの名無しさん:2011/11/12(土) 09:42:21.17
>>264です。
自己解決しました
DropDownStyle プロパティを DropDownList にすればよかったのですね。
266デフォルトの名無しさん:2011/11/12(土) 09:49:29.98
変数の値がnullであるかをチェックするにはどうしたらいいのでしょうか?
AccessVBA では if isnull(変数) = true then という形でチェックが出来たのですが、
(当然のことながら)VB.NET ではエラーとなってしまいます。
267デフォルトの名無しさん:2011/11/12(土) 10:39:46.46
>>266
If 変数 Is Nothing Then 〜
IsNothing関数も一応あるけど普通はこれ。
あと、DBのNULL判定なら全く別の話でIsDBNull関数とか使う。
268デフォルトの名無しさん:2011/11/12(土) 11:34:19.19
>>267
丁寧な解説ありがとうございます。
269デフォルトの名無しさん:2011/11/12(土) 11:51:31.15
フォルダを開くメソッド
Process.Start("C:\")
を頻繁に書くのが大変なので
P("C:\")
と簡単に書けるようにするにはどうすれば
270デフォルトの名無しさん:2011/11/12(土) 11:57:15.66
>>269
これのことですか?

VB.NETでクラス名を省略してメソッドや定数を利用するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/107imports/imports.html
271デフォルトの名無しさん:2011/11/12(土) 12:06:20.15
さらに簡単に・・・
272デフォルトの名無しさん:2011/11/12(土) 12:14:40.20
それなら、ラッパーを作ってとかしか方法がないんじゃないの?
メインのコードは減るかもしれないが、相対的にコードが増えたり、
メンテナンス時にクラスの把握がややこしくそうな気がするのだがな。
273デフォルトの名無しさん:2011/11/12(土) 12:22:43.36
Dim P As Func(Of String, Process) = AddressOf Process.Start
P("C:\")
こんな感じ?
274デフォルトの名無しさん:2011/11/12(土) 12:26:46.48
意図が良く見えないのだがな。
汎用性のあるモジュール作るって方向の話のようにも思えるのだが、どうなの?
全般的に補間機能を使ってコードを書く事自体が面倒で何とかしたいという
ようにも聞こえるのだが。
275デフォルトの名無しさん:2011/11/12(土) 12:28:24.73
>>273
おおできたd
276デフォルトの名無しさん:2011/11/12(土) 12:38:10.41
PictureBox では jpg や bmp などは表示出来ますが、pdfは表示出来ません。
pdf も表示したり印刷したり出来るようには出来ないのでしょうか?
277デフォルトの名無しさん:2011/11/12(土) 12:39:41.04
追加質問で
Dim i1,i2,i3,i4,i5 as integer
を書くのもめんどうなので
For A=1to 5
dim iA as integer
Next
みたいに書くにはどうすれば
278デフォルトの名無しさん:2011/11/12(土) 12:41:14.73
>>277
配列宣言したらだめなの?
279デフォルトの名無しさん:2011/11/12(土) 12:43:16.47
ダメ
280デフォルトの名無しさん:2011/11/12(土) 13:08:20.43
Option Explicit Off
これで宣言すら不要。JavaScriptでやれって言われる気もするがw
281デフォルトの名無しさん:2011/11/12(土) 13:15:56.56
OpenFileDialog() で、ファイルを指定した後、ファイル名のみを取得
する方法はないのでしょうか?
.FileName プロパティだとフルパスの文字列が帰って来ますよね。
これのファイル名のみが欲しいのです。
.FileNames(0) としてみてもうまく取得が出来ませんでした。
282デフォルトの名無しさん:2011/11/12(土) 13:22:00.21
Pathクラスに色々とパスを処理するメソッドがある
283デフォルトの名無しさん:2011/11/12(土) 13:30:16.78
Path.GetFileName
284デフォルトの名無しさん:2011/11/12(土) 13:33:25.79
ファイル名+拡張子なら、一応SafeFiileNameプロパティが使える。
ただ、対応バージョンが.NET2.0SP1か.NET3.0SP1以降と微妙。
285デフォルトの名無しさん:2011/11/12(土) 14:09:28.93
>>282>>283>>284
すばやい回答ありがとうございました。
取得できました。
286デフォルトの名無しさん:2011/11/12(土) 14:18:39.90
すみません、質問です。
DataTableにフリガナ付の名前一覧のテーブルを読込んでいる状態で、
フリガナがア行のみを抽出したいという場合、どうしたらよいでしょうか?
以下のような方法では、アで始まるものしかとれません。
しかし、濁点のある行においても対応することを考えると、大量にコードを書くことに
なってしまいます。何か良い案はないかと思い質問してみました。

Dim fil As String
fil = "substring(フリガナ,1,1) = 'ア'"
myDataTable.DefaultView.RowFilter = fil
287デフォルトの名無しさん:2011/11/12(土) 14:24:10.05
フォーム上に ListBox1 を配置して、それのいずれかがダブルクリック
された時に、以下のコードでその名称を取得しているコードを書いたのですが、
Me.ListBox1.SelectedItem.ToString()
何も無いところでダブルクリックすると、エラーで停止してしまいます。
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
どうやったらこのエラーを回避できるのでしょうか?
288デフォルトの名無しさん:2011/11/12(土) 14:26:59.41
まずア行と言うのは、システム上どこでどのように定義されているのかね?
289デフォルトの名無しさん:2011/11/12(土) 14:33:41.49
>>288
テーブルが以下のような感じにフィールドを持っています。
・ID
・名前
・フリガナ

具体的には以下のようにデータが入っています。
1, やる夫, ヤルオ
2, ゆる子, ユルコ
3, 花子, ハナコ

そして、「ヤ行」だけ抽出する場合、1と2の行だけが欲しいのです。
290287:2011/11/12(土) 14:36:17.03
try 〜 Catch ex As NullReferenceException end try
で回避したらいいということなのでしょうか?
とりあえずこれで exit sub を書いたら動作はしていますが。
291デフォルトの名無しさん:2011/11/12(土) 16:08:23.24
Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|あ




End Sub


のところにカーソルがあるとき一気にEnd Subまでカーソルをもっていくショートカットキー操作はなんだっけ。
292デフォルトの名無しさん:2011/11/12(土) 17:40:45.63
32bit環境で作っていて、64bit環境へ移す際に不具合が出る系統のものって
大きくいうと何があるのでしょうか?
私が調べた範囲では、ファイルやディレクトリの操作関係は影響は無く、
mdbファイルなどへのアクセス関係で問題が出る。ということでしたが、
このほかに抑えておくべきことってあるのでしょうか?
293デフォルトの名無しさん:2011/11/12(土) 20:47:11.86
>>276
頭大丈夫か?
PDFって文書だぞ?
画像じゃないぞ
どうしてもってんならwebbrowserだろうが…
(もしくはpdfspiゴニョゴニョ…)
294デフォルトの名無しさん:2011/11/12(土) 20:48:37.25
サードパーティの32bitコンポーネントとか使ってると
問題が起きるかもしれない
295デフォルトの名無しさん:2011/11/12(土) 21:22:28.52
マイクロソフトのサイトでPDF使ってるのはなんで?
http://www.microsoft.com/japan/msdn/vstudio/2010/product/express/book.aspx
296デフォルトの名無しさん:2011/11/12(土) 21:42:10.14
アクロバットファイルのことを誰もそう呼んでくれない件。
297808:2011/11/12(土) 22:08:47.31
色の比較(黒の確認)をしたいのですが、下のように書いたらIFの式が受け入れてもらえませんでした。
どのようにしたら良いでしょうか?

Dim s As Drawing.Color
Dim black As Drawing.Color = Drawing.Color.Black

 s = bmp.GetPixel(x, y)

If s = black Then・・・

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

298デフォルトの名無しさん:2011/11/12(土) 22:25:50.16
RとGとBを(必要ならAも)それぞれ比較すれ
299デフォルトの名無しさん:2011/11/12(土) 23:10:20.23
>>289
直書きするか、テーブルに列を追加かね
300デフォルトの名無しさん:2011/11/13(日) 13:05:12.70
>>292
API関係
301デフォルトの名無しさん:2011/11/13(日) 15:13:22.40
>>294>>300
回答ありがとうございます。
そのあたりに注意してみます。

私なりには、jetが64bitに標準で載っていないのがなんか
納得いかないんですよね。。。
仕様上仕方が無いということであれば、そうなのでしょうが。
302デフォルトの名無しさん:2011/11/13(日) 15:25:14.34
全角や半角の空白スペースが入っているものを削除する場合、どうしたら
いいのでしょうか?(途中も含めて詰めた結果が欲しいです)
例えば、「ニュー速で やる夫」→「ニュー速でやる夫」といった感じです。

自分で調べたところ、前後のスペースの削除が出来るものしか見つかりませんでした。
http://jeanne.wankuma.com/tips/vb.net/string/trim.html
303デフォルトの名無しさん:2011/11/13(日) 15:30:26.37
string.replace
304デフォルトの名無しさん:2011/11/13(日) 15:32:13.03
>>303
ありがとう
305デフォルトの名無しさん:2011/11/13(日) 15:33:32.66
>>299
それしか方法が無いのでしょうかね。
正規表現使うとかしてうまい具合に少ないコードで抽出できないか
と思ったりしたんですけどね。
306デフォルトの名無しさん:2011/11/13(日) 15:37:18.06
>>293
回答ありがとうございます。
イメージファイルだとひとくくりに考えてしまっていたので、
同じものだと思い込んでしまっていました。しかし、よく考えたら
文章ファイルでしたね。
シェル使ってAcrobat起動させるとか、別な方法を考えて見ます。
ありがとうございます。
307デフォルトの名無しさん:2011/11/13(日) 15:48:48.33
>>306
いや、言いすぎて悪かった
acrobat入ってればWebBrowserで表示は出来るんだけどな
(Office入ってればExcelも表示出来たりWebBrowserって意外と
侮れないw)
308デフォルトの名無しさん:2011/11/13(日) 16:01:06.62
>>307
確かにWebBrowserはいろいろなことが出来るようになってきているところは
ありますが、バージョンの違いや、ブラウザの種類、アドインなどによって
動作したり、しなかったりなどの問題もあります。
そこで、今回は、出来ればVB.NETの範疇でプレビュー(出来れば印刷まで)を
対応できないかと思っていたところがあったのです。
こういう、いろいろなファイル内容を表示したり印刷したりが出来る
モジュールってなると、今は無いのでしょうね。
309デフォルトの名無しさん:2011/11/13(日) 16:12:35.10
先頭にこういう文字を含んだフォルダがあるかをチェックしたい場合は
どのような関数を用いたらよいのでしょうか?

例えば、[01]の文字を含んだものが見つかるかをチェックしようとして
以下のように書いてみたのですが、目的のように動作しませんでした。
If IO.Directory.Exists("01*") = True Then
310デフォルトの名無しさん:2011/11/13(日) 16:17:34.62
Outlook.Applicationを使用してメールを作成し、Outlook下書きに格納しているのですが、
Outlookで確認すると、メール本文の各行改行直前に半角スペースが挿入されてしまいます。
("aaaa"+ " " + vbCrLf + "bbbb"+ " " + vbCrLf のようなイメージ)
改行コードがいけないのでしょうか?
outlookは2010でテキスト表示、VB2008です。

(コード抜粋)
OL = CreateObject("Outlook.Application")
ML = OL.CreateItem(0)
省略
ML.Body = "aaaa" + vbCrLf + "bbbb" + vbCrLf
ML.Save()
311デフォルトの名無しさん:2011/11/13(日) 17:34:54.35
>>308
PDF用は入手に難があるし新しいVerに対応してないんでアレだけど
SPI(SusiePlugIn)使えば表示や印刷出来なくはないんだけどね
(対応spiがあれば、だけど)
312デフォルトの名無しさん:2011/11/13(日) 18:14:08.03
>>309
方法はいろいろあるとおもうけど
DirectoryInfo 使うのが一番手っ取り早いかなあ

Dim dirs() As System.IO.DirectoryInfo = _
    New System.IO.DirectoryInfo("C:\").GetDirectories("01*", IO.SearchOption.AllDirectories)

こんな感じ
313デフォルトの名無しさん:2011/11/13(日) 21:33:56.36
VB.NETで
ADOやFileSystemObjectを使ってもいいの?
どーやると使える?
314デフォルトの名無しさん:2011/11/13(日) 21:40:03.69
CreateObject
315デフォルトの名無しさん:2011/11/13(日) 21:42:40.82
わざわざ使うほどのメリットがあるとも思えんがの
316デフォルトの名無しさん:2011/11/13(日) 22:39:36.36
>>307
昔はそれでよかったよね
317デフォルトの名無しさん:2011/11/13(日) 23:04:51.66
Dim files As String() = System.IO.Directory.GetFiles(strPath & "\", "*", System.IO.SearchOption.TopDirectoryOnly)

上記でDirectoryNotFoundExceptionが発生しました。
strPath & "\"は「z:\」となり、zドライブはnas上のフォルダを示すネットワークドライブとなっています。

実行PCがXPではエラーは起きずに正常に処理できましたが、windows7ではエラーでした。
windows7&ネットワークドライブでは上記ロジックは使えないのでしょうか?

318デフォルトの名無しさん:2011/11/14(月) 00:53:06.82
>>313
ADOは使おうと思えば使える。だが、動作環境や対応状況などを
考えると使うのは避けた方がいいとされている。
なので、例えばその目的がサーバーカーソルが使いたいのだとか、
そういうものをあげて、代案としてどういうものがあるかを
考えていく方法を取った方が良いと思う。
319デフォルトの名無しさん:2011/11/14(月) 01:06:45.33
フォーム上にコンボボックスを配置して、それにデータベースから読み込んだデータを
表示させるプログラムを書く場合の質問です。(設計的な考えのものです)

フォームloadイベント内に、ローカル変数でDataTableを宣言し、コンボボックスに
表示までのコードを書くと、動くことは動きますが、これはOOP的な考えとしては
間違っているのでしょうか?
本来は、フォームのメンバにDataTableをもっておき、それへデータベースから読み込んだ
データを代入する処理をイベント内に書くべきなのかもしれないと思いました。

ふと、VBの自動補完をする機能が動くような、動作が遅くなってしまうような
コードを書いてしまっているのかが気になって質問してみました。
320デフォルトの名無しさん:2011/11/14(月) 08:54:26.33
あんまり考えた事無かったけど、
変数のスコープ拡大するほどの理由にはならないと思うよ。
好きに作ったらいいんじゃない?
321デフォルトの名無しさん:2011/11/14(月) 10:17:07.97
ひょっとして、フォーム上に貼り付けたComboBoxクラスは、以下のような
コードを書いた時点で、DataTableから該当のデータを「値型」で受け取って
いるから、DataTableはメモリから解放しても問題は無い
(DataTableはフォームのフィールドにしたりする必要がない)
ということになるのかな?

ComboBox.DataSource = DataTable
ComboBox.ValueMember = "id"
ComboBox.DisplayMember = "bbbb"
322デフォルトの名無しさん:2011/11/14(月) 10:20:08.00
>>311
ありがとうございます。
PDFは閲覧ツールが無料配布であったり、作ったりが比較的簡単に出来る反面、
ツールで独自に処理しようとすると結構面倒だったり互換性的な問題がでたり
があるのですね。
323デフォルトの名無しさん:2011/11/14(月) 11:01:29.54
Loadイベント上でもコンストラクタ上でもエントリポイント上でも
スコープ気にしないならどこでもいいんじゃないかなあ
まあ、可能ならDataSet使うのが一番手っ取り早いかもしれん
324デフォルトの名無しさん:2011/11/14(月) 13:28:10.24
気にしないならどこでもいいということになるんだろうが、
俺が気になっているのは、VB特有にある機能の、暗黙の〜っていう
処理が行われていて結果的に動いている形になっているのかどうか
という部分。なので、気にしているのだ。

確かに、>>323に書いてあるように、DataSetオブジェクトをデザイナ上に
配置してプログラミングすると確実ではあるかもしれないが、
DataSetはデザイナ上に配置せず、コードでDataTableを書くのを前提に
考えているんだ。すまん。
325デフォルトの名無しさん:2011/11/14(月) 14:32:57.61
>>321の認識でほぼ正解だよ
コンボが参照持ってる内は解放されないけどね
326デフォルトの名無しさん:2011/11/14(月) 14:47:04.79
Formに関する質問です。複数のFormを開いていくプログラムを作っているのですが、
そのFormを閉じるまでの間、別のFormにはフォーカスが移らないようにする
処理はどのようにしたら良いのでしょうか?
Accessの場合は、プロパティの「作業ウィンドウ固定」を「はい」に変更する事で
対応できるものでしたが、VB.NETの場合はどの部分の設定を変えたらよいのでしょうか?
327デフォルトの名無しさん:2011/11/14(月) 15:04:18.17
showmodalでいいのでは?
328デフォルトの名無しさん:2011/11/14(月) 15:12:22.75
Formにおいて、マウス操作によって最大化されないようにするには
どのように設定したら良いのでしょうか?
プロパティにて ControlBox を False にすると、最大化などの
ボタンは表示から消えはしますが、上のタイトルバーの部分を
マウスでダブルクリックすると、フォームが最大化されてしまいます。
329デフォルトの名無しさん:2011/11/14(月) 15:16:02.24
MaximizeBox
330デフォルトの名無しさん:2011/11/14(月) 15:18:29.30
>>329
すばやい回答ありがとうございました。
331デフォルトの名無しさん:2011/11/14(月) 15:20:38.01
>>327
すみません、その回答は、プロパティを変えるという意味合いなのでしょうか?
それともあるクラスのメソッドを実行するという意味合いなのでしょうか?
もう少しヒントお願いします。
332デフォルトの名無しさん:2011/11/14(月) 15:21:50.23
>>312
ありがとうございます。その方法で試してみます^^
333デフォルトの名無しさん:2011/11/14(月) 15:24:02.33
>>325
さんくす。クラスの認識はむずかしいですね・・・
ある程度概念を理解出来れば迷うこともないのでしょうが。
334デフォルトの名無しさん:2011/11/14(月) 16:13:17.64
>>333
難しいかなぁ…
どう足掻いても参照出来ないオブジェクトが解放対象だよ
参照は電話番号みたいなもんで、知り合いの知り合いの…と、間接的にでも多くの人が繋がっているけど、
誰のアドレス帳にも登録されてないと誰からも電話が来ない。
そういった省られ者は定期的にチェックされ電話番号取り上げられる感じ。
335デフォルトの名無しさん:2011/11/14(月) 16:54:13.64
>>334
レスありがとうございます。
ガーベージコレクションにおいては大体文章に書いていただいている
内容ということだと理解は出来ます。
しかし、>>325で書かれている、スコープが終了していても、参照されて
いる状態だと解放はされない。という部分の理解をどうしたらいいのかが
ちょっと戸惑っている感じです。
336デフォルトの名無しさん:2011/11/14(月) 19:24:34.22
クリアーしてディスポしてやれば問題なし。
337デフォルトの名無しさん:2011/11/14(月) 19:27:30.70
>>335
参照と言うのは具体的に4バイト(x86環境)なんだけど、
その4バイトを格納する領域がスコープによって解放される対象。
オブジェクト自体はヒープと言うグローバル領域に生成されるから、
スコープの概念が無いんだよ。
338デフォルトの名無しさん:2011/11/15(火) 11:20:44.43
DataGridViewのDataGridViewComboBoxColumnに
ラベルと値を登録する方法はないでしょうか?

col.Items.Add("abc")

といったように値しか登録できないのですが・・・
339デフォルトの名無しさん:2011/11/15(火) 11:27:34.38
事故解決しました。
340デフォルトの名無しさん:2011/11/15(火) 18:26:28.13
>>337
試験的に、FormクラスのフィールドにDataTableを持たせて、
Button1で Me.ComboBox1.DataSource = DataTable として、
Button2で DataTable.Dispose() するのを作る。

Button1をクリックすると、ComboBox1にデータは表示される。
次に、Button2をクリックすると、ComboBox1のデータは消える。


この結果と、先に作ったプログラムの結果を比べてみると、
スコープを過ぎてもDataTableは自動的にDisposeされずに、
ちゃんとメモリの中に残り、動作しているということが分かる。
(逆に、スコープを終了する行で、Disposeを入れると、データは
消えてしまい表示されなかった。)


> オブジェクト自体はヒープと言うグローバル領域に生成されるから、
> スコープの概念が無いんだよ。
やっとこのあたりの概念が理解出来て来たと思います。
詳しい説明ありがとうございます。
341デフォルトの名無しさん:2011/11/15(火) 18:30:05.66
>>336
すみません、基本的な質問ですが、
clearしてDisposeしないといけないのは、なぜなのでしょうか?
DataTable内で持っているクラスのメモリがきちんと解放されない
場合があるからなのでしょうか。
342デフォルトの名無しさん:2011/11/15(火) 19:23:11.99
自分のクラス内のメソッドをコールする場合は『Me』を付けた方がいいのでしょうか?

付けた方がいい場合はその理由も教えてくれたら嬉しいです
343デフォルトの名無しさん:2011/11/15(火) 21:39:57.55
>>340
よかった!頑張ってね。

>>341
>>337だけど、Disposeは.Net管理対象外のリソースを解放する為にあるよ。
プログラム中使っているメモリは前述のスタック・ヒープ以外にも、
.Netの管理対象外の領域に確保されているケースがある。
(例えばGUIでは個々のウィンドウに一意なハンドルが割り当てられる。)
到達不可能とマークされたオブジェクトはいずれGCによって回収される事になっているけど、
それでは都合の悪いものもある。
そんな時に明示的に解放するものがDispose。

原則としてIDisposableを実装していれば呼ぶべき。
でもDataTableに必要かどうかはよく分からない。
DataTableは画面上に配置可能なコンポーネントという位置付けで、コンポーネントだとDisposeが付いてくる。

>>342
付けた方が見易い気がする。
規約があれば従う、でなければ好み。
344デフォルトの名無しさん:2011/11/16(水) 01:50:36.88
ここでは、継承の絡みでDispose()が存在するだけで
呼び出す必要はないということらしいんだけど
確かにDataTableでDispose()してるサンプルってあんまり見たことないね
http://efreedom.com/Question/1-913228/Dispose-DataSet-DataTable
345デフォルトの名無しさん:2011/11/16(水) 04:36:31.19
結局のとこDisposeしたらどうなるかって、そのクラスの実装次第だからなぁ
基本的にはアンマネージドなリソースはDisposeで開放しましょう、って約束なだけで
ドキュメントなりにDisposeしろって書いてあるクラスはした方がいいんだろうけど
DataTableとかマネージドリソースしかないはずだからどっちでも良い気はする
346デフォルトの名無しさん:2011/11/16(水) 05:00:34.95
ボタン1のプログラムを呼び出したいけど
Button1_Click(1,2)
の1と2のいんすうにはなにをわたせばいいの?
347デフォルトの名無しさん:2011/11/16(水) 07:06:34.43
>>346
Nothing
348デフォルトの名無しさん:2011/11/16(水) 07:40:14.95
new EventArgs(〜) で渡す中身を作ってもいいけどな
349デフォルトの名無しさん:2011/11/16(水) 09:27:41.98
>>343
> Disposeは.Net管理対象外のリソースを解放する為にあるよ
> 原則としてIDisposableを実装していれば呼ぶべき。
.NET管理のリソースについての詳しい説明ありがとうございます。
そういう明確な根拠もあわせて説明があると、分かりやすいですね。


>>344
英語の文献の紹介ありがとうございます。
やはり、英語も読めるようになっておかないと、知識的に苦労する
部分がありそうですね。


>>345
> 結局のとこDisposeしたらどうなるかって、そのクラスの実装次第だからなぁ
このあたりの、つきめれば・・・っていう部分が、オブジェクト指向の
限界に当たるところなのでしょうかね。
350デフォルトの名無しさん:2011/11/16(水) 09:33:15.34
すみません、追加で質問です。
私は日系BPの書籍は高価な上にすぐにバージョンが変わった書籍が出たり、
さらに、種類が多いので、全部よみきれていないんですよね。すみません。
VisualBasic.NET と ADO.NET は、読んだのですが、それ以外は読んでないです。

Dispose() に関するレスを多くいただきましたが、そのあたりのことが詳しく
解説されているものは、以下の書籍あたりを読むといいのでしょうか?

プログラミング .NET Framework 第3版
http://ec.nikkeibp.co.jp/item/books/P94160.html
351デフォルトの名無しさん:2011/11/16(水) 10:09:51.80
日経はTPP推進だから嫌い
352デフォルトの名無しさん:2011/11/16(水) 12:45:22.07
disposeしなくて良いって説明あるクラスでもdisposeしないと開放されないヤツもいるから注意。
353デフォルトの名無しさん:2011/11/16(水) 13:08:39.68
DataGridViewButtonColumnでセルにボタンを表示しているのですが
ボタンの幅がセルいっぱいまであります。
ボタンの幅を変更することはできないものでしょうか?
354デフォルトの名無しさん:2011/11/16(水) 19:57:54.21
VB.NETでPNGの圧縮率を指定する方法はありますでしょうか?
JPEGの品質指定はなんとか出来たのですが…
355デフォルトの名無しさん:2011/11/16(水) 20:04:27.12
PNGにそんなものあったっけ?w
可逆圧縮だから意味のない概念だと思うが
356デフォルトの名無しさん:2011/11/16(水) 20:14:28.46
可逆圧縮だから圧縮率に意味がないって意味がわからん
じゃあ、zipの圧縮率はなんなんだw
もちろん、pngにも圧縮率はある
まあ、圧縮率っつーか圧縮レベルだがな
.netに指定はないような気がするぜ
357デフォルトの名無しさん:2011/11/16(水) 20:26:21.10
サンプルなどでよく
Dispose()のあとにNothingしているのを見かけますが
Dispose()とNothingは対で実行しないと完全には開放されないのでしょうか
Dispose()だけでは不足ということになるのでしょうか
358デフォルトの名無しさん:2011/11/16(水) 21:36:49.35
Disposeしたからってそのインスタンスが消えてなくなるわけじゃない。参照をもってる限りそのインスタンスは生きたままだ
Disposeはあくまでもそのインスタンス(クラス)で使った(アンマネージド)リソースを解放するだけ
ただしDisposeしたあとそのインスタンスがどうなってるかは実装による。使えなくなってるかもしれん
使えなくなっても参照されていれば、そのインスタンスは使えない状態でメモリ上にいるまま
359デフォルトの名無しさん:2011/11/16(水) 22:54:08.86
Functionプロシージャを実行する時に
kekka = hogehoge(True)
とかやると思いますが、戻り値はいらないのでhogehoge = True みたいに
設定できる書き方があったら教えてほしいです
360デフォルトの名無しさん:2011/11/16(水) 23:01:50.74
結果がいらないなら何でfunction使うの?
361デフォルトの名無しさん:2011/11/16(水) 23:03:18.26
プロパティでも使っとけ
つか、.NETの話だよな?
362デフォルトの名無しさん:2011/11/16(水) 23:33:30.18
>>356
可逆圧縮なんだから、普通は(それが可能であるとしても)より小さい圧縮率を
選択する意味なんかないでしょ。頭大丈夫かよ。

動画のようにエンコード/デコードに馬鹿にならない計算力が必要だというのなら話は別だが。
363デフォルトの名無しさん:2011/11/16(水) 23:48:44.27
>>362
俺は>>356ではないが、現にPNGには圧縮レベルがあるんだが?
差が大きいか小さいかはともかく、圧縮率により圧縮時間に差が出るのは確かで
お前が意味がないと思うだけで意味がないと決めつけるなよ
しかもお前の理論だと、可逆圧縮でも(特定の条件が必要とはいえ)圧縮率に意味があるって理論だぞ
お前の方こそ頭大丈夫かよ?
364デフォルトの名無しさん:2011/11/16(水) 23:50:25.70
>>362
おまえこそ頭大丈夫か?
なぜzipやらrarはもちろんのこと
pngやtgaにまでわざわざ圧縮率を指定するオプションがあると思ってるんだ?
可逆圧縮だったらわざわざ小さい圧縮率を指定する必要がない?アホじゃないか
なんのために先人達は必死により高圧縮のフォーマットを生み出していったと思ってるんだ?
おまえの理屈だとrarも7zも生まれなかったことになるし
高圧縮率を売りにしてるフォーマットはなんなんだ?需要があるからだろ?
おまえが必要ない=万人が必要ないなんて思わない方がいい
365デフォルトの名無しさん:2011/11/16(水) 23:53:38.66
>>360-361
プロパティプロシージャというものがあるんですね
便利そうなので多用することにします
ありがと〜
366デフォルトの名無しさん:2011/11/16(水) 23:54:33.07
誰か俺に
可逆圧縮 → 小さい圧縮率を選択する意味がない
となる論理展開を説明してくれ
意味がわからん、マジでw
367デフォルトの名無しさん:2011/11/16(水) 23:59:09.71
つーかさ、普通に
圧縮後のサイズを小さくしたい→高圧縮を選択
圧縮・展開に時間をかけたくない→低圧縮を選択
の住み分けFAでしょ。その為のオプションだし
高圧縮の意味がないなんて結論には普通ならない

>>354
VB.NETにPNGの圧縮率指定はなかったと思う
368デフォルトの名無しさん:2011/11/16(水) 23:59:51.06
>>363
すぐ人をお前呼ばわりするのは馬鹿の特徴かね。
386の時代じゃあるまいし、静止画の圧縮ファイルの展開時間が
実際上問題になるケースなんてどれだけあるか。

まあ、無意味は言いすぎだった。


>>364
話が噛み合ってない。

>>366
同じデータならサイズが小さいことに越したことがないから。
まあ普通はね。
369デフォルトの名無しさん:2011/11/17(木) 00:03:52.88
なにが越したことはないからだよw
そりゃ自分の環境の話だろ
何を重要視するかによって越したことないものが
何かは人によって違うって
その為のオプション
自分がそうだから人がそうだと思わない方がいい
370デフォルトの名無しさん:2011/11/17(木) 00:05:46.08
>>369
OK。
では、同じ画像であえて低い圧縮率のPNGを選択する必要性がある
現実的な環境の例を挙げてみて下さい。

できないのなら謝れよ。
371デフォルトの名無しさん:2011/11/17(木) 00:08:56.50
傍から見てるだけだが小学生の言い合い見てーだなw
372デフォルトの名無しさん:2011/11/17(木) 00:10:15.32
>>370
意味わからん
pngの選択肢は圧縮率の高低だけなのか?
使用するソフト、配布、加工のし易さ etc
によっていくらでもかわってくるんだが
おまえの言ってることは、
なぜ圧縮率もたいしたことない上に色深度の制限があるtgaが
いまだに広くアニメーション業界で使われているか説明せよと言ってるのに等しい
謝れよとか小学生かよw
373デフォルトの名無しさん:2011/11/17(木) 00:11:32.89
>>362
意味がないのに圧縮率が選択できる設定があるのはなんで?
人によっては意味があるからでは?
374デフォルトの名無しさん:2011/11/17(木) 00:11:40.46
>>372
意味不明。
375デフォルトの名無しさん:2011/11/17(木) 00:12:38.46
>>370
で、キミは可逆圧縮画像ファイルに何のフォーマットを使ってるわけ?
376デフォルトの名無しさん:2011/11/17(木) 00:13:14.30
>>374
理解できる頭がないんなら別にいいよ
本来のスレ内容に戻そうか
377デフォルトの名無しさん:2011/11/17(木) 00:14:01.53
>>373
だからそれがあるなら具体的に教えて下さいって言ってるでしょ。
そんなものはない、って言っている人間に「ある」理由を尋ねられても困る。
大丈夫かよほんと
378デフォルトの名無しさん:2011/11/17(木) 00:15:40.31
>>377
だからなんで意味がないのに圧縮レベルの指定が出来るの?って聞いてんじゃんw
それを答えてからだろ
ってか、>>367が答えを言ってるわけだが
379デフォルトの名無しさん:2011/11/17(木) 00:16:14.10
自己主張しながらののしりあうなら鳥付けてやれよめんどくせぇ。初心者か
380デフォルトの名無しさん:2011/11/17(木) 00:16:58.32
>>377
圧縮レベル指定オプションをわざわざつけた
圧縮フォーマット開発者に聞いたら〜?
381354:2011/11/17(木) 00:22:19.64
私の質問で荒れてしまったようで、なんかすいません
結論としてはVB.NETにはPNGの圧縮率指定はないのですね
ちなみに私としては圧縮率の指定には意味があったつもりだったのですが…
これで質問はFIXしますので、以下この話題はご遠慮願います
382デフォルトの名無しさん:2011/11/17(木) 00:23:20.58
まあ、気にスンナ
383デフォルトの名無しさん:2011/11/17(木) 00:25:53.31
そんなことよりDisposeの話しようぜDispose
384デフォルトの名無しさん:2011/11/17(木) 00:47:04.42
ttp://dobon.net/vb/dotnet/system/explorecontextmenu.html
ここを参考にコンテキストメニューの追加は出来たのですが
複数のファイルを選択するとその数だけソフトが起動してしまいます
複数ファイルをまとめて渡すにはどうやったらいいのでしょうか?
385デフォルトの名無しさん:2011/11/17(木) 00:50:37.73
デス坊主の話ももう良いだろう
入門書か解説書かなんか読めと
386デフォルトの名無しさん:2011/11/17(木) 01:52:25.01
>>384
shellの方ではなくshellexを使うんだろうけど
具体的なVB.NET用のサンプルって見つからないな
387デフォルトの名無しさん:2011/11/17(木) 03:38:52.90
>>384
発想を変えたほうが簡単なんじゃないか
388デフォルトの名無しさん:2011/11/17(木) 04:56:56.99
可逆圧縮だと圧縮率を変える必要が無いんだったらそもそも圧縮する必要ないんじゃないのか?w
まぁ世の中には自分に必要の無いものは誰も必要としていないと思い込んでる人はいるからな
389デフォルトの名無しさん:2011/11/17(木) 07:16:29.75
javaならできるよ
390デフォルトの名無しさん:2011/11/17(木) 08:21:42.54
なにが?
391デフォルトの名無しさん:2011/11/17(木) 08:29:49.78
なんでも
392デフォルトの名無しさん:2011/11/17(木) 08:54:34.73
>>389
低圧縮だと速いとか?
393デフォルトの名無しさん:2011/11/17(木) 08:56:06.74
もういいじゃんw
394デフォルトの名無しさん:2011/11/17(木) 09:22:55.01
>>385
その入門書を具体的に紹介しろよ
395デフォルトの名無しさん:2011/11/17(木) 09:43:00.18
スレが伸びていると思ったらこれかw
自分が正しいと思ったら考えを改めない俺のオヤジのようだ
396デフォルトの名無しさん:2011/11/17(木) 09:56:00.68
わかったからぶり返すな
397デフォルトの名無しさん:2011/11/17(木) 10:12:08.76
>>384
ウインドウにD&Dする方法に変えるとか
根本的な解決にはなってないか
398デフォルトの名無しさん:2011/11/17(木) 11:32:21.62
>>357-358
すごく参考になりました。ありがとうございます。
あと、「参照をもってる限りそのインスタンスは生きたままだ」の部分を
簡単なプログラムでテストすることは出来ないのでしょうか?
ComboBoxのプログラム例の場合は、ComboBoxの候補が表示されなくなったのは、
「Disposeはあくまでもそのインスタンス(クラス)で使った(アンマネージド)
リソースを解放するだけ」の動作という解釈でよろしいのですよね?
399デフォルトの名無しさん:2011/11/17(木) 16:35:59.53
質問です、
外部ウィンドウ(Directx)上で時間を描画したいのですが
ウィンドウ上での描画が分りません。

フォーム上でのdirectxは描画出来るのですが・・・

400デフォルトの名無しさん:2011/11/17(木) 16:37:06.77
XNAで具ぐれ
401デフォルトの名無しさん:2011/11/17(木) 17:15:06.72
windows7の、アプリケーションごとの音量調整をvbからいじるって、できる?
402デフォルトの名無しさん:2011/11/17(木) 19:07:13.24
>>400
いや俺が知りたいのは、外部のウィンドウ上に文字を描画したいんだけど・・・
API探しても見つからないし・・・
403デフォルトの名無しさん:2011/11/17(木) 19:16:34.68
マジレスされてもな
404デフォルトの名無しさん:2011/11/17(木) 19:23:30.32
「外部ウィンドウ(DirectX)上」の意味が伝わっていないと思われ。
エスパーの出番だな。
405デフォルトの名無しさん:2011/11/17(木) 19:30:14.09
>>398
DataTableのDisposeなんてやったことないから、どんな状態になってるか解らんが
Public Class Form1
    Dim dt As DataTable
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        dt = New DataTable("TEST TABLE") : dt.Columns.Add("ID", GetType(Integer)) : dt.Columns.Add("NAME", GetType(String))
        dt.Rows.Add(New Object() {1, "aaa"}) : dt.Rows.Add(New Object() {2, "bbb"})
        ComboBox1.DataSource = dt : ComboBox1.ValueMember = "ID" : ComboBox1.DisplayMember = "NAME"
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        dt.Dispose()
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        MsgBox(dt.TableName)
        'ここから下の動作は不明
        dt.Rows.Add(New Object() {3, "ccc"}) : dt.Rows.Add(New Object() {4, "ddd"})
        dt.Reset() : dt.Columns.Add("ID", GetType(Integer)) : dt.Columns.Add("NAME", GetType(String))
        dt.Rows.Add(New Object() {5, "eee"}) : dt.Rows.Add(New Object() {6, "fff"})
    End Sub
End Class
ボタン1,2,3と順番に押す
Button3_Clickでボタン1で付けた名前(TEST TABLE)が表示される
つまりボタン2でDisposeされてもボタン3の段階でこのDataTableインスタンスは生きてる
こっから先は俺もよくわからんが、その下のコードがちゃんと動かない
DataTableがどんな状態なのかはよくわからん
406405:2011/11/17(木) 19:54:10.91
ちと追加でいろいろやってみたけど、DataTableをDisposeしてもバインドが切れるだけっぽいな
ボタン2を
        MsgBox(ComboBox1.DataSource Is Nothing)
        dt.Dispose()
        MsgBox(ComboBox1.DataSource Is Nothing)
にすればDispose前後で違う
もう1回DataSource周りの設定してやればそのまま表示された
この辺はデザイナ用のメソッドだったりするから、テストには向かないかもしれん
407デフォルトの名無しさん:2011/11/17(木) 20:57:31.94
>>404
例えば外部プログラムの描画がDirectXで描画されてて、
その外部プログラムのウィンドウ内(作業範囲)に文字を画面上に描画させたい。

ウィンドウハンドルで名前やプロセス系を取得して、そこから詰んでる
408デフォルトの名無しさん:2011/11/17(木) 21:01:01.11
DirectXプログラミングには精通してるの?
409デフォルトの名無しさん:2011/11/17(木) 21:28:14.06
射精なら毎日してるよ
410デフォルトの名無しさん:2011/11/17(木) 21:49:21.49
.NetFramework 1とか2とか3とかそれぞれ入れないとだから結局VBのdll時代と配布先側の手間は変わらないジャン
411デフォルトの名無しさん:2011/11/17(木) 22:27:09.37
Disposeの確認ならFileStreamあたりはどう?
412デフォルトの名無しさん:2011/11/17(木) 23:47:42.80
ImportRowでRowStateが引き継がれるんですが、どうしたらAddで追加できますか?
413デフォルトの名無しさん:2011/11/18(金) 00:13:44.84
>>398
アンマネージドの解放もするけど、基本的にはマネージリソースも含めオブジェクト自身を使用不可能にするものと思った方がいいかな。
廃棄後に再利用することを前提とするような場合はDispose()じゃなくてClose()とかそういう別のメソッドが用意されている事が多い。

いずれにせよ大抵の場合はDispose()後のオブジェクトの内部状態は
保証されないので、Dispose()後は即座にNothingを代入して無効化した方が
GC的な意味でもいいと思う。
414デフォルトの名無しさん:2011/11/18(金) 02:14:08.38
DirectX系の質問は、このスレで回答してくれないのね・・・
415デフォルトの名無しさん:2011/11/18(金) 07:12:23.91
いや、ここVB.NETのスレだし。
416デフォルトの名無しさん:2011/11/18(金) 07:36:27.53
こういうことがしたいってことかな
http://blog.livedoor.jp/unvirus/archives/1420353.html
417デフォルトの名無しさん:2011/11/18(金) 08:48:44.85
>>413
NothingはVB6から受け継がれたおまじないじゃないの?
418デフォルトの名無しさん:2011/11/18(金) 09:41:04.18
え?それならNothingは、VB2002あたりのバージョンでは存在しなかったのですか?
俺は詳しくは知らないが、2005以降でVB6特有の書き方を乗せていったと解釈している。
例えばmsgboxと書いても動くとか。
419デフォルトの名無しさん:2011/11/18(金) 09:53:58.57
DataGridViewでカラムヘッダーをクリックするとその列でソートされますが
ソートの処理は自分でやりたいのですが、そのイベントと昇順か降順か
だけを取得する方法ってないでしょうか?
420デフォルトの名無しさん:2011/11/18(金) 10:14:31.74
DataSource使ってるかどうかで方法が全然違う
421デフォルトの名無しさん:2011/11/18(金) 11:51:41.57
>>417
意味としては似てるんだけどちょっと違う。

VB6の場合はオブジェクトを参照カウントで管理していて、その参照カウントを減少させる手段がNothingの代入だった。
参照カウントが0になる(≒そのオブジェクトを参照している有効な変数がない)と、オブジェクトのデストラクタが即座に呼ばれて
オブジェクトはメモリ上からクリーンアップされるということになってた。

一方.NET以降はガベージコレクタがオブジェクトの寿命を管理していて、オブジェクトがメモリから破棄されるかどうかは
「GCが作動した時に」そのオブジェクトへの参照をGCが辿れるかどうかによって決まる。
ただ、アプリケーションはGC発生タイミングは基本的に制御できず、GC発生時に生存しているオブジェクトは
世代が上がってしまう(=クリーンアップ時のコストが上がる)わけで、そういう観点から行くと
そのオブジェクトを辿れない状態を早めに作ってやる(=Nothingを代入して参照を消してやる)方が
GCパフォーマンスとしては良くなる、ということになる。

まあ、とはいえGCはそんなに頻繁に起きるわけではないし、パフォーマンスつっても多分誤差程度だとは個人的にも思う。
なので、細かいオブジェクトにいちいちNothingを代入する必要はない。
ただ、大きめの領域をメソッド内で連続して確保・廃棄する場合なんかはある程度は貢献するという感じ。
コンストラクタから複数のオブジェクトのコンストラクタを呼ぶ場合とかね。

個人的にはどっちかというとDispose()したオブジェクトはもう使用しないのにプロパティやメソッドは参照出来てしまう
のが気持ち悪いので、「もうこれ以上アクセスしませんよ」と言うことを明示する意味でNothingを代入することのが多い。
メソッドの終端とかでローカル変数に代入したオブジェクトのDispose()を呼んだ場合なんかはいらないと思う。

長文スマソ
422デフォルトの名無しさん:2011/11/18(金) 12:05:58.57
>>416
そそ。コレコレ
423デフォルトの名無しさん:2011/11/18(金) 13:12:23.25
>>422
じゃあ俺には無理っす
424デフォルトの名無しさん:2011/11/18(金) 13:36:49.85
コード難読化で

NanDoku
MS公式以外でフリーで使える海外・国内難読化ソフトある?
425デフォルトの名無しさん:2011/11/18(金) 20:05:18.40
NothingをNだけで書けるようにするとして、
Dim N as integer=Nothing
Dim N as string=Nothig
どれが正しいんだ?
426デフォルトの名無しさん:2011/11/18(金) 20:11:28.29
日本語でおk
427デフォルトの名無しさん:2011/11/18(金) 22:35:43.61
#define N Nothing
428デフォルトの名無しさん:2011/11/19(土) 00:01:51.90
>>424
http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx
これとか。商用利用制限なし。

>>425
Dim N as Object = Nothing
Object型以外にするとその型との継承関係にある型にしか使えない。
Integerは値型なのでNothingに出来ない。0が入るだけ。
どっちにせよあんまお勧めしないけど。
429デフォルトの名無しさん:2011/11/19(土) 01:07:32.13
Dim N = Function() Nothing
バカ過ぎ
430デフォルトの名無しさん:2011/11/19(土) 01:32:37.37
Const N as Object = Nothing
431デフォルトの名無しさん:2011/11/19(土) 02:21:49.60
Dim N as Integer?
432デフォルトの名無しさん:2011/11/19(土) 05:50:11.44
DocumentSettingやProgramFileやWindowsなど
特殊なフォルダのパスを取得するにはどうすれば
433デフォルトの名無しさん:2011/11/19(土) 05:55:50.10
434デフォルトの名無しさん:2011/11/19(土) 06:37:58.32
なるほど
435デフォルトの名無しさん:2011/11/19(土) 15:03:58.07
言語はC#です
問題内容は以下の通りなのですが…。
http://salmon.axfc.net/uploader/Sc/l/5239965179/Sc_293584.jpeg
列数が可変の場合はどうすればいいのか困っています。
どうか教えてください。または参考になりそうなサイトをお願いします。
436デフォルトの名無しさん:2011/11/19(土) 16:56:14.39
消えてますよ
437435:2011/11/19(土) 17:04:50.65
うぉ 失礼しました こちらです
http://www.dotup.org/uploda/www.dotup.org2280140.jpg
438デフォルトの名無しさん:2011/11/19(土) 17:17:37.24
(煽りとかじゃなくて)一体何が聞きたいの?
DB操作の方法(SQL文とか)なの? C#で実現する方法なの?
それとも、DataTableやらを操作するプログラミングなの?
あと、仕様として、最後のテーブルはフィールド数は無限に
増える可能性があるとして考えないといけないものなの?
439デフォルトの名無しさん:2011/11/19(土) 18:20:07.38
SQLでやれっていう話だな
440デフォルトの名無しさん:2011/11/19(土) 18:49:29.27
>>439
437じゃないけど、こういう認識で合ってる?

.netでというのであれば、
n種類のDataTableをDataSetに入れてリレーション張って、
DataTableの列追加して、Expressionで参照テーブルの値を参照する。
nの範囲を制限出来るのであれば上記作業をデザイナ上で設定可能。
制限出来なければコード上で行う。

でも、SQL文の方が簡単。
441デフォルトの名無しさん:2011/11/19(土) 18:59:40.05
Windowsで最初から用意されているフォルダの絵のアイコンなどは
どのDLLをどのソフトで抽出すれば
442デフォルトの名無しさん:2011/11/19(土) 19:10:31.28
あれライセンスとか関係ない?
443デフォルトの名無しさん:2011/11/19(土) 19:59:49.73
shell32
444デフォルトの名無しさん:2011/11/19(土) 20:22:29.14
実行時に動的にOS付属のDLLから読み出す分には大丈夫だろうけど、
実際の所、Windowsアプリ用のアイコンとして流用する分には黙認ってところか。
445デフォルトの名無しさん:2011/11/19(土) 21:04:40.71
VS2005以降はOSのアイコンが一部付属するようにはなったけど、
それ以前から恐らく無断で使ってるフリーソフトは結構多かったね。
446デフォルトの名無しさん:2011/11/20(日) 05:42:51.72
猿でもわかるVB入門ってあったっけ?
447デフォルトの名無しさん:2011/11/20(日) 10:13:29.93
>>440
俺もおそらくそういう処理手順に成ると思う。
だけど、質問者がはっきりとものを言わないので、
どうしたらいいのかの段階で止まっている状況だと
思っている。
448デフォルトの名無しさん:2011/11/20(日) 15:21:53.74
アプリを完全に終了するには
Endの他に何がある?
449デフォルトの名無しさん:2011/11/20(日) 16:50:43.14
exit sub とか application.exit とか。
450デフォルトの名無しさん:2011/11/20(日) 18:51:00.91
Dim Dt As DataTable = New DataTable("DtFileList")
Dim Dt As New DataTable("DtFileList")
この2つの違いはなんだろうか・・・
451デフォルトの名無しさん:2011/11/20(日) 19:13:22.37
せっかくだからildasmで逆アセンブルしてみたらどうだ?
452デフォルトの名無しさん:2011/11/20(日) 19:19:48.64
なんだよ「なんだろうか・・・」って。
独り言なのか質問なのかはっきりしろ。
453450:2011/11/20(日) 19:37:01.60
たぶんDim Dt As New DataTable("DtFileList")
はDtがヴァリアントとかバリアントになっるんだろうね
454デフォルトの名無しさん:2011/11/20(日) 20:12:44.98
ただ単に省略してるだけで結果は同じだよ。
variant型になんぞならんよ。
455デフォルトの名無しさん:2011/11/20(日) 20:16:17.78
variant っていつの時代で止まってるんだよ
456デフォルトの名無しさん:2011/11/20(日) 20:22:23.68
違いなんかない
457デフォルトの名無しさん:2011/11/20(日) 20:25:21.89
Variantワラタw
458デフォルトの名無しさん:2011/11/20(日) 20:32:31.40
そのむかし
DEFINT A-Z
というオマジナイがあってだな
459デフォルトの名無しさん:2011/11/20(日) 20:33:19.56
間違いに気付けてよかったな
460デフォルトの名無しさん:2011/11/20(日) 20:39:43.72
VB6からの人は下の方が馴染みやすいのかもしれん
俺は下の書き方を使う
あと配列も
Dim arr as String()
ではなく
Dim arr() as String
と書く方がしっくりくるんだよね、なぜか
ま、どっちにしろ好みの問題か
461デフォルトの名無しさん:2011/11/20(日) 20:58:07.16
Dim arr() as String
こんな風に書くのは、「私は理解が怪しいです」って宣言しているようなもの。
決して好みの問題ではないな。
462デフォルトの名無しさん:2011/11/20(日) 20:59:53.83
VB4から移ったので一から覚えなおしですわ
463デフォルトの名無しさん:2011/11/20(日) 21:01:58.88
宣言可能なんだから理解が怪しいも糞もないと思うが
逆に理解して宣言してるヤツがどれほどいるのやら…
464デフォルトの名無しさん:2011/11/20(日) 21:04:02.54
普通に好みの問題だろw
465デフォルトの名無しさん:2011/11/20(日) 21:07:23.92
少なくともVariantはないわー
466デフォルトの名無しさん:2011/11/20(日) 21:09:34.38
>>461
なぜその書き方だと理解が怪しいのか、どう書くのが正しいのか、なぜそう書くべきなのか
これをちゃんと説明しないお前の意見の方が怪しいわ
467デフォルトの名無しさん:2011/11/20(日) 21:09:44.02
VB6から無くなったのって他に何があったっけ?
468デフォルトの名無しさん:2011/11/20(日) 21:10:15.98
currency
469デフォルトの名無しさん:2011/11/20(日) 21:11:28.34
まあ、自分と違うやり方の人間を認めれない人っているよね
470デフォルトの名無しさん:2011/11/20(日) 21:21:59.18
>>466
本気で言ってるのか。

Dim arr() as String
これはVB6ユーザー向けの糖衣構文みたいなもので変則的な書き方。

.NETではString()はStringとは独立した別の型。
asの後ろに書くのは型名なのだから、そこにStringなどと書くのは本来間違っている。

こんなものに何の違和感も感じない人は、恐らくプログラミング言語の構文を
ロジックで理解せずに呪文感覚で覚えているんだろう。
471デフォルトの名無しさん:2011/11/20(日) 21:24:04.60
>>470
それは理解した上で好みでarr()と宣言してるのだが?
472デフォルトの名無しさん:2011/11/20(日) 21:26:39.75
理解してたら好まないでしょ。
馬鹿じゃないの。
473デフォルトの名無しさん:2011/11/20(日) 21:28:39.64
ちなみに、JavaにもCプログラマ向けのまったく同じような問題があって、
こっちも一部で叩かれてる。
474デフォルトの名無しさん:2011/11/20(日) 21:29:04.09
理解してる=使わないとしか考えれない馬鹿なのか
よっぽど頭固いんだな
ラッパーとかも使用しない人間なんだろうな、きっと
475デフォルトの名無しさん:2011/11/20(日) 21:30:08.85
まーた、荒れんのかー
もうやめてくんないかな
476デフォルトの名無しさん:2011/11/20(日) 21:31:10.18
だね
477デフォルトの名無しさん:2011/11/20(日) 21:35:06.05
またこういう流れか…
もうこの話題終了でいいだろ
478デフォルトの名無しさん:2011/11/20(日) 21:35:17.44
>>475-476
荒れてるのは誰?
2chでは往々にしてそうだが、感情的に「荒れ」て喧嘩腰になってるのは馬鹿で無知の方。
そういうこと言ってるから、2chには段々馬鹿しか残らなくなる。
479デフォルトの名無しさん:2011/11/20(日) 21:36:17.02
なんだ、このキチガイは…
480デフォルトの名無しさん:2011/11/20(日) 21:49:00.45
波線がでなきゃなんでもいいんだよ!
481デフォルトの名無しさん:2011/11/20(日) 21:51:59.03
複数行の文字列を長さ順 -> アルファベット順に並び変えるにはどうしたらいいでしょう
Compareというのを使って長さ順だけやアルファベット順だけは出来たのですが
482デフォルトの名無しさん:2011/11/20(日) 22:25:29.22
MSDNライブラリのプログラミングガイドではこうだけどな。
> 1 次元配列変数を宣言するには、変数名の後に 1 組のかっこを追加します。
> Dim cargoWeights() As Double

>>481
行単位でバラいて配列に突っ込んだ後、
Array.Sortの引数にお好みの並び替え条件をデリゲートで渡してやれ。
483デフォルトの名無しさん:2011/11/20(日) 22:28:00.95
484デフォルトの名無しさん:2011/11/20(日) 22:35:39.23
ワラタw
485デフォルトの名無しさん:2011/11/20(日) 22:51:15.92
馬鹿っぽい発想だな。
まるで先生に言いつける小学生みたいだ。
486デフォルトの名無しさん:2011/11/20(日) 22:53:52.15
もうわかったからw
487デフォルトの名無しさん:2011/11/20(日) 23:00:44.43
VB.NETにおける、配列変数の宣言方法
配列変数 variablelist の変数が配列であることを指定するには、variablename の直後にかっこを指定します。配列に複数の次元がある場合は、次元の数を示すために、かっこの中にコンマを含める必要があります。
(http://msdn.microsoft.com/ja-jp/library/x397t1yt(v=VS.90).aspx)
これがVB.NETにおける正しい配列変数の宣言方法ですよ

Dim arr as String()
これは、arrという変数に、配列を定義してるのですよ

VB.NETでの配列はこれが同じとして扱われてるが、本来VB.NETでの配列=配列変数だから、MSDNなんかではちゃんと前者で宣言してるんだよ

みんなもちゃんと配列変数と配列を格納してる変数の区別をつけようね
488デフォルトの名無しさん:2011/11/20(日) 23:04:08.62
>>487
なんか語るに落ちてるね。

配列変数と配列を格納してる変数の区別?
やっぱりこういう風に意味不明な理解をしてるんだなw

あんたが言ってる「正しい」方法は、正しいんじゃなくてVB6ユーザー向けの方便。
489天才450:2011/11/20(日) 23:07:18.00
Dim Ary() As String
Ary()という配列はストロング

Dim Ary As String()
Aryは配列型ストロング
490デフォルトの名無しさん:2011/11/20(日) 23:09:54.30
ストロング....金剛
491デフォルトの名無しさん:2011/11/20(日) 23:11:45.81
ID出ないんだからコテつけてやれよウゼェ
492デフォルトの名無しさん:2011/11/20(日) 23:13:12.85
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /
493デフォルトの名無しさん:2011/11/20(日) 23:13:34.89
>>488
つかVB.NETという言語じゃそれが正しいんじゃないのか?
すくなくともMSDNでは配列の宣言方法は変数名の後ろにカッコだと書いてある
.NETの型がどうであろうと、それを使うための方法は言語によって決まってるんだが
それを方便だ間違いだというお前の根拠はなんだよ?
494デフォルトの名無しさん:2011/11/20(日) 23:19:20.56
>>493
変数名に括弧を付ける書き方では筋が通らないから。
Asの後ろに来るのは何ですか。

何度も同じことを言わせないで欲しいもんだ。

っていうか、こんなのばっかりだからVBerは馬鹿にされるんだな。
495デフォルトの名無しさん:2011/11/20(日) 23:23:15.74
お前が言ってるのは

Dim Ary As String()
が間違いじゃない理由だ

Dim Ary() As String
が間違ってる理由ではない
496デフォルトの名無しさん:2011/11/20(日) 23:24:03.92
491は退社で
497デフォルトの名無しさん:2011/11/20(日) 23:24:50.70
なんだ退社って?
498デフォルトの名無しさん:2011/11/20(日) 23:25:28.89
間違ってるなんていってないの。
それはVB6ユーザー向けの方便であって、正当な書き方ではないといってるの。

プログラミング言語できないだけじゃなくて日本語もダメなのかよまったく。
499デフォルトの名無しさん:2011/11/20(日) 23:28:20.03
ってか、よそでやってくんね?目障りだから
500デフォルトの名無しさん:2011/11/20(日) 23:59:16.63
http://go.microsoft.com/fwlink/?LinkId=188623
とりあえずVB10.0の言語仕様書でも読んで落ち着け。
VB6の仕様とか全く無関係の単なる言語仕様だから。
偶々片方の表記方法がVB6の仕様と一致しているだけ。
501デフォルトの名無しさん:2011/11/21(月) 00:05:07.00
そんな訳ないでしょ。
どんな幸せ回路だよ。
502デフォルトの名無しさん:2011/11/21(月) 00:16:48.98
>>498
だから、それが正当な書き方でないって根拠は?
MSDNの説明は正当な書き方じゃないのかね?
503デフォルトの名無しさん:2011/11/21(月) 00:22:00.61
>>502
同じことを何度も言わせるなよ鳥頭君。

Javaの影響を受けてるC#ですら
int hoge[];

という書き方を許さない理由を少しは考えて欲しいもんだな。
504デフォルトの名無しさん:2011/11/21(月) 00:30:50.82
よそいかないんならトリ付けてくんね?NG登録すっからさ
505デフォルトの名無しさん:2011/11/21(月) 00:37:16.81
>>503
C#はかなり限定的な状況でその書き方できるよ
C#の通常の配列やVB.NETで変数名の後に括弧書いたときとは全く違う意味だけどね
VB.NETみたいに見た目の雰囲気だけでなく本当に要素数分だけ変数を並べたのと同じになる
506デフォルトの名無しさん:2011/11/21(月) 00:41:31.50
>>504
> 感情的に「荒れ」て喧嘩腰になってるのは馬鹿で無知の方。
ということらしいぜ、誰とは言わないけど
507デフォルトの名無しさん:2011/11/21(月) 05:29:17.88
モジュールにパブリック変数書けば
ジャンクションプロシージャは一生使わなくてもいいんでしょ?
508デフォルトの名無しさん:2011/11/21(月) 07:15:12.49
お互い、相手が頭が悪いと決め付けて、部分的・限定的に物事を言っているから
話がかみあわなくなっているんじゃないの?
もう少し体系的に話をしたらどうよ?あと、人格否定だとか感情は無しで。
(俺は、細かい部分であってもきちんとした理解はそれなりに重要だと思っている)
509デフォルトの名無しさん:2011/11/21(月) 09:30:13.10
VBer同士で傷つけ合うのはやめろ!
二人ともこれでいいよな!?
()を変数に付けるのは言語仕様上認められた正当な書き方。
でもVB6との互換性の為に残されたと思われる為、採用する合理的理由は無い。
感覚的理由ならある。(好み)
510デフォルトの名無しさん:2011/11/21(月) 09:31:32.12
もうほっとけよ
511デフォルトの名無しさん:2011/11/21(月) 13:01:49.72
VB6との互換とかより、BASIC言語としての仕様だと思うんだが
他の言語がよければそっち使えよ
512デフォルトの名無しさん:2011/11/21(月) 13:33:30.60
>>511
C系でも元々は変数に括弧だぞ
C#にあるような本物の固定長バッファはともかく、
そうでないのは合理的な書き方に変わっていった
513デフォルトの名無しさん:2011/11/21(月) 13:42:16.09
DIM A%(10)

これ初期の BASIC の整数配列だから
A% のところが A As Integer に置き換わったとしたら

Dim A As Integer(10) が歴史的には正しいのか?
514デフォルトの名無しさん:2011/11/21(月) 13:56:40.11
歴史的な話をもってくるのであれば、質問スレ以外で話をするべきでは?
あくまでVB.NETの理解の範疇にしておこうよ。
515デフォルトの名無しさん:2011/11/21(月) 14:00:34.21
>>513
固定サイズバッファなら要素数も型の一部だから
変数名の直後に括弧で要素数書くよりもその方が合理的だと思う
VB.NETの配列型は要素数関係ないから、変数宣言の型に要素数書くのは不自然
理解して使うなら統一されてればなんでもいいと思うけど
516デフォルトの名無しさん:2011/11/21(月) 14:03:19.88
わかったからn As Integer()って書きたいんならお前のソースではそう書けよ。
俺は今後もn() As Integerって書くから。
As Newの引数なしコンストラクタ呼び出しと見た目が被って気持ち悪い。
517デフォルトの名無しさん:2011/11/21(月) 15:13:25.80
どーでもいい!
518デフォルトの名無しさん:2011/11/21(月) 15:19:15.21
互換性のために変数()が残ってるとばかり思ってたわ。
まぁどちらでも読めるからどーでもよろし。
519デフォルトの名無しさん:2011/11/21(月) 15:41:06.12
元はといえばどっちでもいい(というかどうでもいい)ことを
理解が怪しいだのなんだの言い出すからこんな流れになるんだよ
もうやめようぜ
520デフォルトの名無しさん:2011/11/21(月) 16:29:38.82
なるほど。
これまでの流れを読んだ後、>>519を読んだらすっきりと理解できた。
521デフォルトの名無しさん:2011/11/21(月) 19:40:30.71
>>515
意味不明。
理解して使うなら、っていう台詞を全然理解できてない人間が言うのはどうなの。

>>516
2003以降、
dim hoge as New Hoge()
は警告が出るはず。
少なくともIDEを使う限り書けない。
522デフォルトの名無しさん:2011/11/21(月) 19:49:37.16
初歩的な質問ですがお願いします
ID、名前、データ1、データ2(非表示)のフィールドのあるDataGridViewの特定のレコードを変更しようとしています
非表示フィールドもあるのでDataGridViewではなくDataSorceの方で変更したいのですが
DataTable.Row(2)("名前")="Hoge"
などのようにレコード番号がわかれば良いのですが簡単にレコード番号を取得する方法はありませんか?
今の所このDataGridViewには最大でも60レコードぐらいしか扱わないので
For〜Nextで回して取得しても良いのですが
今後大きなテーブルで同じ状況になった時はさすがに回してられないので何か良い方法はないでしょうか?
IndexOfみたいなメソッドがあれば良いのですが見つけられませんでした
523デフォルトの名無しさん:2011/11/21(月) 19:59:46.36
>>521
お前の言うIDEって具体的に何よ?
俺のVisual Studio 2008 では Dim hoge As New Hoge() はエラーも警告も出ないようだが?
524デフォルトの名無しさん:2011/11/21(月) 20:04:25.50
特定のレコードを説明してくんないとわかんないけど、
DataTable.Select("名前='Hoge'")
みたいに出来たっけ?
525デフォルトの名無しさん:2011/11/21(月) 20:06:20.30
該当のDataGridViewRowのDataBoundItemをDataRowViewにキャストする
526デフォルトの名無しさん:2011/11/21(月) 20:22:36.70
>>523
いきなり人をお前呼ばわりするの止めてくれない?
どういう教育受けてんだよ。

たしかに警告は俺の勘違いだったみたい。

IDEによる自動修正は、2003の時に行われた修正なのは間違いないんだが、
確かに2010でも修正されないようなので、再び仕様変更されたのかな。
http://web.archive.org/web/20030905124344/http://support.microsoft.com/default.aspx?scid=kb;ja;828190

別に負け惜しみでいう訳じゃないけど、引数なしコンストラクタ呼び出しの型名の後の
括弧は、C#ならつけないと不自然だがVBの場合はむしろ付ける必然性がないように思う。

上の記憶があったせいもあるけど、俺は普段付けない。
527デフォルトの名無しさん:2011/11/21(月) 20:29:29.63
なんだまだコテつけてないのか
528デフォルトの名無しさん:2011/11/21(月) 20:31:51.61
でもいきなり人を馬鹿呼ばわりする不思議
529デフォルトの名無しさん:2011/11/21(月) 20:39:31.93
>>526
2ちゃんねるは初めてですか?
530デフォルトの名無しさん:2011/11/21(月) 20:39:57.79
フォームにAxWebBrowserを配置してニコニコ動画を表示しているのですが
時々HDDが動きまくってデバッグの終了や中断やタスクマネージャーも
まともに表示、操作出来ない状態になるのですが何故でしょうか
ページを表示した以降は特に何もしていない状態のはずなのですが
極まれにそうなります。
531デフォルトの名無しさん:2011/11/21(月) 20:43:29.22
あれはIEそのものだからIEでも異常終了するんじゃないかなぁ
532デフォルトの名無しさん:2011/11/21(月) 20:46:31.53
>>524-525
今出先で試せませんが帰ってから試してみたいと思います
アドバイスありがとうございました
533デフォルトの名無しさん:2011/11/21(月) 21:23:01.06
>>528
ま、俺様コーディング規約を人に押し付ける人種だしね
534デフォルトの名無しさん:2011/11/21(月) 21:23:31.60
>>526
そうか。まあ付けなきゃいいんじゃない?
俺は今後も付けるから。
引数なしコンストラクタと引数ありコンストラクタで括弧の付け方が統一されてないと気持ち悪い。
535デフォルトの名無しさん:2011/11/21(月) 21:24:07.36
どーでもいいことでスレ伸ばすなクズ野郎!
536デフォルトの名無しさん:2011/11/21(月) 21:24:55.05
537デフォルトの名無しさん:2011/11/21(月) 21:36:49.98
538デフォルトの名無しさん:2011/11/21(月) 21:45:25.64
>>534
VBはC#のようにメソッドを()で表現して区別する文化じゃないから、
必用もないのに()を付ける意味は何もないんだけどね。

これで>>460的な意見の人の考え方が少し理解できたよ。
恐らくこういう人は、意味論的に一貫しているかどうかより、
形式的な統一性にこだわるタイプなんだな。

違ったら悪いけど文系出身者かな?


蒸し返して悪いが、それで言えば

Function Hoge(value() as Integer) as Interger()
  ...
End Function

は形式的にすら一貫してないなw
539デフォルトの名無しさん:2011/11/21(月) 21:47:48.32
なんだこいつ
540デフォルトの名無しさん:2011/11/21(月) 21:50:10.25
勝手に人をタイプ分類しといて勝手に一貫してないとか…
541デフォルトの名無しさん:2011/11/21(月) 21:53:34.44
納得したんなら
あとは勝手にブログかなんかで一人でやってほしいんだがな
542デフォルトの名無しさん:2011/11/21(月) 21:58:56.45
構うんじゃねえ!
おめーらも巻き込まれっぞ!
543デフォルトの名無しさん:2011/11/22(火) 01:57:59.19
よしおまえらまたVariantんとこまでもどって議論しろ
544デフォルトの名無しさん:2011/11/22(火) 02:13:23.28
下記のようなジェネリック型を.NET Framework2.0プロジェクト上で定義しようとしているのですが

Public Structure Parameter(Of T As Structure)
Private Value As T

Public Overloads Shared Operator +(ByVal a1 As Parameter(Of T), ByVal a2 As T)
a1.Value += a2 ' エラー:演算子 '+' は、型 'T' および 'T' に対して定義されていません。

End Operator
End Structure

型Tに+演算子を実装している保障がないためエラーになるというのは理解できます。
組み込みの数値型(Integer, Singleなど)だけを扱えれば良いので、Tに数値型だけを受け入れるような型制約
あるいは特定の演算子をオーバーロードしているクラスのみを受け入れるといった型制約を設ける事が出来れば
上手く行くのではないかと思うんですが、MSDN等を調べてみた限りそういう方法が見つけられませんでした。

どなたか方法をご存知の方いらっしゃいましたら、よろしくお願いします。
545デフォルトの名無しさん:2011/11/22(火) 02:17:40.27
不可能
どうしてもというなら遅延バインディングするしかない
546デフォルトの名無しさん:2011/11/22(火) 02:20:03.36
>>545
なるほど、無理だとわかってすっきりしました。
ありがとうございました。
547デフォルトの名無しさん:2011/11/22(火) 02:21:40.13
自宅でパソコンに向かってるとタバコばっかりすcっちゃうよな?
548デフォルトの名無しさん:2011/11/22(火) 02:31:03.02
エロ画像.png

@エロ画像A.Bpng
とすると
Bは拡張子ってゆんだけど@とAはなんてーの?
549デフォルトの名無しさん:2011/11/22(火) 02:37:35.27
ファイル名
ドット(ピリオド)
拡張子

ドットが拡張子に属する解釈もある
550548:2011/11/22(火) 02:41:58.09
変数の定義で
Dim Kacuchoshi As Stringはいいとして、
Dim FileName As Stringやっちゃうと
FileNameが
C:\EroCG.pngなのかEroCG.pngなのかEroCGなのか自分でわかんなくなっちゃうから
EroCGという文字列を扱うときにわかりやすい変数姪を付けたいわけ
551デフォルトの名無しさん:2011/11/22(火) 02:45:23.68
拡張子を含むものも含まないものもファイル名と呼ばれる
でも含まないものはベース名とも呼ばれる
552デフォルトの名無しさん:2011/11/22(火) 03:18:36.09
>>550
C:\EroCG.png フルパス名
EroCG.png ファイル名
EroCG ベース(ファイル)名
って感じじゃないかと
553デフォルトの名無しさん:2011/11/22(火) 08:23:26.22
ファイル名やフルパス名など、それらを取得する時に使用するメソッド名を
参考に変数名をつければいいんじゃないの?
554デフォルトの名無しさん:2011/11/22(火) 09:29:50.93
例えば、以下のサイトで書かれているサンプルをそのまま使うとかすればいいよな。
質問者は一体どう勉強していて、迷っているんだ?
取り扱っているファイルがeroとかばっかりのようだし

http://jeanne.wankuma.com/tips/vb.net/path/getfilenamewithoutextension.html
' 拡張子を含まないファイル名を取得する
Dim stBaseName As String = System.IO.Path.GetFileNameWithoutExtension("C:\Hoge.txt")
555デフォルトの名無しさん:2011/11/22(火) 11:36:17.40
ネトウヨの大半は省庁の役人だぞ。
ただし、街宣ウヨは半島人な。
556デフォルトの名無しさん:2011/11/22(火) 17:20:08.18
         ((⌒⌒))    ) このチョッパリ     (
     ファビョ━ l|l l|l ━ン! )     ネトウヨが!  (
        | ヽ、  .| ヽ、  )               ( 
        /  ヽ─┴ ヽ   )/⌒Y⌒Y⌒Y⌒Y⌒Y⌒丶
 ミ ミ ミ /!||!(゜\'iii'/゜)ヽ    ミ ミ ミ      .______
/⌒)⌒)⌒)ノ( "","ニ..,ニヽ"v\    /⌒)⌒)⌒) .{{ |   |     丶}}
| / / / .⌒\/ {y~ω~Y  ,/  (⌒)/ / / //    |   |  \__\____
| :::::::::::(⌒)>.  i |⌒'i⌒r| く    ゝ  :::::::::::/   {{│   |   |  |     | }}
|     ノ   ! .|k.;:;:;!;;;r| ! \  /  )  /      |   |   |  |寒 村 |
ヽ    /    ヽ.ニニニニ>  ヽ /    /    .{{ |   |   |  |iiiiiiiiiiiiiiiiii| }}
 |    |   l||l 从人 l||l      l||l 从人 l||l .     |   |   |__|____|
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    .{{.|__|_/    /  )) }}
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))  〔 ̄ ̄! ̄ ̄ ̄ ̄ ̄| ((
 ̄ ̄ ̄ ̄ ̄⌒Y⌒Y⌒Y⌒Y⌒ ̄ ̄⌒Y⌒Y⌒Y⌒ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            バン!  バン!
557のぞみ ◆fv9SHj5ibk :2011/11/22(火) 19:18:50.05
質問です。アプリケーションを起動してからの時間をツールの中に表示させる方法
ってどうやるんですか?
558デフォルトの名無しさん:2011/11/22(火) 19:36:50.91
ero.buruma.panty.png
みたいにピリオドいっぱいのファイル名にそのメソッドつかうとパソコン暴走しそうだがどぅなんだ
559デフォルトの名無しさん:2011/11/22(火) 19:54:14.16
ero.buruma.pantyが返ってくる
560デフォルトの名無しさん:2011/11/22(火) 21:14:54.65
dim y as integer
for i As integer = 0 to 10
dim x as integer
x+=1
y = x
next

msgbox(y)


この結果が、1だと思ってた俺はヤバいですか?
561のぞみ ◆fv9SHj5ibk :2011/11/22(火) 22:15:11.61
アプリケーション起動時からの経過時間をラベルに表示するのってどうやるんですか?
562デフォルトの名無しさん:2011/11/22(火) 22:40:15.21
1.アプリケーションが開始したら時刻を記録する
2.表示したいときに、1で記録した時刻から現在時刻までの時間を計算する
3.2で計算した時刻をラベルに設定する
563デフォルトの名無しさん:2011/11/22(火) 22:41:44.60
3の時刻は時間に訂正で

つかVB.NET全く関係ない説明になっとるな
564デフォルトの名無しさん:2011/11/23(水) 07:09:22.03
振込み

振込
を使い分けるのはどんな時?
565デフォルトの名無しさん:2011/11/23(水) 10:20:09.97
>>560
気持ちは良くわかる。
C言語とかと同じような考え方で見ると、For-Next間がブロックとして、
xがループ毎に初期化されるように見えるんだよな。
実際には、スコープがFor内になっているだけで、
初期化のタイミングはメソッドに入った時点だったりするし。
Dimが寿命を制限しない仕様は、他言語から入る時には結構な罠だと思う。
566デフォルトの名無しさん:2011/11/23(水) 10:25:54.25
>>560

配列つかうと微妙にVB6と非互換があるよね。
' VB6 
Dim i As Integer, j As Integer    
For i = 0 To 9 
  Dim t(9) As Integer 
  t(i) = i 
  For j = 0 To 9: Debug.Print t(j);: Next: Debug.Print 
Next 

' VB.NET 
Dim i, j As Integer 
For i = 0 To 9 
  Dim t(9) As Integer 
  t(i) = i 
  For j = 0 To 9: Console.Write(t(j)): Next: Console.WriteLine() 
Next
567のぞみ ◆fv9SHj5ibk :2011/11/23(水) 11:25:30.02
お返事ありがとうございます。 アプリケーションが開始したら時刻を記録する
これをやりたいのですがどうソースを書けばいいのかわからなくて困ってます。
568ビートたけし:2011/11/23(水) 13:20:05.60
他のSQLの実行文の後に、Datagridに別のテーブルのデータをFill
する文がある場合、同時実行違反が生じることがあります。

他のSQL文実行後、暫く待つとDatagridに別のテーブルのデータをFill
しても問題ありません。

このような状況の時、現在SQL文が実行中であることをキャッチして、
後の処理を待たせる方法はありますか?簡単に関数化して使おうと
考えています。
569デフォルトの名無しさん:2011/11/23(水) 13:23:41.67
ユーザーコントロールをDLL参照からプロジェクト参照にしたら糞重くなったんだけど、そういうもん?
570デフォルトの名無しさん:2011/11/23(水) 13:32:47.87
>>568
それはVB.NETとかFillの動作仕様とかの話というよりも、
DBエンジンの仕様とかSQLはどんな文を書いているのかという
話になると思う。
おそらくDataAdapterを使って自動生成されたSQL文を使ってupdate
しているのだと思うけど、そうではなくて、自作関数で生成した
UPDATEのSQL文をExecuteNonQueryするという選択肢は
どう考えているのか、とかそういう設計的な話をしないと
進まないと思う。
571デフォルトの名無しさん:2011/11/23(水) 13:35:25.69
>>561>>567
質問文そのものが抽象的過ぎて答えようが無いからレスがつかないのだと
思う。例えば、時刻を取得する関数が知りたいのか、ラベルのどのプロパティを
触る話なのかが分からないのか、など、そういう事を書くべきだと思う。
「こういうアプリを作りたい」という話だけで終わりだと、「いくらでも
方法はある。どういう方法を取るかはその人の考え方次第」という
回答になってしまう。
572デフォルトの名無しさん:2011/11/23(水) 13:36:32.99
>>569
環境や操作した内容を詳しく書くと、再現性のあるものかどうかが
判別できると思うよ。
VB.NET 2005 だとどうなのかとか、そういうの。
573ビートたけし:2011/11/23(水) 13:42:03.87
>>570
以下に現在の環境を記します
■使用しているDB : Access2007 accdb形式

■SQL文の発行と実行
'カレントフォルダのbase.accdbに接続する
Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _
"provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & apppath & "\base.accdb;")
Dim SQLCm As OleDb.OleDbCommand = cn.CreateCommand

      'SQL文の組み立てと実行(selectptnはID)
SQL = "DELETE * FROM asset WHERE patternid=" & selectptn
SQLCm.CommandText = SQL
cn.Open()
SQLCm.ExecuteNonQuery()

■この後実行するFillメソッド
Me.TableAdapterManager.UpdateAll(Me.Baseset)

このあと実行するFillメソッドの前にmessagebox.showが1つあるのですが、出て直ぐ押す
と同時実行違反になり、数秒待ってから押すと問題なく終了するという具合です。

SQL文の実行が終わるのを待ってから、Fillメソッドを実行するようなことができたら良いの
ですが(Do While 文をつかった何もしないループにエラートラップをまぜたものを使ってみた
のですが、いまいちうまくいかなくて)
574のぞみ ◆fv9SHj5ibk :2011/11/23(水) 14:01:08.05
数秒たってから、処理を始める、ふうにしたいんですけど、どうすればいいですか?
575デフォルトの名無しさん:2011/11/23(水) 14:31:13.98
>>574
ヒント:スプラッシュウィンドウ
576デフォルトの名無しさん:2011/11/23(水) 16:34:24.11
>>573
ExecuteNonQueryは非同期実行じゃないから、普通はSQLの実行が終わるまで帰ってこないはず
同時実行違反の詳細と、フレームワーク(VB)のバージョンは?
577デフォルトの名無しさん:2011/11/23(水) 19:46:05.85
578デフォルトの名無しさん:2011/11/23(水) 19:49:25.78
目が疲れたらどーすれば
579デフォルトの名無しさん:2011/11/23(水) 22:21:31.34
>>569
プロジェクト参照ってそういうもんだよ。
ドットネットフレームワーク自体がDLL参照な理由でもある。
580デフォルトの名無しさん:2011/11/23(水) 22:40:39.12
>>579
出鱈目言うなよ。
そんな訳ないでしょ。
581デフォルトの名無しさん:2011/11/23(水) 22:40:57.18
>>579
出鱈目言うなよ。
そんな訳ないでしょ。
582デフォルトの名無しさん:2011/11/23(水) 23:31:28.10
参照先のプロジェクトのDLLをコピーするかどうかの設定があった気が
583579:2011/11/24(木) 08:54:40.40
ドットネットフレームワーク自体が、プロジェクト参照だったら、ビルド速度が非現実的なスピードになるってことも理解できないのか…
584デフォルトの名無しさん:2011/11/24(木) 15:20:35.66
またなにやら始まるのか?
585のぞみ ◆fv9SHj5ibk :2011/11/24(木) 15:24:37.19
またまた質問なんですけれども ちぇっくが入った時のみプログラムを実行
したいんですよ チェックを外した時にもプログラムが実行しちゃうんですが
どうソースを書けばいいのかわかりません。
おしえていただけますか?
586デフォルトの名無しさん:2011/11/24(木) 16:34:27.47
順番にかんがえようね
1.じょうけんぶんき(If)のつかいかたをべんきょうする
2.ちぇっくぼっくすがちぇっくされてるかどうかしるほうほうをしらべる
587デフォルトの名無しさん:2011/11/24(木) 17:15:15.16
ようわからんが

If CheckBox1.Value = True Then
[プログラム処理]
Else
[終了処理]
End If

こんでいいじゃね?w
588のぞみ ◆fv9SHj5ibk :2011/11/24(木) 17:53:55.44
>>587 そのプログラム処理は何を入れたらいいんでしょうか
終了処理も何を入れたらいいんでしょうかw
589デフォルトの名無しさん:2011/11/24(木) 18:18:27.97
[プログラム処理] あんたが実行したいプログラム
[終了処理] MsgBox("ggrks")
こんなもんでしょ
590デフォルトの名無しさん:2011/11/24(木) 19:43:56.97
>>588
宿題スレでも行って来いよ
591デフォルトの名無しさん:2011/11/24(木) 20:46:03.13
フォームを最小化してある状態でタイマーで一番手前でアクティブな状態で表示したいのですが
Me.Activate()やMe.BringToFront()では出てこないのですが
どうやってやれば良いでしょうか

あと下のAPIを試しましたが駄目でした。
SetWindowPos
BringWindowToTop
SetForegroundWindow
SetActiveWindow

それともやりかたが悪いだけで上の中に正解がありますか?
592デフォルトの名無しさん:2011/11/24(木) 20:49:35.62
最小化を解除してないんじゃない?
593デフォルトの名無しさん:2011/11/24(木) 20:57:54.43
Me.WindowState = FormWindowState.Normal
でできました。
ありがとう
594デフォルトの名無しさん:2011/11/24(木) 21:12:11.69
Taskバー点滅しない?
アクティブなプロセスじゃないといけなかったような…
595ビートたけし:2011/11/24(木) 21:12:28.70
>>576
なるほど 最後のTableadapter.updateallあたりでエラーなのかなぁ・・・

ちなみにフレームワークは4.0で、同時実行違反の詳細は

Me.TableAdapterManager.UpdateAll(Me.Baseset) でエラーが表示され、

同時実行違反 : DeleteCommand によって、処理予定の 1 レコードのうち 0 件が処理されました。
というエラーが表示されます。

エラータイトルは、DBConcurrencyExceptionとなります。


※現在は苦し紛れのルーチンで、try catchでこの部分だけをサブルーチンにして、
本ルーチンでは、あるフラグが立つまで、延々とそのサブルーチンをcallするという手をつかって
軽減してますが、正直、データ量が増えたら再発しそうで怖いです。
596ビートたけし:2011/11/24(木) 21:13:48.13
>>576
ちなみに、エラーの詳細部分をスクショとって見ました。

http://www.rupan.net/uploader/download/1322136805.png
597デフォルトの名無しさん:2011/11/24(木) 21:18:29.11
>>594
APIとかいろいろ組み合わせたり試行錯誤してるときにタスクバーの点滅になってけど
今は正常に前面+アクティブになってます。
いちおう
Me.WindowState = FormWindowState.Normal
Me.Activate()
Me.Refresh
と3つ書いておきました。
598デフォルトの名無しさん:2011/11/25(金) 00:49:44.12
>>595
TableAdapterで更新しようとしてるデータセット(の元テーブル)のデータを
ExecuteNonQueryで直接削除してると見た
TableAdapterが行を削除しようとしてすでにDBから行がなくなってるからエラーが出てる
TableAdapterかExecuteNonQueryのどっちかだけでDB更新しろ
599デフォルトの名無しさん:2011/11/25(金) 02:28:58.47
あーあ

石原幹事長、宗教法人に「会費」=自民支部から2年36万円―「適正に処理し報告」
ttp://news.nifty.com/cs/headline/detail/jiji-24X716/1.htm
600デフォルトの名無しさん:2011/11/25(金) 07:38:54.73
TableAdapterとかDataAdapterは、データ参照にのみ使うものであって、
更新に使うものではない、という考えが良いと思うけどな。
ま、もともと更新機能はあるからこの考え方は強要はしないけど。
601デフォルトの名無しさん:2011/11/25(金) 10:21:00.53
>>598
なるほど。

随所随所でこのエラーが似たような場面で出るので、ちょっとやってみます。
602デフォルトの名無しさん:2011/11/25(金) 13:53:34.02
参考として。向こうの板は書き込み数が少ないので。
ADO.NETの質問・雑談スレ2(データベース板)
http://hibari.2ch.net/test/read.cgi/db/1234077152/l50
603デフォルトの名無しさん:2011/11/25(金) 15:06:53.86
テーブルアダプターとかマジでいらない子。
更新系はエクスキュートノンクエリだけあれば十分だよ。
604デフォルトの名無しさん:2011/11/25(金) 17:18:36.23
型指定されたDataSetも要らないだろ。
GUIになれきっているのであれば、いいのかもしれないが。
でも、それだけしか出来ないと他の場合に通用しないだとか、
それ特有の概念をイメージしなおさないといけないとかあるのが
逆に面倒に感じる。
605デフォルトの名無しさん:2011/11/25(金) 19:50:11.86
>>604
型付データセットはクリレポ時に必要。
606デフォルトの名無しさん:2011/11/25(金) 20:53:01.59
SendKeys.SendWait("ベべ")
ってやると平仮名のべが出ないのですが
べは特殊な扱いでしょうか?
どうやったら出るか教えていただきたいです。
文字コードでもダメみたいです。
607デフォルトの名無しさん:2011/11/26(土) 01:15:03.89
SendKeysはあくまでキーストロークを送信するものだからなぁ
一般的なキーボードにべのキーはないからダメなんじゃないかな
608デフォルトの名無しさん:2011/11/26(土) 03:23:54.38
普通にできるが?
609デフォルトの名無しさん:2011/11/26(土) 07:26:45.24
>>605
逆に言うと、くれりぽ使わないのであれば、不要って事でおk?
610605:2011/11/26(土) 08:53:57.08
OK
611デフォルトの名無しさん:2011/11/26(土) 15:30:50.08
>>607
他の文字は送れるのに平仮名のべだけだめなんです

>>608
平仮名のべがでますか?

キーストロークということなのでクリップボードに文字列をセットして
CTRL+Vを送っても平仮名のべだけ消えてしまいます・・・
612デフォルトの名無しさん:2011/11/26(土) 16:07:06.41
SendKeysとは関係ない問題だろ?
613デフォルトの名無しさん:2011/11/26(土) 20:08:39.42
>>611
食い下がるかw
平仮名のべだけ例外ですなんて罠仕様がひっそりと存在していると言いたいの?
その時点で有り得ないと思わない?
他のPCで確認した?
OS再インストールしてみた?
614デフォルトの名無しさん:2011/11/26(土) 20:17:33.67
一応可能性的な部分を言ってみるてすと。
コンパネで言語の設定が海外になってたりすると、
日本語の表記や処理がおかしくなる場合がある。
615デフォルトの名無しさん:2011/11/26(土) 22:49:17.02
>>614
ありがとー
そういうところは全然考えてみませんでしたので確認してみます
バグったらOSインストールし直してくださいなんて説明書に書けないですもんね原因を探さないと^^;
616デフォルトの名無しさん:2011/11/26(土) 23:52:05.96
>>611
そもそもSendKeyとか受け取ったアプリに依存しまくるわけだが
罠があるとすれば受け取った方のプログラムだな
普通にキーボードからやってちゃんと動いてるのか?
617デフォルトの名無しさん:2011/11/27(日) 19:47:48.92
If Folder.Exist("C:\") Then
をやろうとしてるのに
Folder.
というのがVisualStudioのテキストエディター画面で入力できないたすけて
618デフォルトの名無しさん:2011/11/27(日) 20:05:59.05
え?
619デフォルトの名無しさん:2011/11/27(日) 20:07:36.33
Folderまで入力したところで、一旦Escを押してIntelliSenseを消せば
ピリオド以降も入力できるよ。
620デフォルトの名無しさん:2011/11/27(日) 22:00:28.07
' Make the ID column the primary key column.
Dim PrimaryKeyColumns(0) As DataColumn
プライマリーの意味は?
621デフォルトの名無しさん:2011/11/27(日) 22:13:18.49
ggrks
622デフォルトの名無しさん:2011/11/27(日) 22:23:11.79
社長タイプだから絶対自分では調べないよ〜ん
623デフォルトの名無しさん:2011/11/27(日) 23:44:07.54
シャチョサーン、プログラムスルカ。シャチョサーンタイヘーンネ
PrimaryKeyは主キーです。つまりPrimaryの意味はメインです
624デフォルトの名無しさん:2011/11/28(月) 00:41:11.31
自分が命名したものも含めて、数多くのクラスから、目的のものを
探す方法はみんなどうしてる?
大体記憶に残っているものでも、単語とかが微妙に違ってたりしてて、
なかなか見当たらない事があると、イライラするw
目的別に備忘録作って探すとか、ggrとかそういう方法で対応するしか
ないのかな?それとも、覚えるように努力するとかかな?
625デフォルトの名無しさん:2011/11/28(月) 06:09:28.69
MSDNを否定してまで自説を演説してやまないキチガイが現れてから、スレの流れがおかしくなったな
626デフォルトの名無しさん:2011/11/28(月) 06:53:25.83
primaryとuniqの違いを述べよ
627デフォルトの名無しさん:2011/11/28(月) 06:59:52.80
MSDNの機械翻訳ドキュメントなんて、所詮はテストされてないソースコードと同じだよ。
628デフォルトの名無しさん:2011/11/28(月) 07:54:42.60
MSDNって使い易いか?
629デフォルトの名無しさん:2011/11/28(月) 10:29:24.75
開発者向けのリファレンスとしては類を見ないほど質量ともに優れてる
officeじゃないんだからお客様気分は捨てなさい
630デフォルトの名無しさん:2011/11/28(月) 12:48:29.71
MSDNが優れているのは分かるが、その意見は、いつも抽象論で
終わっているようなところがある。だからいまいち実感がつかめなくて
「MSDN万能主義をうたっているだけだな」くらいにしか感じ取れないのだが。
例えば、類を見ないほど質量とも優れているのなら、Tips系のサイトが
出来たり流行ったりしないわけで。
http://dobon.net/vb/
631デフォルトの名無しさん:2011/11/28(月) 12:54:12.82
グローバル視点の品質でみれば英語版は優れているのかもな。
日本人にとっては、句読点の付け方ひとつ間違っていても駄文なわけで、優れているって感じはまったく受けないけどね。
632デフォルトの名無しさん:2011/11/28(月) 12:54:54.03
他の言語とかやればわかるよ
MSじゃなきゃメンバの解説なんてsummary1、2行で終わり
633デフォルトの名無しさん:2011/11/28(月) 14:32:07.53
他の言語や開発環境とくらべると、圧倒的に質、量ともに上
ただし、それで必要十分かと言われると微妙
日本語にローカライズされている範囲で言えばまったく不十分

まあそんな感じ
634デフォルトの名無しさん:2011/11/28(月) 16:27:42.05
英語だと圧倒的という感じのコメントが多いね。
それだと、入門の書籍や、日経の書籍、Tips系のサイトのような
情報も網羅しているという解釈になるのでしょうか?
それとも、それらは目的を考えると、別だととらえるべきいう事になるのかな?
635デフォルトの名無しさん:2011/11/28(月) 16:37:55.85
日本語でもそんなに言うほど変わらん
MSDNは辞書としては完璧だけど目的別ではないから
どこに何があるか見当が付いてないと難しい
慣れてわかってきたらtipsなんて必要なくなる
636デフォルトの名無しさん:2011/11/28(月) 17:27:54.20
Tips系のサイトってどうやって作られているんだろうか?
>>634にあるように、MSDNを必死に検索して原稿を書いているのだろうか?
それとも、海外のコミュニティーで出てきている情報を翻訳する作業で
作っているのだろうか?
以前から感じていた疑問。
637デフォルトの名無しさん:2011/11/28(月) 17:56:56.11
大部分はMSDN見れば出てくる程度のもの
tips集で何でそんなことわかるのかと思うようなのって見たことない
638デフォルトの名無しさん:2011/11/28(月) 18:03:28.70
Tips系サイトで出てきたコードをコピペする前に
使ってるクラスやメンバをMSDNで引いてみるといいよ
大抵MSDNのサンプルや解説をちょっと噛み砕いてるだけだから
639デフォルトの名無しさん:2011/11/28(月) 18:44:40.99
タスクトレイにアイコン化したアプリ(自作)を別のアプリ(自作)で通常のサイズに戻すにはどういう方法がありますか?
640デフォルトの名無しさん:2011/11/28(月) 18:58:19.36
両方弄れるならプロセス間通信
色々好きなようにやりとりできる
641デフォルトの名無しさん:2011/11/28(月) 21:47:12.49
以下のような日付時刻のDate型から、自分で文字列を切り出すとかではなく
日付部分の2011/11/28や時刻部分の21:41:23を求める便利なメソッドや関数ってありますでしょうか?


Dim d As Date = Now '2011/11/28 21:41:23
642デフォルトの名無しさん:2011/11/28(月) 21:50:09.26
DateTime.Parseで一発
643デフォルトの名無しさん:2011/11/28(月) 22:02:35.12
>>637-638
さすがにそんなクズみたいなTIPSを集めてるところは見たことないぞ。
いい加減なこと言うなよ。
644デフォルトの名無しさん:2011/11/28(月) 22:08:08.48
TIPSってそういうもんだろ
目的別に調べられて、一緒に使う機能はまとめて紹介してくれたり、
わかりにくいMSDNの解説をかいつまんで説明してくれたりするのは
十分有用だしそれなりに手間もかかってるだろうしそれがクズだとは全く思わないが
645デフォルトの名無しさん:2011/11/28(月) 22:12:50.79
そういうもんって、じゃあ具体的にMSDNの解説をかいつまんで解説してる(だけ)の
TIPSってどこよ?

もちろん個人ブログにちょこっと書いてあるようなのはそんな程度の内容だったりするかもしれんけど、
少なくとも有名どころにそんなところないでしょ。
646デフォルトの名無しさん:2011/11/28(月) 22:22:16.24
>>641
文字列で欲しいのなら
d.ToString("yyyy/MM/dd")
d.ToString("HH:mm:ss")
でいける
647デフォルトの名無しさん:2011/11/28(月) 22:23:12.71
個々のクラスやメンバなどについて、MSDNで得られる以上の知識はまず用いられてないってことだよ
dobonだって例外じゃない
ただそれを自分でMSDNで一つずつ調べるのはとても手間がかかるから、
先に調べた他の人がそのノウハウを公開してくれるのはもちろん有難いこと
648デフォルトの名無しさん:2011/11/28(月) 23:01:11.04
MSDNが情報源であるというのは分かったが、だからといって、
何かあるとすべて「MSDN読め」だけで終わるような意見は間違いって
ことだよな?
それなら、>>624に対するレスも、俺はこうやっているぞ。とか、
俺はこういう方法をやっているが、という流れになるかと思うの
だがな。違うか?
649デフォルトの名無しさん:2011/11/28(月) 23:05:50.38
>>648
それとこれとは話は別でしょw

さすがの2chでも、「MSDNよめ」って返答されてるレスは、実際MSDNライブラリに
普通に目を通せば解決するようなものである場合がほとんどだと思うよ。

>>624については、たぶんアホらしくて誰も回答しないだけ。
あえて言えば、何のための名前空間なのよと。
650デフォルトの名無しさん:2011/11/28(月) 23:23:35.09
>>640
ありがとー
でもぐぐったらちょっとイミフだったのでレジストリにハンドルを書き込むという方法で良しにしました。
651デフォルトの名無しさん:2011/11/28(月) 23:25:36.00
だったら一時ファイルでいいだろ
なんでレジストリ
652デフォルトの名無しさん:2011/11/28(月) 23:58:50.69
>>649
それなら、「MSDN読め」だけで質問&回答の話が終わらない入門者向けの
回答は「名前空間を押さえて、MSDN読め」でおk?
653デフォルトの名無しさん:2011/11/29(火) 00:00:17.64
ちょっと何いってるのか(
654デフォルトの名無しさん:2011/11/29(火) 01:16:34.78
だれかも言ってたけど、MSDNは辞書なんだよ。特定の項目がわからないなら、MSDNみれば内容は書いてある
本で言えば引くものであって、読むに適したものではない
だけど、何を探して良いか解らない、とか、こういうときどうすればいいか解らない、とか言うときもある
そういうときに読む解説もあれば解りやすい。TIPS系のサイトはこっちを担ってる
MSDNだけでOKって言うのは、辞書を全部読めばその言語はペラペラですって言ってるようなもの
655デフォルトの名無しさん:2011/11/29(火) 01:27:07.88
最後の一行で台無しだ
656デフォルトの名無しさん:2011/11/29(火) 01:38:12.03
>>641
DateTime.Date と DateTime.TimeOfDay のことか?
657デフォルトの名無しさん:2011/11/29(火) 07:05:55.13
日付と時刻って「日付と時刻の形式」の設定で書式が変わるよね。
658デフォルトの名無しさん:2011/11/29(火) 07:28:01.28
カルチャを指定しなければね
659デフォルトの名無しさん:2011/11/29(火) 07:43:23.30
>>655
最後の一行が重要だろ。
必要以上に「MSDN読め」だけでレスが終わっているんだから
660デフォルトの名無しさん:2011/11/29(火) 14:53:53.28
msdnは、和訳しただけで的を射てないからな
日本人技術者のWeb開発メモが、肌にあうよ
661デフォルトの名無しさん:2011/11/29(火) 16:01:11.89
そうそう。必ず>>660みたいな意見が出るからなぁ。
だから、「MSDN読めよといっている人は、本当に君はそれのみで
解決出来てきた問題なの?」といいたくなることがある。
662デフォルトの名無しさん:2011/11/29(火) 16:53:11.63
MSDNのを読んでたら出ないはずのことを質問する奴が多いからな
663デフォルトの名無しさん:2011/11/29(火) 18:11:16.20
VB.NETとC#を比較するとC#にはどんな利点がありますか?
最初からはじめるならC#の方がいいですか?
664デフォルトの名無しさん:2011/11/29(火) 18:25:33.42
C# に With ないんだよなぁ
なんでだい
665デフォルトの名無しさん:2011/11/29(火) 19:22:28.07
大してメリットがないし要望も多くなかったからやめたと公式コメント
666デフォルトの名無しさん:2011/11/29(火) 19:26:12.96
>>663
C系に馴染んだほうが他のC系言語(C,C++,JavaScript,Javaなど)も習得しやすい
VB.NETに多くある使わないほうがよい機能というのが徹底的に削られているから
変な癖が付きにくいかもしれない
667デフォルトの名無しさん:2011/11/29(火) 20:12:49.88
基本的な書式は似ているからね。
ただ、CやC++はGC系の言語から入ると大変そうだし、
JavaScriptはJavaの皮を被っただけの基地外言語(褒め言葉)だから、
余り過剰な期待はしない方が良いな。

>>663
とりあえず匿名メソッド美味しいです(^p^)
でもC#4.0より前だと、Excelとか弄る時に大量の空引数を書く羽目になるw
668デフォルトの名無しさん:2011/11/29(火) 21:44:27.96
カッコだらけの変態C言語がなんでここまでもてはやされるのかよくわからんが、変態になりたいならC#だな。
マクロ感覚で気軽にやりたいならVB
669デフォルトの名無しさん:2011/11/29(火) 22:12:09.86
>>668
俺もC系何度もトライしたがあのカッコが耐えられなくてその度挫折した
ブロックやネストが見た瞬間に分からない言語とか気持ち悪過ぎる
670デフォルトの名無しさん:2011/11/29(火) 22:41:46.64
>>669
たまーにみるインデントなしのVBのソースの方がきついだろ
Pythonおすすめ
671デフォルトの名無しさん:2011/11/30(水) 00:27:04.34
インデントなしの場合は付ければいいだけだからな
672デフォルトの名無しさん:2011/11/30(水) 01:20:26.16
ほらな
VBから入るとこうなる
673デフォルトの名無しさん:2011/11/30(水) 02:19:19.30
自作のインターフェースって、使う意味あるんですか?

たとえばDisposeみたいに言語に組み込まれて、クラスを破棄するときに自動的に
呼ばれるとか、自作インターフェースじゃ無理じゃないですか
継承したいならインターフェース継承じゃなくてもクラス継承使えばいいし、
使いどころが全く分からないんですよ
674デフォルトの名無しさん:2011/11/30(水) 04:26:21.65
継承は一つだけだがインターフェイスは複数可能
まあ使いどころがわからないなら無理して使わなくていいんじゃね
675デフォルトの名無しさん:2011/11/30(水) 09:26:44.37
>>673
あんまり気にしなくていいんじゃない?
必要になれば分かるよ
676デフォルトの名無しさん:2011/11/30(水) 09:47:35.30
>>672
kwsk
677デフォルトの名無しさん:2011/11/30(水) 11:07:30.82
C# が C++ 同様に多重継承をサポートしてるなら使う価値あるけど
そうじゃなくて、単に VB の C 版という程度だから VB でいいな。
678デフォルトの名無しさん:2011/11/30(水) 12:24:14.87
多重継承をサポートして無いならだめってことなら、javaもだめっていう
評価になるってこと?
679デフォルトの名無しさん:2011/11/30(水) 14:05:04.10
実行ファイルからコードを生成できるのがどうも嫌なんですが
VBとかC#のコードをC++に変換してC++のEXEを作るツールはありますか?
もしくわC++でなくても解析しても見れないEXEにする方法って何かありますか?
680デフォルトの名無しさん:2011/11/30(水) 14:47:19.39
難読化でもやっててください
681デフォルトの名無しさん:2011/11/30(水) 16:04:48.14
大事なとこだけ他言語で作って呼べば。
他の糞ソース部分は見られてもいいだろ。
682デフォルトの名無しさん:2011/11/30(水) 18:15:53.40
VBって初心者向けとして作られた言語みたいだけど、
いつのまにか言語仕様がJAVAやC#と同レベルの強力な言語になっている。
まあ全ての言語機能を利用する必要は全くないが。
683デフォルトの名無しさん:2011/11/30(水) 18:43:26.92
今のVBは完全にbasic風C#だからな
開発チームもC#に吸収され、C#に追加される機能はVBにも入るが
C#のトップが気に入らない機能はVBにも入らない
684デフォルトの名無しさん:2011/11/30(水) 18:47:56.39
C#ってCの皮を被ったVBだよね。
簡単に画面作れるし
685デフォルトの名無しさん:2011/11/30(水) 18:51:14.64
出自的にはJava+delphiじゃね
設計者VB好きじゃないみたいだし
686デフォルトの名無しさん:2011/11/30(水) 19:38:29.58
入門者向けはSmallBASIC使えって感じに割り切っているところがない?
687デフォルトの名無しさん:2011/11/30(水) 21:33:56.63
当初C#になって簡単にGUIプログラミングが出来るようになったって、騒がれてたけど、VBなら昔から出来てたことなんだよね。
VBさんざん馬鹿にしてたやつらがC#サイコーとか言ってるのみると情弱ってこいつらの事なんだろうなって思ったよ。
688デフォルトの名無しさん:2011/11/30(水) 22:21:42.63
>>687
さすがに被害妄想激し過ぎ
689デフォルトの名無しさん:2011/11/30(水) 23:22:24.39
ここらで F# の登場
690デフォルトの名無しさん:2011/12/01(木) 12:59:55.92
だけどここはVB.NET質問スレ
691デフォルトの名無しさん:2011/12/01(木) 18:31:50.56
デバイスコンテキストに、APIのCreateFont()で
「MS ゴシック」「サイズ24」を設定しても「Arial」「サイズ24」になってしまいます
何かヒントでも良いので教えて頂けないでしょうか・・・。

<ソース1>
Dim img As New Bitmap(300, 200)
Dim g As Graphics = Graphics.FromImage(img)
Dim hdc As IntPtr = g.GetHdc()
Dim hFont As IntPtr
Dim oldFont As IntPtr
Dim recttst As API.RECT
Dim test As String = "aaaddd111あいう"
Dim stFont As String = "MS ゴシック"

With recttst
.Top = 1
.Left = 1
.Right = 50
.Bottom = 100
End With
692つづき:2011/12/01(木) 18:32:21.54
<ソース2>
hFont = API.CreateFont(24, 0, 0, 0, FW_NORMAL, _
0, 0, 0, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, _
CLIP_DEFAULT_PRECIS, DRAFT_QUALITY, _
DEFAULT_PITCH, stFont)
oldFont = API.SelectObject(hdc, hFont)

' SelectObjectの結果確認用
Dim fnt As Font = Font.FromHfont(hFont)

API.DrawText(hdc, test, -1, recttst, DT_CENTER Or DT_SINGLELINE)

API.SelectObject(hdc, oldFont)
API.DeleteObject(hFont)
g.ReleaseHdc(hdc)

' ファイルに保存
img.Save("C:\test.png", System.Drawing.Imaging.ImageFormat.Png)
img.Dispose()
g.Dispose()
693つづき最後:2011/12/01(木) 18:33:48.45
<ソース3・API宣言部・定数は省略>
Public Class API
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Friend Shared Function CreateFont( _
ByVal nHeight As Long, _
ByVal nWidth As Long, _
ByVal nEscapement As Long, _
ByVal nOrientation As Long, _
ByVal fnWeight As Long, _
ByVal IfdwItalic As Long, _
ByVal fdwUnderline As Long, _
ByVal fdwStrikeOut As Long, _
ByVal fdwCharSet As Long, _
ByVal fdwOutputPrecision As Long, _
ByVal fdwClipPrecision As Long, _
ByVal fdwQuality As Long, _
ByVal fdwPitchAndFamily As Long, _
ByVal lpszFace As String) As IntPtr
End Function

<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> Friend Shared Function SelectObject(ByVal hdc As IntPtr, ByVal hgdiobj As IntPtr) As IntPtr
End Function

<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> Friend Shared Function DeleteObject(ByVal hObject As IntPtr) As Long
End Function

<System.Runtime.InteropServices.DllImportAttribute("user32.dll")> Friend Shared Function DrawText(ByVal hdc As IntPtr, ByVal lpStr As String, ByVal nCount As Integer, ByRef lpRect As API.RECT, ByVal wFormat As Long) As Boolean
End Function
End Class
694つづき今度こそ最後:2011/12/01(木) 18:49:53.73
<ソース4・構造体>

Friend Structure RECT
Dim Left As Long

Dim Top As Long
Dim Right As Long
Dim Bottom As Long
End Structure


<環境>
WindowsXP Pro
VS2003 VB.NET+.NET Framework 1.1
695デフォルトの名無しさん:2011/12/01(木) 19:39:53.53
とりあえずVS2010で実行してみたら、
PInvokeStackImbalance例外が起こった。
PInvoke呼び出し時にスタックをぶっ壊しているらしい。
API関係の宣言をどこか間違えていないか?
696デフォルトの名無しさん:2011/12/01(木) 20:30:24.61
>>695
VS2008以降は、以下のようにAPI宣言すると
例外が起きないかもしれません。

DllImport("xxx.dll", CallingConvention = CallingConvention.Cdecl
697デフォルトの名無しさん:2011/12/01(木) 21:05:21.20
引数の数を確認しようとして気付いた。何でLongやねん。
64ビット幅で突っ込んでりゃそりゃ壊れるわ。
とりあえず機械的にIntegerに変換したら動くようにはなった。
…….NET1.1だとLongでも通るの?
698デフォルトの名無しさん:2011/12/01(木) 21:10:33.25
>>697
ごめんなさい。.NET1.1だとLongで通ってしまいます・・・。
今、調べている途中ですがCreateFontIndirect()に変えたらTrueTypeフォントはうまく描画できるようになりました。
しかし、OpenTypeフォントは「MS Pゴシック」に置き換えられてしまいます・・・。
変更のあったコードを張りなおします。

<API宣言部>
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Friend Shared Function CreateFontIndirect( _
ByRef lpLogFont As LOGFONT) As IntPtr
End Function

<StructLayout(LayoutKind.Sequential, pack:=4)> _
Public Structure LOGFONT
Public lfHeight As Integer
Public lfWidth As Integer
Public lfEscapement As Integer
Public lfOrientation As Integer
Public lfWeight As Integer
Public lfItalic As Byte
Public lfUnderline As Byte
Public lfStrikeOut As Byte
Public lfCharSet As Byte
Public lfOutPrecision As Byte
Public lfClipPrecision As Byte
Public lfQuality As Byte
Public lfPitchAndFamily As Byte
<VBFixedString(LF_FACESIZE), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=LF_FACESIZE)> Public lfFaceName As String
End Structure
699デフォルトの名無しさん:2011/12/01(木) 21:12:03.83
<CreateFont()の部分はコメントアウトして以下を追記>

stFont = "Amhara reduced"

Dim lf As API.LOGFONT
With lf
.lfHeight = 24 '高さ(ピクセル)
.lfWeight = FW_NORMAL
.lfCharSet = SHIFTJIS_CHARSET
.lfOutPrecision = OUT_DEFAULT_PRECIS
.lfClipPrecision = CLIP_DEFAULT_PRECIS
.lfQuality = ANTIALIASED_QUALITY
.lfPitchAndFamily = DEFAULT_PITCH Or FF_SCRIPT
.lfFaceName = stFont
End With
hFont = API.CreateFontIndirect(lf)



700デフォルトの名無しさん:2011/12/01(木) 22:00:55.42
lfCharSetをDEFAULT_CHARSETにすればいい。
……x64Win7だし、面倒だからMFCで動作確認したけど多分OKなはず。
ただ、正しくフォントが作られた結果、Font.FromHfontで落ちるけどw
.NETの描画で使うGDI+はOpenTypeオンリーなフォントが駄目だからなあ。
701デフォルトの名無しさん:2011/12/01(木) 23:32:04.41
あるフォルダのすべての画像ファイルを一括名前変換する方法は無限にあるけど
どんなカンジのコードがおぬぬめだろぅか
702デフォルトの名無しさん:2011/12/01(木) 23:52:36.56
>>701
コードよりまずその質問文をなんとかしなきゃ。
それで他人に意図が伝わると思う感覚が理解できん、
703デフォルトの名無しさん:2011/12/02(金) 07:29:47.23
お勧めを言えばいいだけじゃないの?w

なるべく.NET Framework上で動くようにするのがお勧め。
違う環境でも動くから。
704デフォルトの名無しさん:2011/12/02(金) 07:34:15.31
それ以前に車輪の再発明しようとするのが理解できない
それほど特殊なリネームしたいんか?
705デフォルトの名無しさん:2011/12/02(金) 07:44:38.16
趣味で作るだけじゃない。
706デフォルトの名無しさん:2011/12/02(金) 07:52:25.17
仕事で作るなら余計無駄な時間かけちゃいかんだろ
707デフォルトの名無しさん:2011/12/02(金) 10:53:14.85
>>704
おそらくプログラム入門者で、方法がたくさんあるが、
オーソドックスなのはどんな方法なのか?
自分が書いているコードは無駄に処理がかかっているのではないのか?
といった不安感があって質問しているのだと思う。(と俺はエスパーした)
708デフォルトの名無しさん:2011/12/02(金) 11:31:55.98
コードの書き方の練習にはSmallBasicがいいだろうが、
クラスライブラリの把握として段階的にこうした方がいいというような
縮小版があった方がいいように思うのだがな。
Expressよりも限定している、みたいな。

ADO.NETにおいてもウィザードで出来たり、コードでも出来たりで、
いろいろ方法があるからどうやっていいのかと思う気持ちになるのは
理解できる。ま、いろいろと方法は準備されているんだよ、というのが
モットーでもあるのだがな。
709デフォルトの名無しさん:2011/12/02(金) 13:28:28.17
>>700
DEFAULT_CHARSETの件、ありがとうございました。
それでも直らず、CreateFontIndirect()を使うようにしたら
OpenTypeも描画できるようになりました。
色々相談にのって頂き、ありがとうございました。

<OpenTypeも描画するためのコード>
Dim lf As API.LOGFONT
With lf
.lfHeight = iSize * (96 / 72) 'ポイントをピクセルに変換して設定
.lfWeight = FW_NORMAL
.lfCharSet = DEFAULT_CHARSET
.lfOutPrecision = OUT_DEFAULT_PRECIS
.lfClipPrecision = CLIP_DEFAULT_PRECIS
.lfQuality = ANTIALIASED_QUALITY Or PROOF_QUALITY
.lfPitchAndFamily = DEFAULT_PITCH Or FF_SCRIPT
.lfFaceName = stFont
End With

' フォント生成&適用
hFont = API.CreateFontIndirect(lf)
oldFont = API.SelectObject(hdc, hFont)

710デフォルトの名無しさん:2011/12/02(金) 20:32:39.34
ひょっとしてVB.NET Expressエディションはコードエディターにブックマークないとか?
711デフォルトの名無しさん:2011/12/02(金) 20:39:04.70
ある
712デフォルトの名無しさん:2011/12/02(金) 20:49:51.72
オプションとか環境設定探してもないんだけど・・・
713デフォルトの名無しさん:2011/12/02(金) 21:06:54.59
コード エディターでの作業中、[ブックマーク] ウィンドウを使用して、
コード中にブックマークを作成できます。 [ブックマーク] ウィンドウは、
[表示] メニューから表示できます。

ブックマークを作成したり、作成したブックマーク間を移動するには、
[テキスト エディター] ツール バーのボタンと [ブックマーク]
ウィンドウの上部に設けられたボタンをクリックします。 ブックマーク
の追加と削除、有効化と無効化のほか、複数のブックマークをフォルダー
として管理することもできます。 一部のコマンドについては、[ブック
マーク] ウィンドウのショートカット メニューからアクセスすることも
できます。
714デフォルトの名無しさん:2011/12/02(金) 21:12:49.07
って探したがブックマークウィンドウ無いな…
まあツールバーで作成/削除とジャンプは出来るが
715デフォルトの名無しさん:2011/12/02(金) 23:02:07.76
キャストするときって何使ってる?
最強のCtype?
716デフォルトの名無しさん:2011/12/02(金) 23:09:41.65
DirectCast
717デフォルトの名無しさん:2011/12/02(金) 23:31:18.78
俺もDirectCastだなあ。CTypeは変に空気読まれそうで一寸嫌。
縮小・拡大変換で基本型以外に変換したい時は、
まさにCTypeの出番なんだろうけど。
718デフォルトの名無しさん:2011/12/03(土) 01:02:16.64
From1にテキストボックスがあります。

以下のコードのTestを実行した場合にForm1のTextBoxの入力内容が表示される方法として
msgbox(From1.TextBox1.Text)とする以外にいい方法を教えてちょ

Public Class1
Inherits Form1

Sub Test
msgbox(TextBox1.Text)
End Sub

End Cla

719デフォルトの名無しさん:2011/12/03(土) 01:18:55.60
>>718
意味不明に聞こえるけど....
720デフォルトの名無しさん:2011/12/03(土) 01:46:24.12
というかなにもしなくても表示されてるんじゃないか
721デフォルトの名無しさん:2011/12/03(土) 06:04:31.95
@DataTable1=DataTable2

ADataTable1=DataTable2.Copy
って
DataTable1は@もAも結局同じものになるんでしょ?
722デフォルトの名無しさん:2011/12/03(土) 07:53:13.78
>>718
msgbox(me.TextBox1.Text)


>>721
クラスの仕様による。ならない場合もあるので、
=で結べばいいというよりも、Aのようにするという
覚え方の方がいいと思う。
723デフォルトの名無しさん:2011/12/03(土) 09:44:40.40
If Dt.Rows(i)("RenameO") Is DBNull.Value Then
これをヌルヌルじゃなかったらという
Notを付けるとしたらみんなならどこに書く?
かけそうな場所複数あるけど
724デフォルトの名無しさん:2011/12/03(土) 09:48:50.99
>>721
VB5から6になった時に一部のコントロールでデフォルトプロパティが無くなった事が有って
そういうのの省略はしない方が良いって風潮になった。MS製品では。
ヘルプの内容が180度変わってて笑えた。修正する方は笑えなかったけど。
725デフォルトの名無しさん:2011/12/03(土) 10:39:42.45
継承が勉強できて自分で作れるようになる本やサイト紹介してください

皆さんは、困った時どんな検索ワードで、vb.netの資料をどこで検索しているのかもお願いいたします。

726デフォルトの名無しさん:2011/12/03(土) 10:56:19.52
>>723
VB.NET的には IsNot と言いたい所だが、
もっとVB的な IsDBNull(〜) = False の方が好みだな。
727デフォルトの名無しさん:2011/12/03(土) 13:49:53.68
>>725
まずは、VB中学生っていうサイト

継承とか正規表現、データベース操作などになると、VisualBasicの範疇
で学ぼうという意識は持たない方がいいと思う。他の言語を使った書籍などにも
目を通すようにした方がドキュメント量は多かったり、詳しかったりするから。
例えば、javaの方がvb.netよりも歴史が長い分、ドキュメントが多い、となるでしょ?
728デフォルトの名無しさん:2011/12/03(土) 13:51:09.87
>>724
kwsk
729デフォルトの名無しさん:2011/12/03(土) 14:04:06.05
VB2008ExpressEditionです。
ビルド後にReleaseフォルダが生成されないのですが、原因は何でしょうか?
730デフォルトの名無しさん:2011/12/03(土) 16:07:33.46
>>721-722
DataTableのCopyって新しいDataTable(のインスタンス)作るメソッドじゃないのか?
1はある変数(のインスタンス)を別の変数に入れる
2はCopyメソッドの戻りを変数に入れる
1は同じDataTable、2は(持ってるデータは内容は同じでも)違う(インスタンスの)DataTable
だと思うが
まずインスタンスって概念わかってる?

>>724
そもそもデフォルトプロパティにかかわる質問ではないと思うが
VB.NETでは特定の条件でしかデフォルトプロパティは参照されない

つかVB6でデフォルトプロパティのなくなったコントロールの実例を教えてくれ
731デフォルトの名無しさん:2011/12/03(土) 16:25:36.43
漏れの作ったデフォルトプロパティ一覧
ListBoxはItem
TextBoxはText
したがって
Dim S as String = TextBox
でおk

732デフォルトの名無しさん:2011/12/03(土) 16:47:56.97
出したウンコの自慢をされましても...
733デフォルトの名無しさん:2011/12/03(土) 16:48:47.58
>>731
ここはVB.NETのスレですよ
734デフォルトの名無しさん:2011/12/03(土) 18:37:40.39
>>730
なるほど。
インスタンスが同じものであるか、別にnewしたものであるのかを
考えておく必要があるんでしたね。
まだ、OOP特有の概念を理解していないところがあったので、
勘違いしてました。
説明ありがとうございます。
735デフォルトの名無しさん:2011/12/03(土) 19:00:16.33
Me.Text = "abc"
とした場合はForm1のタイトルバーがabcになってくれるけど
Dim frm1 As New Form1
frm1.Text = "abc"
としてインスタンスのフォームでタイトルテキストを変えようとしても変わらないので動作してくれるようにするにはどうすれば
736デフォルトの名無しさん:2011/12/03(土) 19:21:24.20
いやそれで変わるから。
何を言ってるんだよ
737デフォルトの名無しさん:2011/12/03(土) 19:38:21.43
whay?
738デフォルトの名無しさん:2011/12/03(土) 21:11:22.96
既定のインスタンスとfrm1を混合してるんじゃないの
739デフォルトの名無しさん:2011/12/03(土) 21:21:55.23
Me.TextでFormのタイトルが変わるってことは、このコードは(どのインスタンスかは解らんが)フォーム上で実行されてる
そのフォーム上で下のコード走らせたなら、frm1はNewしてるんだから自分じゃないわな
frm1.Showして表示されるフォームのタイトルはちゃんとabcになってるはずだよ

つかやっぱり既定のインスタンス復活させたのは失策だよなぁ
740デフォルトの名無しさん:2011/12/03(土) 21:27:56.73
そういうことを言い出したらVB.NETの存在自体が間違いになってしまう
旧VBerを甘やかすための言語なのに
741デフォルトの名無しさん:2011/12/03(土) 21:59:10.42
Array.Sortでcbaみたいに降順にするにわん?
742デフォルトの名無しさん:2011/12/03(土) 22:04:56.14
Array.Sort してから Array.Reverse でお手軽に。
743デフォルトの名無しさん:2011/12/03(土) 22:06:22.03
板抱きマウス
744デフォルトの名無しさん:2011/12/03(土) 22:45:51.72
containsで大文字小文字を関係なく検索することはできますか?
745デフォルトの名無しさん:2011/12/03(土) 22:48:55.55
2段階かけてやっとこ降順とか・・・
746デフォルトの名無しさん:2011/12/04(日) 04:37:22.01
そこでLINQですね
747デフォルトの名無しさん:2011/12/04(日) 10:00:03.73
>>744
List.Containsの話なら、代わりにExistsを使って好きな一致条件を突っ込む。
listSample.Exists(Function(elem) String.Compare(elem, "Foo", True) = 0)
こんな感じで。
ラムダ式が使えない場合は、ForEachで地道にやるのが無難だろうなあ。
748デフォルトの名無しさん:2011/12/04(日) 21:04:17.66
>>732のコメントすばらしいw
凄く適確で、端的にまとまってて、うけたw
749デフォルトの名無しさん:2011/12/05(月) 13:10:37.29
Aルーチンがあり、Bフォームがあります。

Aはサブルーチンで、途中でインプットボックスの代わりにつくったBフォームを呼び出します。
この時、Bフォーム上のテキストボックスに値を入れて、OKボタンを押すとAルーチン側でそ
の値を受取り、引き続き、ルーチンを続行したいと思います。

このような場合、どのようにプログラミングしたらよいでしょうか?
750デフォルトの名無しさん:2011/12/05(月) 14:09:13.07
>>749
やりたいことが良く見えん。
Aというサブルーチンは、Bフォーム以外のフォームからでも
呼ばれることはあるという設計でやっているの?
それとも、全体がBフォーム内で完結するのが前提の話しなの?
751デフォルトの名無しさん:2011/12/05(月) 14:10:06.40
>>749
BにAで受け取りたい値のプロパティを実装
AでB.ShowDialog
AでBのプロパティにアクセス
752デフォルトの名無しさん:2011/12/05(月) 14:26:50.36
B に

Public Function Syori(引数) As String
 ShowDialog
 Return ××
End Fucntion

して、A から B.Syori を呼ぶ
753デフォルトの名無しさん:2011/12/05(月) 16:17:56.87
ShowDialogは呼び出し側で使った方がよろしいかと
754デフォルトの名無しさん:2011/12/05(月) 16:57:26.94
>>750
現在はBフォーム以外からの呼び出しを考えています。
汎用インプットボックスクラスといった感じです。

>>751-753
指摘事項を元にサンプルを探して見ました。
http://shinshu.fm/MHz/88.44/archives/0000039564.html

こんな感じでしょうか?

ボキャブラリがなく、なかなか探せませんでした。ありがとうございます!
755デフォルトの名無しさん:2011/12/05(月) 17:05:17.13
>>750-753
こんな感じで実装できました。今後これをウィザード風に改造してみようと思います。

Dim f As wizard = New wizard("07", 2)

'モーダルで開き、返り値を受け取る
If f.ShowDialog = DialogResult.OK Then
'値を受け取る
p = f.GetCancelFlag 'キャンセルフラグ受信用
g = f.GetTaiyou '耐用年数取得
h = f.GetSType '償却方法取得
End If

'キャンセルフラグを受信したら処理を飛ばす
If p = 0 Then
MessageBox.Show("キャンセルされました")
exit sub
Else
End If

スクリーンショット:http://www.rupan.net/uploader/download/1323072154.jpg
Form2のコード:http://www.rupan.net/uploader/download/1323072310.txt
756デフォルトの名無しさん:2011/12/05(月) 22:07:52.94
Dim ar As New ArrayList と
Dim ar As ArrayList
はどう違いますか?
両方使えるみたいですけど・・・
757デフォルトの名無しさん:2011/12/05(月) 22:41:46.41
使えてない使えてないw
下はArrayListが入る空箱だろ。上は詰まってるけど。
758デフォルトの名無しさん:2011/12/05(月) 22:49:13.29
しかし
Dim str As String
For Each str In ar
Console.WriteLine(str)
Next

でやるとNewがあっても無くても目的の文字列が出ます
759デフォルトの名無しさん:2011/12/05(月) 23:15:29.18
Dim ar As ArrayList
Dim str As String
For Each str In ar
Console.WriteLine(str)
Next

これで目的の文字列が出るのか。すげぇな
760デフォルトの名無しさん:2011/12/05(月) 23:22:29.28
>>758のPCには毒電波受信機でも付いてるのかw
761デフォルトの名無しさん:2011/12/05(月) 23:23:38.77
脳内デバッグ怖い
762デフォルトの名無しさん:2011/12/05(月) 23:31:03.37
ちょっと質問まちがえた これが正しい↓

ArrayListはDim ar As New ArrayListと宣言しますが
アイテムの登録の際に
ar = hogehoge(str) という関数で登録する場合は
宣言部はNewがあっても無くてもどっちでも良いみたいですがどっちが正しいですか?
763デフォルトの名無しさん:2011/12/05(月) 23:37:48.78
配列とかリストをループして要素にアクセスするとき、
For文とFor Each文ではどちらが使われていることが多いでしょうか?

Dim str() As String = {"aa", "bb", "cc"}

For i As Integer = 0 To str.Length - 1
  MsgBox(str(i))
Next

For Each s As String In str
  MsgBox(s)
Next


Dim strList As New List(Of String)(str)

For i As Integer = 0 To strList.Count - 1
  MsgBox(strList(i))
Next

For Each s As String In strList
  MsgBox(s)
Next
764デフォルトの名無しさん:2011/12/05(月) 23:43:19.95
俺はなるべくfor eachで書いてる
なんとなくわかりやすいからかな
765デフォルトの名無しさん:2011/12/05(月) 23:47:02.38
>>762
だからhogehogeってなんだよ!?
766デフォルトの名無しさん:2011/12/05(月) 23:55:29.74
>>762
質問が間違ってる

古本屋でいいから初心者向け本一冊入手するとか、初心者サイト読むぐらいしてたら出てこない質問に見える
767デフォルトの名無しさん:2011/12/06(火) 00:33:59.60
For Eachの方がよさそうですね。
ループはFor Each で行きますね。
768デフォルトの名無しさん:2011/12/06(火) 02:51:54.20
>>762
まず、基本的にクラスはNewしないと使えない。
Dim ar As ArrayList
だけ書いてar.Countとかやるとエラーになる。

ar = hogehoge(str)
とした後でar.Countとかが使えるのは、
hogehogeの中のどこかで New ArrayList をしていて、それを戻り値として返して、arがそれを受け取っているから。

すごく端折って書くとこんな感じになってる
Function hogehoge( str As String ) As ArrayList
  Return New ArrayList
End Function

つまりhogehoge内でNewしてくれているので受け取る側ではNewしなくていい。しないのが正解。
というかhogehogeの戻り値をarに代入(あなたの言葉で言うと登録)した時点で
arが上書き(←イメージ的に分かりやすく言うとね)されるのでNewする意味はない。するだけ無駄ァ。
769デフォルトの名無しさん:2011/12/06(火) 03:22:42.30
For Each A In B
でわざわざAを用意しなけりゃなんないのなんとかならんの?
770デフォルトの名無しさん:2011/12/06(火) 03:33:22.46
俺は、For文の方使う派かなぁ…
For Each文はあまり使わない
速度差ってあるのかな
771デフォルトの名無しさん:2011/12/06(火) 09:12:26.04
>>753
どうして?
772デフォルトの名無しさん:2011/12/06(火) 15:00:40.43
>>771
呼び出し側から使われる様に作られているから
呼び出される側で ShowDialog 使っちゃったら Owner とか DialogResult が困っちゃうでしょ
773デフォルトの名無しさん:2011/12/06(火) 22:28:42.38
openformsからとあるクラスのフォームを取得したいんだけど、何かいい方法ないかな?
774デフォルトの名無しさん:2011/12/06(火) 22:37:10.32
TypeOfとかで、どのクラスのフォームかを判定すればいい。
775デフォルトの名無しさん:2011/12/06(火) 23:10:43.46
結局はFor eachで回す感じ?
776デフォルトの名無しさん:2011/12/06(火) 23:25:26.23
静的フィールドにでも入れとけ
777デフォルトの名無しさん:2011/12/07(水) 09:43:54.95
質問です
自宅パソコン(win7)にvisualstudio2010express editionをインストールして、
フォームアプリを参考までに作ろうと思ったのですが
ソース自体は問題ないはずなんですが、
ビルドエラーになってしまいました。

button1_click()
Textbox1.text = datevalue(now) ←こんなものを1つくらい

sなんたら.exeがどうたら、みたいなエラーで
通常ビルドに失敗すると、ソースのここでエラーになっているっていうのが
出力されると思うのですが、そういうものもありませんでした。
雑な質問ですみませんが、対策わかるかたいたら教えてください

778デフォルトの名無しさん:2011/12/07(水) 12:14:05.29
お客様のなかにエスパーはいらっしゃいませんか?
779デフォルトの名無しさん:2011/12/07(水) 12:35:19.02
各行にセミコロンがない、に1票
ここ VB スレなんだが
780デフォルトの名無しさん:2011/12/07(水) 15:23:50.27
C#っすか
781デフォルトの名無しさん:2011/12/07(水) 18:22:22.06
セミコロンってタイプしずらいよね
アルファベットしかブラインドタッチできんわ
782デフォルトの名無しさん:2011/12/07(水) 18:56:03.30
メールの転送を行いたいのですが、外部DLLを使用しないで作るのは難しいことなのでしょうか?
メールの送信、受信のサンプルはいっぱいあるけど転送は見当たらなった。
783デフォルトの名無しさん:2011/12/07(水) 19:08:06.62
文字列型に変換する時にCStrとToStringの両方を使っているのですが、
今後はどちらか一つの利用にしていこうと考えているのですが、
CStrとToStringではどちらの方が良いと思いますでしょうか?
784デフォルトの名無しさん:2011/12/07(水) 19:40:00.26
単純に文字列型にしたいだけならCStr一択。
特定の書式にしたい時は、書式指定付きのToStringが使えることもある。
状況に応じて使い分ければ良いよ。
785デフォルトの名無しさん:2011/12/07(水) 19:57:09.16
>>781
セミコロンて記号の中で一番タイプしやすいだろ
786デフォルトの名無しさん:2011/12/07(水) 20:03:44.22
>>782
送受信が出来ればあと何が必要なの?
787デフォルトの名無しさん:2011/12/07(水) 20:08:47.62
>>783
俺はtostring一択
788デフォルトの名無しさん:2011/12/07(水) 20:15:32.38
>>786
メールの仕組みを理解してなくて申し訳ありません。送受信ができればメールの全文転送はできるものなのですね。
SmtpClientクラスのsendで転送も可能なのでしょうか?
789デフォルトの名無しさん:2011/12/07(水) 20:34:50.79
tcpclientで受信してデコードしてアタッチして送信するだけだろが…
790デフォルトの名無しさん:2011/12/07(水) 20:36:18.27
まあ二度とやりたいと思わんけどw
791デフォルトの名無しさん:2011/12/07(水) 20:52:05.09
>>789
ありがとうございます。勉強になりました。
792デフォルトの名無しさん:2011/12/07(水) 21:02:17.82
っていうか転送はメールサーバーで設定できるだろ
793デフォルトの名無しさん:2011/12/07(水) 21:45:34.52
受信したメールの内容次第で転送先を変える必要がありまして、メールサーバーでの転送では無理だったので。
outlookの転送だど送信元が変わってまって不便なため作れないかと思ってました。
794デフォルトの名無しさん:2011/12/07(水) 22:29:41.06
フォントフォールバックってなんぞ?
http://msdn.microsoft.com/ja-jp/library/dx4hatx6.aspx

>フォント フォールバックとは、文字が属する言語をシステムが判断することを指します。
文字が属するって、1文字毎フォントが変わる??

>この機能を利用するには、フォームまたはその他の要素の Font プロパティは設定しないようにしてください。
設定しない=MS UI Gothicだと思うけど、明示的にそれを使いたい時は?
795デフォルトの名無しさん:2011/12/07(水) 22:40:26.29
>>794
フォントリンクを利用する
796794:2011/12/07(水) 22:55:45.57
レスthx
調べてみる!
797783:2011/12/07(水) 23:46:54.15
文字列変換はCStrとToStringの両方を利用していこうと思います。
ToStringだけでも勿論いいと思いますね。
798デフォルトの名無しさん:2011/12/07(水) 23:57:30.73
キャストと型変換の違いは?
799デフォルトの名無しさん:2011/12/08(木) 00:47:35.45
>>798
http://msdn.microsoft.com/ja-jp/library/ms173105.aspx
どうも明示的な型変換をキャストというっぽい

一般的には型変換は全部キャストと称されてる気はするが
800デフォルトの名無しさん:2011/12/08(木) 07:52:38.90
VB.NETだと、拡大変換=型変換、縮小変換=キャストか。
変換にCTypeが必須かどうかで書かれていて、
キャストという言葉自体はVB.NETでは使われていないっぽいけど。
801デフォルトの名無しさん:2011/12/08(木) 09:36:13.18
キャストはインスタンスを互換性のある別の型として扱う事。
OOで言う多態性。
型変換は変換処理を通して別のインスタンスを生成すること。
コストの高い処理。
ユーザ入力やネットワークなど、アプリケーション外部との接続時に行うもの。
802デフォルトの名無しさん:2011/12/08(木) 09:42:49.24
細かいことは気にスンナよ
803デフォルトの名無しさん:2011/12/08(木) 10:03:29.45
Excelのセルから値を読み込んだときにnullかどうかの判定って
どうやればいいでしょうか?

if xlRange.Value = null then
end if

みたいなことをしたいのですが。

Dim xlRange As Object
xlRange = xlCells(1, 1)
ListBox1.Items.Add(xlRange.Value)
804デフォルトの名無しさん:2011/12/08(木) 10:31:53.24
If xlRange.Value Is DBNull.Value Then

でいけないかい?
805デフォルトの名無しさん:2011/12/08(木) 10:35:07.45
>>804
いけませんでした。
806デフォルトの名無しさん:2011/12/08(木) 10:59:39.67
DBNull.Value は値だから Is は駄目だろ

If xlRange.Value.Equal(DBNull.Value) Then

でいけないか?
807デフォルトの名無しさん:2011/12/08(木) 11:19:13.46
>>806
ありがとうございます。

If Not xlRange Is Nothing Then
If Not xlRange.value Is Nothing Then
If Not xlRange.value.Equals(DBNull.Value) Then
ListBox1.Items.Add(xlRange.Value)
End If
End If
End If

でいけました。
808デフォルトの名無しさん:2011/12/08(木) 18:16:30.26
>>806
そっかー
809デフォルトの名無しさん:2011/12/08(木) 19:42:59.27
そこを

If Not xlRange Is Nothing AndAlso Not xlRange.value Is Nothing AndAlso Not xlRange.value.Equals(DBNull.Value) Then
  ListBox1.Items.Add(xlRange.Value)
End If

とすると美しくてよろしい。
810デフォルトの名無しさん:2011/12/08(木) 20:07:12.51
AndAlso = And ?
811デフォルトの名無しさん:2011/12/08(木) 20:24:09.79
>>810 ショートサーキット

xlRange IsNot Nothing AndAlso xlRange.Value <> ""
これで十分じゃね?
個人的には、xlRangeにNothingの可能性がある方に違和感があるけど。
そんなのはAssertで自爆しておくべきパターンな気がする。
812デフォルトの名無しさん:2011/12/08(木) 23:39:46.50
画像ファイル以外のものにexif情報をつけて保存したら何か不都合は出ますか?
813デフォルトの名無しさん:2011/12/09(金) 00:05:05.43
彼女ができたんですが、InsertするとオブジェクトインスタンスがなんちゃらかんちゃらでうまくInsertできません
814デフォルトの名無しさん:2011/12/09(金) 02:00:56.32
彼女がNothingなんじゃね
815デフォルトの名無しさん:2011/12/09(金) 06:32:16.00
UTF-8
のテキストファイルを開業するには
VbLF VbCR VbCRLF
どれつかうん?
816デフォルトの名無しさん:2011/12/09(金) 06:57:00.79
文字符号化形式と改行文字は無関係
817デフォルトの名無しさん:2011/12/09(金) 11:45:09.96
System.Environment.NewLine使っとけば?
818デフォルトの名無しさん:2011/12/09(金) 14:02:26.33
vb 2010に於いて、以下のことを実現したいです。

元々Access使いであるため、なかなかVB.NET特有のコーディングにまだ慣れていません。

実現したいことは、
・DataRepeaterコントールに表示されているもので、現在選択しているレコードの背景色を変えたい

というものです。背景色は空っぽの四角いコントロールをAccessの時には使っており、現在選択した
場合、背景色を黄色にするようにしてます。

http://www.rupan.net/uploader/download/1323406924.jpg
819デフォルトの名無しさん:2011/12/09(金) 17:01:03.29
test
820デフォルトの名無しさん:2011/12/09(金) 17:06:38.44
test禁止
821デフォルトの名無しさん:2011/12/09(金) 17:38:46.34
testのtest
822デフォルトの名無しさん:2011/12/09(金) 19:09:47.88
>>818
CurrentItemIndexChangedイベントでCurrentItemの背景色を変える。
同時に以前のレコードの背景色を戻せば完了。
初めてDataRepeater使ったから大分適当だけど、こんな感じじゃね?
823デフォルトの名無しさん:2011/12/10(土) 01:13:30.19
Datarepeaterってなかなか思った通りに動いてくれなくない?
通常のコントロールの感覚で使って大ハマりしたよ。
824デフォルトの名無しさん:2011/12/10(土) 03:10:39.95
Datatableから特定のキーワードを検索する方法で、一番効率的な方法を教えて下さい。
ちなみに、大文字小文字は気にしません。
825デフォルトの名無しさん:2011/12/10(土) 05:23:19.33
スキームとかソルーションてなに?
826デフォルトの名無しさん:2011/12/10(土) 11:01:32.08
>>824
selectメソッドでいいだろ。
827デフォルトの名無しさん:2011/12/10(土) 13:23:48.64
>>822
頑張ってみまふ

また報告します
ありがりう
828デフォルトの名無しさん:2011/12/10(土) 13:23:52.01
>>826
selectだとupperとかかけられないんですよ
829デフォルトの名無しさん:2011/12/10(土) 19:07:38.68
>>824
Linq使え。
もしくは拡張メソッドを使って、AsEnumerable().Select(〜)ってやるとか。
これなら条件を好き放題指定できる。
830デフォルトの名無しさん:2011/12/10(土) 19:32:59.85
WhereでString.EqualsにIgnoreCase指定すりゃいいだけじゃないの?
831デフォルトの名無しさん:2011/12/10(土) 21:39:02.17
linqって抽出遅くないか?
832.:2011/12/10(土) 22:37:03.01
>>809が美しいって感性が理解できない

3つぐらいなら、NOTが入り交じった条件式で繋げず、ネストした方が可読性が高かろうよ
833デフォルトの名無しさん:2011/12/10(土) 23:27:05.37
いやIsNot使えばいいだけだろ
834デフォルトの名無しさん:2011/12/10(土) 23:31:21.94
まあ目糞鼻糞だねw
>>807-809的なものはメソッドに括りだすのが一番。
それなら、もしAndAlsoで繋げるのが気に入らないなら途中でreturnする手も使える。
835デフォルトの名無しさん:2011/12/10(土) 23:43:46.00
VB2008まではC#みたいに任意の改行が出来ない以上、ネストの方が大概読みやすい

行継続文字?なにそれ
836デフォルトの名無しさん:2011/12/10(土) 23:53:37.03
CheckedListBoxでn番目のアイテムにチェックがついているかいないか調べるにはどうやればいいですか?
837デフォルトの名無しさん:2011/12/11(日) 00:00:50.16
Checkedプロパティを調べる

以上
838デフォルトの名無しさん:2011/12/11(日) 00:01:55.17
GetItemCheckedだろ?
839デフォルトの名無しさん:2011/12/11(日) 00:42:47.37
でけた(^ー^)d
840デフォルトの名無しさん:2011/12/11(日) 09:07:07.88
http://nyannyan3.minidns.net/up/2011_12_11a.png
表示を
2011/12/11 09:01:59
にするにゎどぉすれば
841デフォルトの名無しさん:2011/12/11(日) 10:47:41.95
Now().ToString("yyyy/MM/dd HH:mm:ss")
842デフォルトの名無しさん:2011/12/11(日) 17:28:04.00
FolderBrowserDialogを使いたくないのでSaveFileDialogでフォルダを選択したいのですが、
良い方法があったら教えてください
843デフォルトの名無しさん:2011/12/11(日) 18:46:21.90
それを良い方法だという人が100人に一人もいるとは思えませんが
844デフォルトの名無しさん:2011/12/11(日) 19:46:42.58
VS2010のディレクトリ選択は、
OpenFileDialogをカスタマイズして作ってあるように見えるな。
あれを参考に色々試したら良いんじゃね?
ちなみに、VS2010+Open/SaveFileDialog+デバッグは鬼門だから注意w
845デフォルトの名無しさん:2011/12/12(月) 01:27:15.18
なんとなくはっちゃけあやよさんを思い出した
いやなんとなく
846デフォルトの名無しさん:2011/12/12(月) 09:05:50.11
>>844
鬼門って具体的にvs2008までとどう違うの?
847デフォルトの名無しさん:2011/12/12(月) 12:52:53.47
フォームを最小化しているときにノーマル状態の時の位置を知るにはどうやれば良いですか?
848デフォルトの名無しさん:2011/12/12(月) 20:19:13.76
>>846
家のx64Win7だと、OSを巻き込んで固まる。
サンプル数が少ないから、知らぬ間に特殊な条件を満たしてしまっているとか
あるのかもしれないけど、正直ウンザリする。
849デフォルトの名無しさん:2011/12/13(火) 01:51:16.50
VS2010はうちも不安定やな
850デフォルトの名無しさん:2011/12/13(火) 10:09:36.93
vs2010はけっかんひんですね。
851デフォルトの名無しさん:2011/12/14(水) 00:44:20.77
KeyPressイベントで、数字でないなら、テキストボックスへの入力を不可にするPGについて。

If文を使って数字でないときの処理を、e.Handle=Trueとしていますが、何故Trueなんですか?
無効にするならFalseではないのでしょうか?
852デフォルトの名無しさん:2011/12/14(水) 03:30:32.60
Handledな
既に処理済みだからもう処理しなくていいという意味
853デフォルトの名無しさん:2011/12/14(水) 12:30:23.11
その説明で、ますます分からなくなりました。
854デフォルトの名無しさん:2011/12/14(水) 12:46:25.96
今日は超寒い
855デフォルトの名無しさん:2011/12/14(水) 13:22:46.67
細かいことを気にしていたらプログラミングなんぞできない
856デフォルトの名無しさん:2011/12/14(水) 16:11:27.73
そう思ったので、トルューにすると暗記ですませました。
857デフォルトの名無しさん:2011/12/14(水) 19:27:58.40
e.俺がイベントを処理したからもういい=True
-> e.処理済み=True
-> e.Handled=True
858デフォルトの名無しさん:2011/12/14(水) 20:19:14.07
むしろFalseが無効だと誰が決めた
859デフォルトの名無しさん:2011/12/15(木) 13:46:52.36
以下のようなプロシージャーの引数を定数にすることは可能でしょうか?
const指定とか出来ないみたいですが・・・

Private Sub Proc(str As String)

End Sub
860デフォルトの名無しさん:2011/12/15(木) 13:53:38.31
日本語で
861デフォルトの名無しさん:2011/12/15(木) 14:50:19.74
>>859
C++から来た人?
VB.NETに引数のconst化は無いんじゃないかなぁ…。少なくとも私は知らない。
Subが始まってから
Const Dim strcopied As String = str
みたいにして、以降はstrcopiedを使うようにすれば回避できない事もないかも。
MonoDevelopでやって確認してみたら、
strcopiedはstrと参照も同じでかつ変更不可になってたのでいけてそげ。
用途に合ってるかどうかは分からないけど。
862デフォルトの名無しさん:2011/12/15(木) 15:28:50.24
>>861
レスありがとう。
VBはプロシージャーの引数はConstには出来ないのですね。
863デフォルトの名無しさん:2011/12/15(木) 16:17:38.69
VB6.0から久々にVBに触ります。
最近はWithステートメントって使わないのかな?
いろんなサンプル見てるけど、全然見かけない。
864デフォルトの名無しさん:2011/12/15(木) 21:04:21.79
全く別の言語なのでVB6なんて忘れましょう
865デフォルトの名無しさん:2011/12/15(木) 21:12:35.15
with使えば少しは早くなるかと思ってガンガン使ってたが違うん?
866デフォルトの名無しさん:2011/12/15(木) 21:14:53.75
まず関係ない
重いプロパティの場合でもローカル変数に代入すれば同じ
867デフォルトの名無しさん:2011/12/15(木) 21:19:42.69
コード打つ速度は微妙に上がってそうな気はする
868デフォルトの名無しさん:2011/12/15(木) 21:48:02.37
わざわざローカル変数を宣言しなくて済むのは手軽だったけど、
OptionInfer使えば型推論で簡単に代入できるから、存在が微妙になったな。
869デフォルトの名無しさん:2011/12/15(木) 23:02:06.11
ウォッチがし辛いから使わない
870デフォルトの名無しさん:2011/12/15(木) 23:03:44.94
FolderBrowserDialogでフォルダを選びたいのですが、
開こうとするパスに沢山のファイルがあると選択可能な状態になるまで時間がかかるので
なんとかしたいのですが回避できる方法があったら教えてください。
(ディスクが動き続けて3分くらい砂時計になってしまいます)
871デフォルトの名無しさん:2011/12/16(金) 00:21:58.37
>>863
俺は全然使うけどね。
ネストするような使い方しなければ、特に害も無いし読みやすい。
872863:2011/12/16(金) 00:41:30.45
皆様、お返事ありがとう。
入門書やサイトのサンプルコードに全然使われてないから、
使うと実行速度に問題があったりするんかなぁって思ってたりしました。
自分も使うのが好きなので、ガンガン使っていこうと思います。
ありがとうございました。
873デフォルトの名無しさん:2011/12/16(金) 00:46:53.38
へんな使い方するとかえって読み辛くなるからなぁ。
874デフォルトの名無しさん:2011/12/16(金) 00:47:34.87
MS公式のサンプルコードって基本的にC#で書いてVBに変換してるからC#に合わせた書き方になる
入門書やサイトはそれ見て書くわけだから
875デフォルトの名無しさん:2011/12/16(金) 10:04:10.40
VB6から移ってきました。

フォームのコードウィンドウの上2つのコンボボックスから
オブジェクトとイベントとを選ぶと、Private Sub XXX 〜 End Sub が作られると思いますが
ソースの途中に挿入される場合と、末尾に挿入される場合とがあります。

たとえば、ボタン_DoubleClick のイベントを生成済みで、新たに Click イベントの中を書きたいとき
ボタン_DoubleClick の前に ボタン_Click が入るのが VB6 では普通でしたが、後ろにくっつくことがあります。

手動でコピペして移動させないと、オブジェクトに対するイベントがソースのあちこちに散らばってしまいます。
これは、こんな仕様なんでしょうか?

どこかで一括ソートとかかけれるならいいんですが。
876デフォルトの名無しさん:2011/12/16(金) 12:58:16.52
>>873
だから変な使い方しなければいいんだよ。
目安としてwithの範囲が一画面に収まる場合のみ使えば問題ない。
877デフォルトの名無しさん:2011/12/16(金) 21:36:55.24
>>876
見やすい見辛いはそれでいいかもしれないけど、
ウォッチウインドウで見たい時とか面倒じゃない?
878デフォルトの名無しさん:2011/12/16(金) 22:11:26.25
>>877
意味分かりませんが....
879デフォルトの名無しさん:2011/12/17(土) 00:01:16.99
>>878
With hoge
  fuga = .piyo
End With
こう書くとデバッグ時にpiyoの値をウオッチウインドウとかイミディエイトウインドウで見たい時に
「hoge」と「.piyo」の2回に分けてコピペとか反転してD&Dとかしなきゃいけないけど、

Dim h = hoge
fuga = h.piyo
こう書いていれば「h.piyo」の部分1発で済む

ってことを言いたかった。
880デフォルトの名無しさん:2011/12/17(土) 00:16:59.48
自作メソッドを普通のメソッドと同じように使いたいのですが
インスタンスを作成しなくても使えるようにすることが出来ればその方法を教えてください。
881デフォルトの名無しさん:2011/12/17(土) 00:17:09.67
ウォッチ必要な時は、その程度の面倒の差なんてどうでもいいなぁ。

あと、ローカル変数作った程度じゃ速度への影響は皆無だとしても、無駄な処理してる感がしてどうにも気持ち悪い。
いちいちローカル変数の定義確認してからじゃないと読めなくなりそう。
882デフォルトの名無しさん:2011/12/17(土) 00:23:55.18
>>880
Sharedをつける

Public Shared Sub MyMethod()
End Sub
883デフォルトの名無しさん:2011/12/17(土) 00:24:55.98
.NETでは普通のメソッドと自作のメソッドの違いは一切無いし
インスタンスを作成しないといけないメソッドのほうが普通
884デフォルトの名無しさん:2011/12/17(土) 00:29:01.70
>>880
普通のメソッドのうち、インスタンスを作成してなくても使えるメソッドに「Shared」って付いてないか?
885デフォルトの名無しさん:2011/12/17(土) 00:30:41.55
>>879
微妙だなあ....
まあWithなんてめったに使わないからそれほどWithを擁護したいわけじゃないんだけど
886デフォルトの名無しさん:2011/12/17(土) 00:32:52.71
VBだとモジュールという糞もあるからな
それを普通と言ってるのかもしれない
887デフォルトの名無しさん:2011/12/17(土) 00:58:04.32
Sharedつけたらできました!
どうもありがとー^^
888デフォルトの名無しさん:2011/12/17(土) 13:33:02.41
インスト時に不明なエラーでるけど、どうすればいい
889デフォルトの名無しさん:2011/12/17(土) 13:37:45.54
どうしようもない。
890ビートたけし:2011/12/17(土) 14:26:59.79
>>885
DB系アプリ作っていると、頻繁に使うよ。
891デフォルトの名無しさん:2011/12/17(土) 14:30:14.69
無いなら無いで別に困らない
実際用途がだいたい同じC#では検討の結果不要ということで削られたんだし
892デフォルトの名無しさん:2011/12/17(土) 14:54:01.44
VBでブロックをでっち上げる事ができるという利点も無くはないかな。
C#だと{}で囲めば済む話なんだけど。
893デフォルトの名無しさん:2011/12/17(土) 15:46:31.16
これから何をしようとしたか思い出せない助けて
894デフォルトの名無しさん:2011/12/17(土) 16:36:28.80
とりあえず一発抜いとけ
895デフォルトの名無しさん:2011/12/17(土) 18:41:20.69
>>890
だよね
896デフォルトの名無しさん:2011/12/17(土) 19:22:00.69
SqlCommand の中身とか、With なしに書きたくない
.Parameters.AddWithValue 〜 の羅列
897デフォルトの名無しさん:2011/12/19(月) 16:26:00.47
毎度お世話になります。

現在、リストボックスとMDBをつなげて表示している項目がありますが、以下の条件の時にループでリストボックスで
選択されている項目のvaluemember値を取得してデータテーブルに格納したいのですが、うまくいってません。

1.リストボックスにはAテーブルがデータソースとして指定
2.リストボックスのvaluememberにはAテーブルの固定資産IDというフィールドが連結
3.リストボックスのSelection Modeは、MultiSimpleで複数選択出来る状態

この時以下のようなループを描いてます。

For i = 0 To ListBox11.SelectedItems.Count - 1
varTemp = ListBox11.SelectedValue
  
  以下、varTempの値を用意してあるデータテーブルに格納するルーチン

Next

しかし、1個目に選択した値だけが選択されつづけて、データテーブルにはその固定資産IDが何列も入ってしまい
ました。どのようにしたら、リストボックスから複数選択した値をループで取得できるのでしょうか?
898デフォルトの名無しさん:2011/12/19(月) 16:45:03.27
どうしてListBox11.SelectedValueがループ毎に変わっていくと思ったのだろ
SelectedItems(i)
カウンタ不要ならFor Each varTemp In ListBox11.SelectedItems
899デフォルトの名無しさん:2011/12/19(月) 16:58:16.70
>>898
両方トライしてみました。

前者の場合、エラーが出て値を取得できませんでした。
エラー:型 'DataRowView' から型 'String' への変換は無効です。

後者の場合、値は最初の1つ目は取れてもその後延々とループしつづけてしまいました。
900デフォルトの名無しさん:2011/12/19(月) 17:24:27.62
>>898
考え方を変えてみて以下のコードで実験してみました。

For Each Row3 As DataRowView In ListBox11.SelectedItems
MessageBox.Show(Row3("固定資産ID"))
Next

無事、取得することができました。

煮詰まっていて、おかしな質問してしまい申し訳ありません。
901デフォルトの名無しさん:2011/12/20(火) 09:15:04.12
>>898
お陰様で、リストボックスをうまく使えるようになり、実装できました。本当にありがとうございます。
ウィザードフォームに組み込んで今は使っています。

http://www.rupan.net/uploader/download/1324340046.jpg
902sage:2011/12/21(水) 11:20:37.78
ゼミの課題でVBの課題出されたんだけど全然わからん…
http://www1.axfc.net/uploader/File/so/72943
ここに問題上げたんだけど誰かおしえてもらえんでしょうか…
903デフォルトの名無しさん:2011/12/21(水) 11:37:07.81
>>902
宿題スレへ
904デフォルトの名無しさん:2011/12/22(木) 02:29:09.12
VB2008ExpressEditionでつくったアプリケーションを、Windows Phone で使えますか?
905デフォルトの名無しさん:2011/12/22(木) 03:29:08.71
使えない。専用の開発環境が必要。
一応VBは使えるけどSilverlightだからほとんど互換性ないしサンプルも少ないからC#の方がいいよ。
906デフォルトの名無しさん:2011/12/22(木) 12:45:33.68
文字列を半角とか全角に変換する目的のメソッドや関数は
StrConv以外にありますか?
907デフォルトの名無しさん:2011/12/22(木) 14:43:47.81
.NETの文字列はUnicodeだからそんな概念は存在しない
ブイビーでは互換性用に残ってるだけ
908デフォルトの名無しさん:2011/12/22(木) 19:24:20.15
Windows APIにLCMapStringって関数があるよ
やってることはStrConvとほぼ同じ。ていうかStrConvは内部でLCMapStringを使ってる。

VB.NETから使うメリットは全くないが、
C#ならStrConvの為にMicrosoft.VisualBasicをusingする必要が無くなるかも
909デフォルトの名無しさん:2011/12/23(金) 00:00:30.28
ビルドしたときに、Debugフォルダしか作成されず、Releaseフォルダが作成されません。

原因がわかりません。設定方法がまずいんでしょうか?
910ビートたけし:2011/12/23(金) 09:29:12.09
>>909
releaseフォルダを指定していない 
911デフォルトの名無しさん:2011/12/23(金) 13:25:58.14
リリースビルドをちゃんとしてるのに生成されないんです
912デフォルトの名無しさん:2011/12/23(金) 13:37:51.03
Releaseの構成が、Releaseフォルダを作成する設定になっているとは限らない。
913デフォルトの名無しさん:2011/12/23(金) 15:35:18.64
プロジェクトごとに毎回設定する必要があるのですかね?
試してみたら、毎回設定しないといけないようみたいなんですけど。
914デフォルトの名無しさん:2011/12/24(土) 20:07:15.66
つかそれVisual Studioの設定の話だし
VSのスレ行って聞けよ
915デフォルトの名無しさん:2011/12/25(日) 00:13:38.80
dtは配列変数です。
このとき、下に書いてある違いは何でしょうか?
添え字をつける、つけないにより何が変わるのでしょうか?

dt = New Integer(2){10,20,30}

dt = New Integer( ){10,20,30}
916デフォルトの名無しさん:2011/12/25(日) 00:28:39.00
何も変わらない
変更時の手間が増えるだけだから付けなくていい
917デフォルトの名無しさん:2011/12/25(日) 04:33:20.57
約数と因数は同じらしいけどなんでわざわざ2つの言葉を用意したん?
918デフォルトの名無しさん:2011/12/25(日) 08:06:59.65
http://nyannyan3.minidns.net/up/2011_12_25a-DragonNight.png
C:\tempのとこお
実行時に
C:\2ch
に書き換えて
アプリを終了して
次回起動した時に
C:\2chが表示されているようにするにはどのファイルにどんなコードで保存して次回どのように読み込めば
919デフォルトの名無しさん:2011/12/25(日) 09:34:47.93
>>918
TextBoxのプロパティ - ApplicationSettings - PropertyBinding で
Textにアプリケーション設定をバインディングしておくのが一番楽。
920デフォルトの名無しさん:2011/12/25(日) 10:07:54.13
Bindの英単語意味は中学でならわなかった
921デフォルトの名無しさん:2011/12/25(日) 10:16:43.53
PropertyBindingで保存されるタイミングは
TextChange時か
FomrClose時か

922デフォルトの名無しさん:2011/12/25(日) 12:32:22.45
TextChangedの方だな。そこら辺の処理はコントロール単位で完結してる。
同じ設定にバインドしたTextBoxを二つ並べれば解り易いな。
923デフォルトの名無しさん:2011/12/25(日) 13:10:38.76
このPropatybindingってテキストボックスの規定値としてつかえないかな?

Accessだとプロパティで持ってるから、便利でForm load時に規定値を変更したりするケースでは便利なのだが
924デフォルトの名無しさん:2011/12/25(日) 13:17:52.95
propaty....

普通に出来ますよ。
使えないかな、とか書く前に試してから質問したらいいののに。
俺には精神分析の対象としか
925デフォルトの名無しさん:2011/12/25(日) 13:41:59.99
VB.NETからローカルデータベースをつくったけど
どのような接続文字列を書けばいいのかしら
926デフォルトの名無しさん:2011/12/25(日) 13:46:37.75
冬休みオソロシス…
927デフォルトの名無しさん:2011/12/25(日) 13:56:01.35
〜ConnectionStringBuilderってあるから、それ使っとけ。
928デフォルトの名無しさん:2011/12/25(日) 14:43:53.18
なんかまだつなげれられないネットもさがしてるのに
http://homepage2.nifty.com/inform/vbdb/
929デフォルトの名無しさん:2011/12/25(日) 15:37:56.06
SE出版の独習VB2008は神!
930デフォルトの名無しさん:2011/12/25(日) 16:12:26.81
エラーがでちゃう

Dim Conn As SqlConnection

'Data Source=|DataDirectory|\Database1.sdf
Conn = New SqlConnection("Initial Catalog=Config;Data Source=C:\001\Database1.sdf;Integrated Security=SSPI;")

Dim myCmd As SqlCommand
myCmd = Conn.CreateCommand
myCmd.CommandText = "SELECT * FROM Config"

'Open the connection.
Conn.Open()
931デフォルトの名無しさん:2011/12/25(日) 17:01:47.44
Linq使えば
932デフォルトの名無しさん:2011/12/25(日) 19:59:47.53
>>625
ローカルって事はテーブルは既にあるんだからそのテーブルに対してLINQでアクセスすればいい
おれ自身10年以上前にVB4で組んだのを最後に1ヶ月ほど前から超久々にVB.NET使い始めた初心者だが
ググル先生だけでもそのぐらいは調べられるぞ

Dim L = From i in DT Where i("Column1")="ggrks"
For A as Integer = 0 to L.Count - 1
MsgBox(L(A)("Column2"))
Next A

これでDTというDataTableからColumn1の値がggrksのレコードを抽出して
MsgBoxで抽出したレコードの中のColumn2の値を表示してくれる
933デフォルトの名無しさん:2011/12/25(日) 21:11:43.39
dim構文が良く分かるhpくれ…
初心者だ…

全くと言っていいほど仕組みが分からん
かく意味あるのか…
934932:2011/12/25(日) 21:12:21.62
×625
>>925
すまん
935932:2011/12/25(日) 21:16:58.58
936デフォルトの名無しさん:2011/12/25(日) 21:28:47.08
初心者だって威張る奴は何教えても聞きゃしないから
937デフォルトの名無しさん:2011/12/25(日) 21:44:42.53
dim private
ディムとプリベイトはおなじなのかね
938デフォルトの名無しさん:2011/12/25(日) 21:58:22.03
なんだ消防か
939デフォルトの名無しさん:2011/12/25(日) 22:25:10.00
Dim Cmd As SqlCommand
のCmdを使い終わったとすると
Cmd.Dispose()
を書かなくても良いんだろうか
940デフォルトの名無しさん:2011/12/25(日) 22:29:44.69
Disposeは必要でも普通に書いちゃいけません
Usingを使ってください
941デフォルトの名無しさん:2011/12/25(日) 22:41:56.15
それもどうなの。
いつでもローカルのブロック内の寿命でよいとは限らないよ。
何いってんの。
942デフォルトの名無しさん:2011/12/25(日) 23:01:24.00
VB2008で、PostgreSQLにADO.NETで接続は可能ですか?
943デフォルトの名無しさん:2011/12/25(日) 23:08:56.91
>>942
可能
944デフォルトの名無しさん:2011/12/25(日) 23:32:22.08
ありがとうございます。
近々、PostgreSQL始めるんですが、リファレンスブックに、アクセスやオラクルへの接続文は載ってましたが、PostgreSQLがなかったので、心配していたのです。
945デフォルトの名無しさん:2011/12/26(月) 06:10:03.92
ゆーじんぐつかうといれこになってめんてなんすせいがさがっちゃうぢゃん
Using Conn As SqlConnection
Using Cmd As SqlCommand
Using なんたら
Using 2ch
End Using
End Using
End Using
End Using
946デフォルトの名無しさん:2011/12/26(月) 07:32:02.61
ああやっぱり馬鹿か
using xxx as xxx,yyy as yyy,…
end using
で済むのに
947デフォルトの名無しさん:2011/12/26(月) 08:28:20.10
using使う奴はクビ
948デフォルトの名無しさん:2011/12/26(月) 08:44:33.73
バッファ内のバイナリ値を16進数表現の文字列に変換する便利な機能ってあるでしょうか?
949デフォルトの名無しさん:2011/12/26(月) 09:22:55.00
BitConverter.ToString
950デフォルトの名無しさん:2011/12/26(月) 09:38:52.11
>>925 自分の場合のテンプレートは以下の通り

接続準備
'カレントフォルダのbase.accdbに接続する
Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _
"provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & apppath & "\base.accdb;")
Dim SQLCm As OleDb.OleDbCommand = cn.CreateCommand
テーブル接続
'テーブルの接続および一時データ格納用のデータレコードの準備
dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM " & accdbtable & " WHERE patternid =" & selectptn, cn)
dAdp.Fill(dSet, "a_settings")
dTblasset = dSet.Tables("a_settings")
データテーブルへデータを入れた後に・・・・SQLで流し込む
'インサート用SQL文組み立てと実行
Dim SQL As String = ""
cn.Open()
For Each Row As DataRow In dtbl.Rows
SQL = "INSERT INTO " & accdbrepay & "(patternid, assetid, repayday, repaycost, nendo, assettype) VALUES ("
SQL &= Row("patternid") & ", " 'パターンID
SQL &= "'" & Row("assetid") & "', " '固定資産GUID
SQL &= "'" & Row("repayday") & "', " '減価償却年月日
SQL &= "'" & Row("repaycost") & "', " '減価償却費
SQL &= "'" & Row("nendo") & "', " '年度
SQL &= Row("assettype") '固定資産タイプ
SQL &= ")"
'データベースへ反映
SQLCm.CommandText = SQL
SQLCm.ExecuteNonQuery()
Next
SQL = Nothing
951デフォルトの名無しさん:2011/12/26(月) 09:41:08.49
>>924
いろいろ試してみてたのですが、ボキャブラリがなくてぐぐっても探し当てられませんでした。

大変有難うございます。
これで、作成パターン毎にプリセットを変更して規定値を書き換える仕組みを作れます。
952デフォルトの名無しさん:2011/12/26(月) 09:47:19.92
ローカルデータベースってなんだべ?
.netがDBを持ってるのかい?
953デフォルトの名無しさん:2011/12/26(月) 10:20:45.83
>>949
ありがとう
954デフォルトの名無しさん:2011/12/26(月) 10:23:01.18
>>950
どこの住基システムか知らんが
ひどい点プレだな

パスワードはJUKI/JUKIとか、そーいう風な運用してるところだろ
955デフォルトの名無しさん:2011/12/26(月) 11:13:09.33
>>954
何がどう酷いのか良かったらコメントお願いできますか?
956デフォルトの名無しさん:2011/12/26(月) 11:15:38.19
まず超初歩のSQLインジェクション
957デフォルトの名無しさん:2011/12/26(月) 11:27:14.55
>>956
自分の場合、ローカルの単体アプリとして利用しているケースでも、SQLインジェクション対策
は必要となりますか?

ウェブサービス等では、必要だと考えていますが。

あ、ちなみにこのテンプレはとある計算機のプログラムです。計算して、計算結果をCSVとして
吐き出すことを目的としてます。
958デフォルトの名無しさん:2011/12/26(月) 11:40:07.45
>>957
まあ必要ないならいいけど
でもね
・SQLを毎回文字列で組み立ててたらSQLが毎回コンパイルされて遅い
・そのプログラムをウェブサービス化するかもしれない
等考えるとほんのひとてまを惜しむのはどうかと思う
書き捨て一回実行するだけ
とかならいいけど
959デフォルトの名無しさん:2011/12/26(月) 11:51:28.30
>>958
なるほど。

人の質問に乗る形で問いてしまいましたが、参考になりました。ありがとうございます。

SQL実行のスピードに関しては確かに現在でも気になってはいます。
減価償却費の計算や借入金償還の計算など、1件240レコード程度を50件程度= 12000件
個数が多くなればそれだけ遅くなる。

SQL組み立てが一番早いと思っていました。
Accessの場合、DAOでフィールドを予め指定で固定化させた上で直接流し込んでいたので、
それほどでもなかったのですが、SQL組み立て以上に早いテーブルへのデータINSERT方法があ
ったりするのでしょうか?
960デフォルトの名無しさん:2011/12/26(月) 13:08:26.00
>>959
パラメータクエリでググってくれ
961デフォルトの名無しさん:2011/12/26(月) 13:17:13.08
>>957
> 自分の場合、ローカルの単体アプリとして利用しているケースでも、SQLインジェクション対策
> は必要となりますか?

悪意の有無じゃなくて
バグを放置していることに気がついてないのか
962デフォルトの名無しさん:2011/12/26(月) 13:20:54.96
個人がローカルで使うシステムならまだしも
そんな糞コードに役所がカネ払ってるとか

姉歯設計よりひどい
「インジェクション対策」なんて仕様書に明記されなくても
職業プログラマなら、勝手にやっとくのが当たり前

そこが素人との違いな
963デフォルトの名無しさん:2011/12/26(月) 13:39:45.35
>>962
役所というのは意味がわからないのですが?

第一、自分は職業プログラマじゃありませんし、何か誰かと勘違いしてませんか?

>>960
ちょっと探してみます。
964デフォルトの名無しさん:2011/12/26(月) 13:49:03.96
ああ、どっかの会社の固定資産台帳の話かい
それなら、SQL文を繋げてやればいいじゃん

糞プログラマを雇ってる会社が自業自得の結果になるだけだし
965デフォルトの名無しさん:2011/12/26(月) 13:50:47.97
おまいらカリカリしすぎ
風俗でもいってすっきりしてこい
966デフォルトの名無しさん:2011/12/26(月) 14:01:31.83
>>964
先程から、勝手な思い込みをし、そして、勝手な解釈をし、挙句には糞プログラマ
と勝手に吠えているあなたは、何様のつもりなのかお聞かせ願えますか?

それともここでは質問者を罵るのがローカルルールってことで?
967デフォルトの名無しさん:2011/12/26(月) 14:05:04.97
>>965
まぁ、おまえら っていうか、>>964=>>954の一人相撲でしょ?

住基システムとか文脈にない事を話し初めて、最後には糞でしょw
968デフォルトの名無しさん:2011/12/26(月) 15:21:32.40
あんなのを点プレにしてるのなら糞だろ
似たようなコードが書かれてて、辛うじて動いているシステムが目に浮かぶ
969デフォルトの名無しさん:2011/12/26(月) 16:43:46.73
うちはSQLインジェクションって言葉を知ってるのいなさそうw
なので余裕でSQL文を結合しまくり
うぇ
970デフォルトの名無しさん:2011/12/26(月) 17:08:39.95
SQL文を結合するほうが、考えないといけないことが増える
’(アポストロフィ)が入ったときの制御とか

パラメータにしてエンジンに丸投げがラクでいい
971デフォルトの名無しさん:2011/12/26(月) 20:16:28.44
お前らわかったような事言ってるが、テーブル名をパラメータ化する方法あんのか?
972デフォルトの名無しさん:2011/12/26(月) 20:26:28.74
テーブル名はアレだが IN (@p1,@p2,@p3・・・) は、もっとスマートにパラメータ化したいね
973デフォルトの名無しさん:2011/12/26(月) 20:44:38.78
Declare Function GetPixel Lib "gdi32" (ByVal hdc As IntPtr, ByVal X As Int32, ByVal Y As Int32) As Int32
でのIntの戻り値を効率よくcolor構造体に変換かもしくはRGBそれぞれの値に変換するのはどうやればいいのでしょうか?
本当にど初心者な質問だと思うのですがよろしくお願いします
974デフォルトの名無しさん:2011/12/26(月) 20:51:49.54
ビット演算
ColorTranslator.FromWin32
975デフォルトの名無しさん:2011/12/26(月) 21:14:06.68
32bitイメージを256色pngで出力する方法ある?
976デフォルトの名無しさん:2011/12/26(月) 21:45:02.65
ACCESSのパラメータは今も@じゃなく?をつかうん?
977:2011/12/26(月) 22:26:38.57
自分でもよくまだ理解できていない点があります。

以下のようなフローの時には、同時実行違反が発生するのはなぜでしょうか?

textbox0.textに手動で値を入力後・・・
(現在テキストボックスにあるデータを一旦保存する)

Me.Validate()
Me.okekeBindingSource.EndEdit()
Me.okekeTableAdapter.Update(Me.Baseset)

(ここでウィザードのようなウィンドウを呼び出し値をもらう)

me.textbox1.text = ウィザードからの値

(再度保存する)
Me.Validate()
Me.okekeBindingSource.EndEdit()
Me.okekeTableAdapter.Update(Me.Baseset)

すると、UpdateCommand云々で同時実行違反と怒られました。
なぜなのでしょうか?

ウィザードにはキャンセルのためのロジックがあるので、キャンセルされ
た場合には、再度保存という手順を行わないようになっています。
978デフォルトの名無しさん:2011/12/26(月) 22:28:34.42
>>975
WPFのPngBitmapDecoder
979デフォルトの名無しさん:2011/12/26(月) 22:38:55.84
>>978
うーんwpfか…
ともあれありがと
980デフォルトの名無しさん:2011/12/27(火) 17:42:28.14
行き詰りました・・・

文字列 "F0FF0F" から byte配列 {240, 255, 15} を取得したいのですが
上手く取得する方法を教えてください。
BitConverter のメソッドで可能?
981デフォルトの名無しさん:2011/12/27(火) 18:42:24.34
細かい要件がわからんので適当に
Dim str = "F0FF0FF"
Dim bytes = New Byte(CInt(Math.Floor(str.Length / 2 + 0.5)) - 1) {}
For i As Integer = 0 To bytes.Length - 1
 Dim len = 2
  If (str.Length < i * 2 + len) Then
   len = 1
  End If
  bytes(i) = Convert.ToByte(str.Substring(i * 2, len), 16)
Next
982デフォルトの名無しさん:2011/12/27(火) 20:03:26.95
>>981
目的のことができました。
ありがとうございます!
983デフォルトの名無しさん:2011/12/27(火) 23:41:19.24
textboxのスクロールバーの色やスタイルを変えることってできますか?

また、
TextBox内のデータをタッチしてスクロールする方法
http://code.msdn.microsoft.com/WPF-howto-2bf0426c/
に書かれてることをvb.netのtextboxでやりたいんですが、わかる方教えてください。
お願いします。。
984デフォルトの名無しさん:2011/12/28(水) 00:10:08.85
悪いこと言わないからWinFormsでそういうのは諦めろ
地獄だから
985デフォルトの名無しさん:2011/12/28(水) 00:53:15.95
まあ、スクロールバーなんか自分で実装してもそれほど手間とも思えんけど...
ドラッグしてスクロールも。
986デフォルトの名無しさん:2011/12/28(水) 09:19:00.06
>>983
SetScrollInfoとかAPI使うのが簡単じゃない?
WPFコントロールをWinFormsに配置云々は知らない
987デフォルトの名無しさん:2011/12/28(水) 09:46:39.37
>WPFコントロールをWinFormsに配置
ElementHostでできるよ
重いから、やるんなら一画面丸ごとくらいの単位の方がいいけど
988983:2011/12/28(水) 16:54:40.19
ありがとうございます。
やはり、スクロールバーなしでtextboxの中をマウスでスクロール?的な事は不可能ですかね〜〜
989デフォルトの名無しさん:2011/12/28(水) 19:23:36.57
PDFみたいに掴みたいの?
990デフォルトの名無しさん:2011/12/28(水) 22:11:23.50
Using Conn As System.Data.SqlServerCe.SqlCeConnection
End Using
どこがまちがってる?
991デフォルトの名無しさん:2011/12/28(水) 22:25:53.39
お前の態度が....
無い物はDisposeしようがないだろ
992デフォルトの名無しさん:2011/12/28(水) 22:29:16.50
Usingのつかかたがよーわからん
993デフォルトの名無しさん:2011/12/28(水) 22:32:59.87
Dim だとエラーでないにょ
Dim Conn As System.Data.SqlServerCe.SqlCeConnection
994デフォルトの名無しさん:2011/12/28(水) 22:49:53.11
ローディング中に画像を出したいんだけど、どうすりゃいいの?
995デフォルトの名無しさん:2011/12/28(水) 22:53:36.40
>>994
BackgroundWorker を使いなさい
996デフォルトの名無しさん:2011/12/28(水) 23:35:48.07
データーリーダーのHasRowsがつかえないデーターベースのばあいに
Select 〜 from 〜 Where 〜 = 〜
で行が取得されたかされないかをしらべるにはどーしゅればぁ
997デフォルトの名無しさん:2011/12/28(水) 23:43:32.36
Readしてみればいいんじゃない
998デフォルトの名無しさん:2011/12/28(水) 23:44:32.57
立てた
テンプレはテキトーに頼む
http://toro.2ch.net/test/read.cgi/tech/1325083428/
999983:2011/12/29(木) 01:06:01.63
>>989
そうです〜〜
できませんよね?
1000デフォルトの名無しさん:2011/12/29(木) 04:42:44.18
>998
おつ

VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。