VB.NET質問スレ (Part24)

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ

VB.NET質問スレ
http://pc11.2ch.net/test/read.cgi/tech/1189038267/
(Partがありませんが、23です。)
テンプレは2〜5くらいまでの間にある予定
2デフォルトの名無しさん:2007/12/13(木) 10:04:18
MSDN
http://msdn2.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://uchukamen.com/
.NET TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
じゃんぬねっと
http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
http://dotnetfan.org/
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
3デフォルトの名無しさん:2007/12/13(木) 10:04:48
CodeProject
http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.winapi-database.com/
4デフォルトの名無しさん:2007/12/13(木) 10:05:19
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
http://custom.programming-in.net/
CodeZine
http://codezine.jp/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
(VS2005) http://www.microsoft.com/japan/msdn/thisweek/300x10/
(VS.NET 2003) http://www.microsoft.com/japan/msdn/thisweek/wednesday/
PAPA'n VB
http://papanvb.i-love-vb.net/
(旧コンテンツ) http://www.mitene.or.jp/~sugisita/index_old.html
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html
5デフォルトの名無しさん:2007/12/13(木) 11:47:34
前スレ>>997
ありがとうございます。
やはり無理そうなので>>994のような処理に修正していこうと思います。

どうもありがとうございました。
6前スレ959:2007/12/13(木) 12:51:49
DataGridViewで特定セルのみをコンボボックスにする件ですが、解決しました
前スレ959の例の場合、

With Me.DataGridView1
  .ColumnCount = 2
End With

With Me.DataGridView1.Rows
  .Add("名前", "山田太郎")
  .Add("性別", "男性")
  .Add("血液型", Nothing)
  .Add("生年月日", "1988/12/30")
  .Add("趣味", "ウインドサーフィン")
End With

Dim blood As New DataGridViewComboBoxCell
Call blood.Items.AddRange(New String() {"A", "B", "O", "AB"})
Me.DataGridView1.Item(1, 2) = blood


これで目的は達成できました。
一応報告まで。
7デフォルトの名無しさん:2007/12/13(木) 13:22:36
ポイント単位でのラグランジュ関数での画像拡大プログラミングをおねがいします
8デフォルトの名無しさん:2007/12/13(木) 16:57:41
前スレの989です。

解説ありがとうございました。
あのサンプルコードを参考にとりあえず、サーバとクライアントを作ってみたいと思います。
ありがとうございました。
9デフォルトの名無しさん:2007/12/13(木) 20:25:17
お願いってどういういみだ?
10デフォルトの名無しさん:2007/12/13(木) 20:43:26
御値買い
11デフォルトの名無しさん:2007/12/14(金) 00:54:30
VB.NETでつくったDLLをCreateObjectで参照せずに動的にオブジェクト作りたい時ってどうすればいいんでしょうか?
ちなみに2005です
12デフォルトの名無しさん:2007/12/14(金) 01:05:49
Assembly.Load
あとはCreateInstance
13デフォルトの名無しさん:2007/12/14(金) 01:16:41
>>12
なるほど!
Reflection使って BindingFlags.CreateInstanceであるオブジェクト作ったり関数呼んだりするわけですね

てっきりASPの時の癖が抜けず CreateObjectで行けるもんだと思っていたのですが
こっちのほうがよさそうです!!

ってことは・・・CreateObjectはCOM以外には使えないという感じなのでしょうか?
後学の為にも知ってはおきたいものですが・・・
14デフォルトの名無しさん:2007/12/14(金) 01:34:24
というかそもそも CreateObject は COM オブジェクトを作るもんだ
まあ .NET でも COM にクラス公開できるけど
15デフォルトの名無しさん:2007/12/14(金) 01:41:43
>>12>>14
わざわざありがとうございます!
やっぱ使い分ける必要があると・・・

まぁ過去の資産使ったりしない限りCOMはありえないとおもいますし
.NETでCOM作るのも互換の為くらいしか安い頭では思いつかないのであまり使うことがなさそうな感じですね

あとはアドインとかがパっとおもいつきますか・・・
まぁ一回くらいは何かごとの時の為に練習でCOM作っておこうかな・・・
16デフォルトの名無しさん:2007/12/14(金) 11:55:39
未来のないPG諸君、今日もITドカタでかぁ〜〜〜

ゲラゲラゲラゲラ〜〜〜〜〜〜〜〜
17デフォルトの名無しさん:2007/12/14(金) 13:47:32
毎度お世話になります。
自作コントロールなどで、特定のプロパティをデザイナのプロパティウィンドウには表示させないようにしたいのですが、可能でしょうか?
環境はVB2005です。
どなたかご教示宜しくお願いします。
1817:2007/12/14(金) 14:03:04
自己解決しました。
プロパティウィンドウに出さない場合:Browsable(False)
インテリセンスに出さない場合:EditorBrowsable(Never)
これでうまくいきました。
19デフォルトの名無しさん:2007/12/14(金) 16:36:56
質問なのですが、
ツリービューコントロール(チェックボックス表示)でデータを表示したいのですが、
大量にあるのでデータベースから読み込んで表示したいと思います。
それでそもそものデータベースからの取得の方法が分からないのでご教示いただければと思います。
「ツリービュー データベース DB」などで検索もかけたのですが求めているのが無くて・・・。
ASP.NETでの読込とかは発見したのですが、これはウェブとかで使う場合ですよね?
宜しくお願い致します。
20デフォルトの名無しさん:2007/12/14(金) 17:07:43
データベースは何を使っている。
データベースから何を読み込んでどうツリービューに反映したい。
以上を答えてくれ。
21デフォルトの名無しさん:2007/12/14(金) 17:39:20
>20
データはCSVを読込たいと思います。
データは
種類 種類2  説明
猫  シャム  高級
猫  とら   しましま
犬  しば    日本
犬  シベリアン 外国
みたいな感じで
表示は
レ 猫
  Lレしゃむ
  Lレとら
□ 犬
  L□しば
  Lレシベリアン
です。チェックを付けた項目の種類・種類2・説明を取得し、
テーブルを組んでワードへ貼り付けられるようなものを作成したいと思います。
データグリッド→データベース(この時はmdb)からチェックリスト作成というのは出来たのですが
ツリービューの場合どうしたらいいのかわからなくなりました。
親ノードをチェックすると子もチェックが入る、折り畳みができるというところで
ツリービューのチェックリストだと見た目もすっきりするのではと思ったのですが、
壁にぶつかった次第です・・・。


22デフォルトの名無しさん:2007/12/14(金) 21:39:21
23デフォルトの名無しさん:2007/12/14(金) 22:03:44
>>21
DB云々じゃなくて、ツリービューの知識仕入れればいいんじゃねーの?
24デフォルトの名無しさん:2007/12/14(金) 22:13:54
データベースからの読み込みが分かりません。
読み込むのはCSVです。





ポ?
25デフォルトの名無しさん:2007/12/15(土) 02:11:57
文系の人は新聞や雑誌の束でさえデータベースと言い放つ
俺ら情報系にしたらRDB以外はデータベースと認めないからなぁ
26あにす ◆sGTL1yK0.6 :2007/12/15(土) 02:51:08
27デフォルトの名無しさん:2007/12/15(土) 11:42:10
RDBしかデータベースと認めないってどんな情報系だよっ
28デフォルトの名無しさん:2007/12/15(土) 11:45:23
そんな情報系です
29デフォルトの名無しさん:2007/12/15(土) 22:58:40
pictureboxの画像の上にボタンを配置したいのですが、座標を画像と被らせると表示されません
どうしたら表示順序の優劣を設定できるのでしょうか?
30デフォルトの名無しさん:2007/12/15(土) 23:03:39
age
31デフォルトの名無しさん:2007/12/15(土) 23:14:46
BringToFront
32デフォルトの名無しさん:2007/12/16(日) 00:21:25
>>31
ありがとうございました
33デフォルトの名無しさん:2007/12/16(日) 18:42:10
毎度お世話になります、質問させてください。

いくつかボタン等のコントロールを持つフォームがあり、それを継承したフォームを作成するとします。
この時、継承元フォームで各コントロールのModifiersプロパティをProtected Friend以上にすると、継承先のほうでコントロールのプロパティ等が自由に変更できて便利です。
ただこうすると、コントロールの表示位置やサイズまでもが自由に変更できてしまいます。
これをさせたくない場合、どのようにしたらよろしいでしょうか?

Lockedプロパティがそのまま継承先でも引き継げればベストだったのですが、元の方でLocked = trueにしても、先の方ではFalseに戻ってしまうようです。
34デフォルトの名無しさん:2007/12/16(日) 21:22:15
単純には無理じゃないの?
位置や場所だってプロイパティのひとつでそ。
35デフォルトの名無しさん:2007/12/16(日) 21:28:21
そもそもコントロールのフィールドを外部に公開するのが間違いだろ
外に見せたいプロパティだけ自分のクラスに定義したプロパティを通して触らせるべき
36デフォルトの名無しさん:2007/12/16(日) 21:30:52
ここはVBスレ
37デフォルトの名無しさん:2007/12/17(月) 00:21:35
>>36
寝起き乙
38デフォルトの名無しさん:2007/12/17(月) 00:36:16
??
39デフォルトの名無しさん:2007/12/17(月) 07:19:56
デフォルトでコントロールが外から参照可になっているのも
鬱陶しいのだけど、あれはデフォルトで不可にできないのかな
4033:2007/12/17(月) 09:24:56
>>34
例えばプロパティをShadowsで被せて丁度>>18にあるような方法を使えば隠すことはできます。
ただマウスで移動やサイズ変更を防ぐことができないのです。
で、Lockedが引き継げれば〜ということを書きました。

>>35
今回プロパティに絞って質問したけど、ModifiersプロパティをProtected Friend以上にすればコントロールをダブルクリックするだけでイベントハンドラも作成できて便利なのです。
要は継承先でもコントロールがWithEventsで扱えるってことね。
プロパティだけなら>>35の言う通りなんだけど、そこは言及しておけばよかった。
ところでProtected Friendなら"外部公開"にはならんでそ。外部の定義にもよるけど。

>>39
デフォルトだとコントロールはFriendで配置されるでしょ?


4133:2007/12/17(月) 09:31:56
例えばLocationChangedやSizeChangedイベントを拾ってデザインモード時のみその変更を不可にする、とか考えたけどコントロールが大量になると効率がわるい。
継承されたコントロールは必ずLockしろ!というのが一番手っ取り早いのかな(´・ω・`)。
ってかなんでLockedだけ引き継がれないのじゃ?
4219:2007/12/17(月) 11:56:32
>23
すみません、こちらでもう少し勉強してみます・・・
どうもありがとうございました。
43デフォルトの名無しさん:2007/12/17(月) 14:29:28
質問です。
アンチエイリアスの掛かっていない画像をピクチャボックス等に表示させる場合、アンチエイリアスをかけて表示させることは可能でしょうか?
解かる方お願いします。
44デフォルトの名無しさん:2007/12/17(月) 15:40:28
もっと具体的にどういう画像にどういう風にアンチエイリアスかけたいのか
45デフォルトの名無しさん:2007/12/17(月) 15:59:33
画像は、白地に黒一色で書いた線画のような感じのものです。
斜線などがジャギジャギしているので、アンチエイリアスを掛けたいのであります。
46デフォルトの名無しさん:2007/12/17(月) 16:42:30
47デフォルトの名無しさん:2007/12/17(月) 16:51:21
それは関係ないだろ
自前で画像処理するしかないんじゃね
48デフォルトの名無しさん:2007/12/17(月) 18:09:16
自分で処理はきびしそうですね!!!
でもそれしかないでしょうね…。
ありがとうございます。
49デフォルトの名無しさん:2007/12/17(月) 18:25:58
PGって本当に将来性のない仕事だね・・・orz

俺転職しよ
50デフォルトの名無しさん:2007/12/17(月) 18:48:03
好きでやってるやつは楽しいから残る
楽しくない奴はとっとと別の職種にいったほうがいいぞ
将来性とか考えてる奴は特になw

俺なんかもう、毎日デスマみたいなもんだけど、楽しくてたまんないぞ
同期も多いが、結局上にあがるのは一部だ
やめたいやつはとっととやめてくれw
51デフォルトの名無しさん:2007/12/18(火) 06:53:33
開発環境 WindowsXPSP2 VB2005
上記の開発環境で開発してます。
下記のようにソースを書きますと、コンボボックスを選択してプルダウンしますと
中身が真っ黒になってしまいます。
解決方法をご存知の方はいらっしゃいますでしょうか?

FormにDataGridViewを貼り付けて実行してください。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim DT As New DataTable("DB")
Dim Col As New DataGridViewComboBoxColumn()
With DT
.Columns.Add("Display", GetType(String))
.Columns.Add("Value", GetType(Integer))
End With
With Col
.DataPropertyName = "DB"
.DataSource = DT
.ValueMember = "Value"
.DisplayMember = "Display"
.HeaderText = "Combo"
End With
With DataGridView1
.AllowUserToAddRows = False
.MultiSelect = False
.Columns.Add(Col)
End With
DataGridView1.Rows.Add()
DataGridView1.Rows.Add()
DataGridView1.Rows.Add()
DataGridView1.Rows.Add()
End Sub
5251:2007/12/18(火) 06:54:06
ソースの続き
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, _
ByVal e As DataGridViewEditingControlShowingEventArgs) _
Handles DataGridView1.EditingControlShowing
Try
If TypeOf e.Control Is DataGridViewComboBoxEditingControl Then
Dim DGV As DataGridView = CType(sender, DataGridView)
Dim DGVCS As DataGridViewComboBoxCell = _
CType(DGV(DGV.CurrentCell.OwningColumn.Index, DGV.CurrentCell.OwningRow.Index), DataGridViewComboBoxCell)
Dim iCnt As Integer
Dim DT As New DataTable("DBTable")

DT.Columns.Add("Display", GetType(String))
DT.Columns.Add("Value", GetType(Integer))
'データテーブルの作成
For iCnt = 0 To 5
DT.Rows.Add(CType(iCnt, String), iCnt)
Next
'データソースを入れ替えて表示する。
DGVCS.DataSource = DT
End If
Catch oExcept As Exception
'例外が発生した時の処理
MessageBox.Show(oExcept.ToString, "例外発生")
End Try
End Sub
End Class
53デフォルトの名無しさん:2007/12/18(火) 09:29:16
EditingControlShowingの度にコンボボックスに値を入れているのはなんでなんだぜ?
なんか意図あるの?
Form1_Loadのほうで、
With DT
.Columns.Add("Display", GetType(String))
.Columns.Add("Value", GetType(Integer))
End With
の後ろにでも
Dim iCnt As Integer
For iCnt = 0 To 5
DT.Rows.Add(CType(iCnt, String), iCnt)
Next
を入れてやればEditingControlShowingの方の処理はいらないと思う。
54デフォルトの名無しさん:2007/12/18(火) 09:43:03
もし、動的にコンボの中身を変える必要があるのなら
'データソースを入れ替えて表示する。
DGVCS.DataSource = DT
の後に
DGV.RefreshEdit()
これでうまくいく。
55デフォルトの名無しさん:2007/12/18(火) 14:33:52
>>53
説明不足ですいません。
54さんが言ってるように動的に数値を入れ替えてるんです。
レスありがとうございます。

>>54
うまくいきました〜〜〜
ありがとうございます!
4日以上悩んでたことが、ここで聞いて3時間+睡眠で解決するだなんて、
ほんとにすばらしい!!

ありがとうございました。
56デフォルトの名無しさん:2007/12/18(火) 16:37:58

いや、よかったな…
57デフォルトの名無しさん:2007/12/18(火) 17:36:52
・・・まぁよかったな・・・
58デフォルトの名無しさん:2007/12/18(火) 17:59:24
>4日以上悩んでた

全SEが引いた

でもまぁ…
解決して…よかったな…うん…
59デフォルトの名無しさん:2007/12/19(水) 02:37:28
>>40
> デフォルトだとコントロールはFriendで配置されるでしょ?

Friend だと他のフォームからも参照できて気持ち悪くない?
設計云々は別にしても、コード書いてるときに候補で余計なコントロールが見えるのが
煩わしかったりしないかな。
60デフォルトの名無しさん:2007/12/19(水) 06:05:36
VB2005です

ある文字列からカナや英数字だけを特定して
取り出すメソッドか関数は無いでしょうか

やりたいことは全角アルファベット、全角英数字、全角カナを含む文字列のうち、
アルファベットと英数字だけをStrConvで半角に変換したいのです
61デフォルトの名無しさん:2007/12/19(水) 06:13:18
正規表現
62デフォルトの名無しさん:2007/12/19(水) 09:36:29
>>56-58
まぁいじめてやんなw
6340:2007/12/19(水) 09:48:40
>>59
ああ、参照可能なだけで気持ち悪いってことか。
VSのデフォはPrivateらしいけど、VBに限ってFriendみたいだね。
VBのデフォもPrivateにする方法は今のところなさそう(軽くしか調べていないけど)
コントロール全部まとめて選択してModifiers=Privateにするしかないかもね。

64デフォルトの名無しさん:2007/12/19(水) 17:34:10

 PGに明日はない、4−50代に気付いておまえらあぼ〜んだ 合掌
65デフォルトの名無しさん:2007/12/19(水) 17:39:42
4-50代でPGから昇格できてないんだったらそれは問題wwww
ウチの会社にも数人いるけどさww
なに、君は自身がないのかね?
6655:2007/12/19(水) 19:59:04
>>56-58
いやぁ、悩んでた理由というかいいわけは。。。
VB6.0からVB2005に環境を変えたからってことにさせてください。
まだVB2005で一本も組み上げてもないんで、
経験値やら、なんやら足りないのはわかってます。

でも、自分も唖然としたOTL
67デフォルトの名無しさん:2007/12/19(水) 20:32:40
VB2005で、CPU使用率等を表示するプリグラムを作成したのですが、
このプログラムを壁紙と一体化したかのような使い方をしたく、
フォームをマウスポインター等が無視するようには出来ないでしょうか。
例えばフォームの下にアイコンがあった場合でも、フォームをスルーしてアイコンをクリック出来る
といったような

初めてプログラムを作成したので、とても低レベルな質問ですが、
ご教示頂けますでしょうか。
68デフォルトの名無しさん:2007/12/19(水) 20:41:07
>>67
とりあえず「プリグラム」をググったらこんなん出ましたw
http://m.calamel.jp/?e=itm&pid=724569



まぁどうせ「プログラム」の打ち間違いなんだろうけどさ…
69デフォルトの名無しさん:2007/12/19(水) 21:59:50
そんなとこ噛みつかんでも('Α`)
70デフォルトの名無しさん:2007/12/20(木) 01:35:38
2005でDirectSoundを使用したいのですが
川田氏のDirectSound活用モジュールは6.0用なので使用できませんでした。
2005用モジュールはありませんでしょうか?

お願いいたします。
71デフォルトの名無しさん:2007/12/20(木) 02:24:07
AudioVideoPlaybackじゃだめなの?
72デフォルトの名無しさん:2007/12/20(木) 02:47:40
VB2005でDataGridViewに表示させているデータを
そのまま同じ内容で別フォームのDataGridViewに表示させたい
のですが、プログラムではどう書けばいいのでしょうか?
73デフォルトの名無しさん:2007/12/20(木) 03:45:31
>>72
同じデータソース指定じゃだめ?
74デフォルトの名無しさん:2007/12/20(木) 06:07:20
mixiニュース

VB2008 アップデート中不具合
「恋人のケータイ盗み見」調査
携帯で似顔絵作成、14億以上
KDDI社長、iPhoneに慎重姿勢
1ペタバイト超えるストレージ
「Firefox 3」のβ2をリリース
ぶったまげ? Winのタッチ機能

            もっと読む
75デフォルトの名無しさん:2007/12/20(木) 09:28:41
>>66
VB6あがりなのはソースの書き方から解かる。
がんばって7以降のVBにも慣れてね!
そして教える側としてこの板に帰ってくるのだ。
76デフォルトの名無しさん:2007/12/20(木) 09:30:51
>>72
DataGridView1.DataSource = DataGridView2.DataSource
ただこれだと片方の内容変えたら、もう片方も変わっちゃうかな?
それが望むカタチではない場合は、適当にCloneでも作ればok
7755:2007/12/20(木) 10:05:20
>>75
ありがとうございます!!

このスレで他の方にレス付けれるよう勉強してきます!
78デフォルトの名無しさん:2007/12/20(木) 11:54:10
>>74
世間一般にはVB=ウィルスバスターなのかね。
たまに検索しててVB2007とか出てきてビックリすることがあるw
そんなのいつ出てたの!?みたいなw
79デフォルトの名無しさん:2007/12/20(木) 14:48:33
SDカード固有の識別番号ってどうやったら取得できますか?
ググったんだけど見つからなかったんで・・・

固定ディスクやCD−ROM、USBメモリは
Scripting.FileSystemObjectを使って取得できたんだけど
SDカードは取得できなかったので
80デフォルトの名無しさん:2007/12/20(木) 17:16:24
>>78
あああ
今の今までマジでVisualBasic2008が出てたのかふーんと思ってたよ・・・orz
なんでmixiにそんなニュースが載ってるのかちょっと違和感があったが・・・
81デフォルトの名無しさん:2007/12/20(木) 18:08:00
質問です。

If sender.Equals(Me.textbox1) Then
  Call MessageBox.Show("textbox1")
ElseIf sender.Equals(Me.textbox2) Then
  Call MessageBox.Show("textbox2")
Else
  Call MessageBox.Show("textbox3")
End If

このコードを

Select Case sender

End Select

の表現で書きたいときはどう書けば良いですか?
よろしくおねがいします。
82デフォルトの名無しさん:2007/12/20(木) 18:32:24
>>81
ベタには出来ないし、そんなくだらないことに下手な工夫を凝らして
Select...Caseつかって分岐しても読みにくい糞コードになるだけ。
素直にIf....ElseIf使うべし。

というか、参照型の変数が参照しているものが同一かどうかを検査するのは
Is演算子を使うんだよ。つまり、

If sender Is Textbox1 Then....のように書く。
83デフォルトの名無しさん:2007/12/20(木) 20:04:43
みんなもう2008に切り替えたんですか?
84デフォルトの名無しさん:2007/12/20(木) 20:05:26
VB2008はアップデート中に不具合が出るそうだしなぁ
85デフォルトの名無しさん:2007/12/20(木) 20:53:38
VBのラムダ式はAction型が使えないの?
Dim Lambda As Action(Of Integer) = Function(i) Console.WriteLine(i)
86デフォルトの名無しさん:2007/12/21(金) 01:04:46
>>80
釣りか?
VB2008ならもう出てるぞ。

ttp://www.microsoft.com/japan/msdn/vstudio/express/
87デフォルトの名無しさん:2007/12/21(金) 01:21:49
>>86
thx
知らなかった
88デフォルトの名無しさん:2007/12/21(金) 01:25:28
オフラインインスコイメージをDVDに焼いてインスコすると
MSDNのインスコ中に10分ぐらい引っかかった
放置して様子見てたらまた動き出したけどなんだったんだ?
アレが不具合か?
89デフォルトの名無しさん:2007/12/21(金) 01:56:28
改訂版 プロフェッショナルVB.NETプログラミング
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/index/index.html

これって.net 1.1ですか?
VB2005の文法を勉強したいんですけど。
90デフォルトの名無しさん:2007/12/21(金) 01:59:19
.NETのバージョンもIDEのバージョンも言語とは直接関係ないな

VB7/8はそんなに変わらんから気にしないでいいよ
もう9が来てるんだし
91デフォルトの名無しさん:2007/12/21(金) 02:02:48
>>90
どうもです。
9260:2007/12/21(金) 05:01:05
>>61
Public Sub hoge()
Dim regex as New Regex(〜省略〜)
Do Until reader.EndOfStream
〜省略〜
field = regex.Replace(reader.ReadLine, New MatchEvaluator(AddressOf RegexMatchEvaluator)).Split(",")
〜かなり省略〜
Loop
End Sub

Private Function RegexMatchEvaluator(ByVal m As Match)
Return StrConv(m.Value, VbStrConv.Narrow)
End Function

一応やりたい処理はできたんですが、こんなコードで良いんですかね?
なにしろ門外漢なもんで・・・
それにしても2008ってデバッグがやたら重くないですか?
93デフォルトの名無しさん:2007/12/21(金) 09:59:56
>>84>>88
釣りだと思うが、不具合がでるっていうソースはどこだ?
本当にでるなら、検討せねばならん
94デフォルトの名無しさん:2007/12/21(金) 11:04:01
釣りだと思ってる人に教える気にはなれん。
調べろ。
95デフォルトの名無しさん:2007/12/21(金) 11:18:51
調べてソースがないから釣りなのか?って聞いてるんだろ。
まさかソースは>>74だとかいわないよな
96デフォルトの名無しさん:2007/12/21(金) 11:24:03
>>95
ソースはこの辺だよ〜
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2574512&SiteID=7

>>94
ココロ狭いな
97デフォルトの名無しさん:2007/12/21(金) 11:25:51
>>93>>95
朝っぱらから釣りだよね?
98デフォルトの名無しさん:2007/12/21(金) 11:27:44
>>93-97
自演に見えてわろた
99デフォルトの名無しさん:2007/12/21(金) 11:38:00
>>1-98
全部自演
100デフォルトの名無しさん:2007/12/21(金) 13:31:48
じゃあ、俺が100ゲット
101デフォルトの名無しさん:2007/12/21(金) 14:55:19
別のウィンドウを開いていてもキーダウンのイベントを拾えるようにしたいんですが
どうしたらよいですか?
102デフォルトの名無しさん:2007/12/21(金) 15:14:03
↑訂正

別のウィンドウにフォーカスしていても
103デフォルトの名無しさん:2007/12/21(金) 15:45:05
どのウィンドウにもキーダウンのイベントハンドラを書く。


そうじゃないよね、聞きたいことは。
GetKeyStateを監視する、とか。
10470:2007/12/21(金) 17:22:12
>>71さん
ありがとうございました
こんな便利な物があったなんて…
勉強します
105デフォルトの名無しさん:2007/12/22(土) 23:40:03
age?
106デフォルトの名無しさん:2007/12/23(日) 21:41:05
すげぇ・・・こっちはまともに攻めてくんか
107デフォルトの名無しさん:2007/12/23(日) 21:42:26
誤爆失礼orz
108デフォルトの名無しさん:2007/12/23(日) 22:35:03
VBの人に質問です。
VBやってみて、C++/C#とどちらがいいですか?
VBでdirectXなどを使えますか?
109デフォルトの名無しさん:2007/12/23(日) 22:59:25
VBの人ですがC#のがすきです
110デフォルトの名無しさん:2007/12/23(日) 23:33:44
質問を。

MSNメッセンジャーをアクティブ状態にしておき、メッセージを受信した際それを読み込み、
メッセージ内にある特定のコマンドを別のアプリケーションへ送るというものを作ろうとしています。

この場合、どのように作ればいいか、どなたかサンプルコードもしくは作り方等、教えていただけませんか?

どなたかよろしくお願いいたします。



自分で作ってみているのですが、そのアプリケーションを起動した後、
メッセンジャーをアクティブにしてメッセージを受け取った時に受信したメッセージを取り込む・・・のあたりがうまくいきません。

クリップボードを利用してみようかと思ってるんですが・・・。
111デフォルトの名無しさん:2007/12/24(月) 00:49:31
初心者ですが質問です

Dim btn As button = sender

というコードを書いたのですが、
senderはオブジェクト型で、渡すには良くない型だとうかがいました。
senderを他の型にして受け渡す方法はあるのでしょうか?

教えてくださると幸いです。
112デフォルトの名無しさん:2007/12/24(月) 01:34:54
>>111
directcast
113デフォルトの名無しさん:2007/12/24(月) 08:40:40
.NETなんてモジュール単位で言語変えられるんじゃないの?
114デフォルトの名無しさん:2007/12/24(月) 09:03:23
それが何か?
115デフォルトの名無しさん:2007/12/24(月) 11:00:34
超初心者ですが質問します。(使用してるのはVB2005)
1メモ帳をForm起動時に読み込む
2ボタンを押すとtextbox&redioboxの内容をメモ帳に保存する

この二つをできるようにしたいのですがわかりません
ネットで探しても、近いものがなかったので教えてもらえないでしょうか?
116デフォルトの名無しさん:2007/12/24(月) 11:18:05
>>115
>1メモ帳をForm起動時に読み込む
どゆ意味?
メモ帳起動させるの?それとも、保存してあるテキストファイルを読み込むの?
117デフォルトの名無しさん:2007/12/24(月) 12:11:29
>>115

ひとまずはスニペットをお勧めする
ファイルストリームとか使うのはその後だ
てっとり早く読みこみたいんだろ?
118デフォルトの名無しさん:2007/12/24(月) 13:56:50
>>108
directXつかうならC++のがいいかもな。
119デフォルトの名無しさん:2007/12/24(月) 14:19:21
>>115
何を焦ってるのか知らんがマルチは良くないぜ

http://pc11.2ch.net/test/read.cgi/tech/1099112351/
の707
120デフォルトの名無しさん:2007/12/24(月) 14:26:56
>>119
何を焦ってるのか知らんがマルチは良くないぜ

http://pc11.2ch.net/test/read.cgi/tech/1099112351/
の709
121デフォルトの名無しさん:2007/12/24(月) 17:07:37
当たり前だが、VB.net2003ってデュアルコアに対応してるよな。
122デフォルトの名無しさん:2007/12/24(月) 17:14:21
>>121
OSが対応してるからその上の層はほぼ無関係
123デフォルトの名無しさん:2007/12/24(月) 17:15:06
>>121
どういう意味だよそれ。
意味がわからん。

VB2003って何のこと?
開発ツールのこと言ってるの?それともそれを使って作られたアプリのこと?
デュアルコアに対応したアプリなんて存在するの?w
124デフォルトの名無しさん:2007/12/24(月) 17:21:47
わざとアホっぽいキャラ演じてるの?
125デフォルトの名無しさん:2007/12/24(月) 17:30:50
>>123
>デュアルコアに対応したアプリなんて存在するの?w
まあ、シングルスレッドのプログラムもデュアルコアCPUでは当然動くけど…、
デュアルコアの性能を引き出すって意味で言えばマルチスレッドのプログラムってことになるのかな…。
126デフォルトの名無しさん:2007/12/24(月) 17:40:59
よくその手の話を聞くけど、マルチスレッドとマルチコアってあまり(いや本当は全然)関係がないと思うよ。
127デフォルトの名無しさん:2007/12/24(月) 17:45:27
>>126
具体的にkwsk
128デフォルトの名無しさん:2007/12/24(月) 18:00:34
負荷をかけても1コアしか使わないってことは無いよね。
129デフォルトの名無しさん:2007/12/24(月) 18:00:43
詳しくって言われてもOSの構造とか俺も素人だしw
でも普通に考えれば、コアが2つや4つになったところで
コンテクストの切り替え無しにスレッドやプロセスが動くわけじゃないんだから。

CPUのMIPS以上の性能向上が期待できるとしたら、コンテクストの切り替えによる
ロスが減った場合だけじゃないの?
130デフォルトの名無しさん:2007/12/24(月) 18:09:03
お前は何を言ってる?
何のためのマルチコアだよw
131デフォルトの名無しさん:2007/12/24(月) 18:10:12
マルチ演算ユニットみたいなのと勘違いしてるんか?
132デフォルトの名無しさん:2007/12/24(月) 18:13:37
>>130
なんか複数のコアで同時にコード(スレッド?)が実行されるから早くなるんだ、
みたいな素朴な考えで物を言ってないか?

当たり前だがWindowsのようなマルチタスクOSはそんな素朴な構造になってないよ。
133デフォルトの名無しさん:2007/12/24(月) 18:17:14
何が言いたいかというと、フリースレッド使ってるからって
同じMIPSならシングルコアでもマルチコアでもパフォーマンスは大差ないはずでしょってこと。
134デフォルトの名無しさん:2007/12/24(月) 18:19:27
全体でみて大枠でそうだからパフォーマンスが向上するといって
それほど差し支えがあるとは思わんがな。

少なくともマルチコアの性能発揮とスレッドは関係ない
よりは正しいと思うが。
135デフォルトの名無しさん:2007/12/24(月) 18:21:13
>>133悪いが具体的に何が言いたいのか分からない。
MIPS値って具体的にどういう意味で言ってる?
136デフォルトの名無しさん:2007/12/24(月) 18:21:15
俺個人がやったことじゃないんだけど、
素数を求めるプログラムをマルチスレッドで書いて、
それをシングルコアのPCとデュアルコアのPCで走らせてかかった時間を比べたら
デュアルコアのPCの方はシングルコアのPCでの結果に比べてかかった時間が1/2になったそうな。

ソースは理系のためのVisual Basic2005実践入門

デュアルコア積んだPC持ってねえし、自分で確かめてないからなんともいえないけど。
137デフォルトの名無しさん:2007/12/24(月) 18:23:44
OSのスケジューラがどの程度賢いのか知らんが、
そりゃそれなりにそういう結果になるだろ。
ってかなるようにコーディングする。
138デフォルトの名無しさん:2007/12/24(月) 18:25:15
>>136
それはさあ、まず同じ処理をフリースレッドを使うコードと使わないコードで書いて、
その二つの処理時間の比がシングルコアの環境とマルチコアの環境で変わるかを
見ないと意味ないんじゃねえの?
139デフォルトの名無しさん:2007/12/24(月) 18:26:53
>>138
そうですね…。
今度暇な時に個人的に比べてみようと思います。
140デフォルトの名無しさん:2007/12/24(月) 18:27:30
>>132何が言いたいのか分からんな。
そんな単純な構造じゃないのは分かるが
だからマルチコアだからってパフォーマンスは向上しない
とでも言ってるの?
一切向上しないならOSのスケジューラが馬鹿すぎるとしか言いようがないが。
141デフォルトの名無しさん:2007/12/24(月) 18:30:38
>>138マルチスレッド活用できるコードになってなかったら
シングルコアの性能しか出ないに決まっとろうが。
少なくとも現状のOSの実行方式じゃ。
142デフォルトの名無しさん:2007/12/24(月) 18:32:34
そこを自動化出来るようになるのはいつだろうな。
少なくとも現状のPCレベルじゃコード側の助けが必須だな。
143デフォルトの名無しさん:2007/12/24(月) 18:35:46
>>141
何を突っかかってるのか意味がわかりませんが。。
人の言ってることと理解してレスしてる?
144デフォルトの名無しさん:2007/12/24(月) 18:38:54
>>138フリースレッドのコード書いたら
シングルコアでもマルチコアレベルで性能向上するって
あり得ると思うのか?
もちろんここではCPU負荷メインの処理って前提だが。

ああひょっとしてそういう事を言おうとしてたのか?
そうは読みとれなかったが…
145デフォルトの名無しさん:2007/12/24(月) 18:41:23
だれも教えてくれないのでもう一度質問します。
VB2005以上ででdirectXでゲームは作れるのでしょうか?
遅いとか早いとかは抜きで。
146デフォルトの名無しさん:2007/12/24(月) 18:42:27
最近ようやくVB6からVB.NETに移ってきたけどこりゃ便利だね。
コードからメニューを自由にデザインできる様になってるのが特に良い!!
147デフォルトの名無しさん:2007/12/24(月) 18:42:45
性能評価では正しく比較する必要があるが、
>>138はそれ以前にマルチコアでのパフォーマンス向上を
はなから否定してるように見えるからな。
148デフォルトの名無しさん:2007/12/24(月) 18:43:05
>>145
作れる。DirectXのSDKインスコしないと無理なのはもちろんだけど。
(他言語の場合でも必要)
149デフォルトの名無しさん:2007/12/24(月) 18:43:19
150デフォルトの名無しさん:2007/12/24(月) 18:44:42
だれか>>133がどういう意味か説明してたもれ
151デフォルトの名無しさん:2007/12/24(月) 18:47:25
勝手に全コア合計の処理能力が同じ場合という
あり得ない前提を持ち出してるように見える。
それ以外じゃ意味分からんから。
152デフォルトの名無しさん:2007/12/24(月) 18:47:28
>>144>>147もすぐに話の文脈を忘れる鶏頭だろ
>>121あたりから順を追って読み返してみろよ。
まあ鶏頭クンは読んでるはなから忘れるかもしれんがw

あのねえ、マルチコア環境はシングルコア環境比でマルチスレッドのコードの
実行効率が向上するのかを問題にしてるんだよ。
だからそれを確かめるには>>138のような実証実験をする必要があるだろうよ。
153デフォルトの名無しさん:2007/12/24(月) 18:52:22
確認するには必要だがな。
しかし、素数計算なんて明らかにCPUオンリーとしか思えない処理では
そんなことを持ち出すまでもなく
シングルコアのマルチスレッドで性能が向上する訳がない。
少なくともマルチコアと比較になるレベルではあり得ない。
そんなの書くまでもなく明らかだと思うが。
154デフォルトの名無しさん:2007/12/24(月) 18:54:23
鶏頭とかどうでもいいが、なんでそんなにマルチコアでの性能向上を否定してるの?
ああ、否定してたやつと別人ならすまんな。
155デフォルトの名無しさん:2007/12/24(月) 18:56:39
>>153
なんかもう病的に馬鹿だなw
だれもそんなこと言ってないってw
156デフォルトの名無しさん:2007/12/24(月) 19:00:39
>>154
あんたはあんたで馬鹿だなw
決して難しくない日本語で簡潔に書いてるんだからちゃんと理解しろよ。
今問題にしてるのは、

・マルチコア環境においては、
・シングルコア環境比で、
・マルチスレッドのコードの実行効率が高いのか

だよ。
そりゃ一般的には最新のマルチコアのCPUは旧世代のCPUより処理能力が高いに決まってるジャンw
誰もそんな話はしてないんだよ。
157デフォルトの名無しさん:2007/12/24(月) 19:04:35
で、それが高くならないと主張してるのか?
158デフォルトの名無しさん:2007/12/24(月) 19:05:52
>>148
ありがとう、これでおいらもVBユーザーに仲間入りする気になったよ。
159デフォルトの名無しさん:2007/12/24(月) 19:07:12
そう、そういうこと。
きっちり実証したわけじゃないけど、高くなるとしたらそのメカニズムがよくわからないよ。
160デフォルトの名無しさん:2007/12/24(月) 19:10:04
>>156
後ろの文が意味分からん。
マルチコアでマルチスレッドでの処理能力が向上するのは
なんていうか、当たり前すぎるっていうか、最初からそれも目的にした技術なんだから。
改めて実験するまでもなく、実証例はいくらでもあるだろ?
161デフォルトの名無しさん:2007/12/24(月) 19:10:50
>>159本気?
162デフォルトの名無しさん:2007/12/24(月) 19:11:51
ひょっとしてほんとに>>151で考えてるの?
163デフォルトの名無しさん:2007/12/24(月) 19:15:24
よく分からんな、マルチスレッドの処理なら
マルチコア上では複数スレッドが本当に同時に処理できるんだから
トータルの処理能力が向上するのは当たり前としか。

どこに疑問を感じてるんだ??
164デフォルトの名無しさん:2007/12/24(月) 19:17:13
>>160
解説記事はたことあるけど実証例は見たことないな。
その解説とやらも、>>132式の、書いてる奴がマルチタスクのしくみを
根本的にわかってないとしか思えないようなのばっかり
165デフォルトの名無しさん:2007/12/24(月) 19:18:53
>>163
だからそれが素朴すぎるって言うんだよw
コアがスレッドに専属するようなモデルを無意識で想定してるんだろうけど
そんなモデルは全然間違ってるよ。
166デフォルトの名無しさん:2007/12/24(月) 19:27:58
だからさ、コアがスレッドに直結してないにしても、
ある瞬間ではおおよそそうなってるだろうがよ。
だから大枠ではそうなってるってわざわざ書いたのに。

お前はスレッドとコアが直結してないからって、
いきなりマルチコアでも性能は向上しないって結論付けてるのか?

直結してないからって複数スレッドが同時に実行されないってことにはならんだろ?
167デフォルトの名無しさん:2007/12/24(月) 19:32:38
>>166
物事をゼロから考える訓練が出来てない人なのかなあ。。
なにか「同時」ということに意味があるように思ってるようだが、
物理的に同時だったら効率が上がるの?何故?

結論から言えばそんなことはないんだよ。
最初から言ってるように、コンテクストの切り替えによるロスを減らせるかどうか、
それだけが問題なの。

そんなの大して(もちろんゼロではない)減るわけないじゃん。
コアが二倍や四倍になった程度で。
168デフォルトの名無しさん:2007/12/24(月) 19:33:54
HyperThreadingと混同しているように見える
169デフォルトの名無しさん:2007/12/24(月) 19:35:34
OS上でCPUを必要としてるスレッドがあれば、
OSは優先度に従ってスレッドにCPUを割り当てる。
複数スレッドがあれば基本的にはそれぞれに空いてるCPUを割り当てる。
マルチコアでは割り当てられるプロセッサが複数あるから
複数スレッドがあれば基本的には複数スレッドがそれぞれのコアで
同時に実行される。
スレッドへのCPUの割り当ては短時間で何度も切り替えられるが、
全体の時間で見たら、ほぼコア数のスレッドが同時処理される。
そういうコードになってたら、だが。

これ以上何が気に入らん?
170デフォルトの名無しさん:2007/12/24(月) 19:43:19
なんかひとつのスレッドの処理速度が上がるわけないって意味で書いてるみたいだな。
んなのは当たり前だが、マルチコアとマルチスレッドの話で
そんな話をしだすとは予想外すぎて分からんよ。
っていうか、そんなことは分かってる前提で、全体の処理能力を向上させりために
マルチスレッドを使うって話なのは、もう最初から大前提だろ。

まあそういう話だと受け取っても、マルチスレッド化で処理時間が半分ってのが
納得いかないってはっきり言ってるから、そもそもなにも分かってない気がするが。
171デフォルトの名無しさん:2007/12/24(月) 19:54:42
8コアぐらいあれば、ThreadAffinityを設定すれば専属コアにならね?w
172デフォルトの名無しさん:2007/12/24(月) 19:55:26
>>167は何が言いたいのかな…
なんでコンテキスト切り替えだけが問題って話になってんだ?
コンテキスト切り替えの効率が重要なのは分かるが、
複数スレッドが同時に処理できるってことが最重要じゃないのどう考えても。

シングルコアじゃひとつのスレッドしか物理的に同時実行できない。
マルチコアならコア数分同時実行できる。
複数スレッドのコードならコア数分のスレッドはコンテキスト切り替えなしで実行出来るし
同時実行してるんだからこなしてる処理量もコア数倍になってる。
まあこれは理想的な場合だが、大枠ではこうだ。
一体これ以上何が疑問なんだ。
173デフォルトの名無しさん:2007/12/24(月) 19:57:03
専属コアじゃなくて、コア専属かなあどっちかっていうとw
174デフォルトの名無しさん:2007/12/24(月) 20:02:19
どなたか>>110の質問、よろしくお願いいたします。

ちょっと上のでは曖昧すぎるかもしれませんので細かく言うと、
VB上でWindowsのショートカットコマンド、CTRL+AやCTRL+Cを使うにはどうすればいいのでしょうか?
175デフォルトの名無しさん:2007/12/24(月) 20:06:53
>>174
sendkeys使えばいいじゃん。
それで満足できないならWin32APIで。
176デフォルトの名無しさん:2007/12/24(月) 20:10:55
なんか最近他人をさんざん馬鹿扱いしてだんだん馬鹿としか書かなくなって
そのまま消えてしまう奴をよく見るようになった気がする…
177デフォルトの名無しさん:2007/12/24(月) 20:16:01
>>175
それでいけるんですか・・・キー単体しか認識しないものだと思ってましたorz
178デフォルトの名無しさん:2007/12/24(月) 20:34:59
結局何だったんですか?
179デフォルトの名無しさん:2007/12/24(月) 20:47:17
クリスマスだというのにお前らはこんなスレに齧りついて、と言う涙なしでは語れない話
180デフォルトの名無しさん:2007/12/24(月) 21:51:21
このあと秋葉原から生中継
181デフォルトの名無しさん:2007/12/24(月) 23:44:37
>>149
そのトップに出てくる本、糞だったなぁ。
2002のコードを2005にアップグレードしただけだったし。
182デフォルトの名無しさん:2007/12/24(月) 23:46:28
前前スレのTry-Catch論争と同じ臭いがするぞ、ここはw
183デフォルトの名無しさん:2007/12/25(火) 00:10:54
最近、最初に、

こんな奴がプログラム云々
頭悪いみたいだね云々
知能が低い云々
鶏頭云々
病的云々
馬鹿云々

こういうこと書く奴がアホだったっつう
マンガみたいな展開大杉
184デフォルトの名無しさん:2007/12/25(火) 00:38:53
>>183
自分の言葉を自分に適用できない。
これ馬鹿の顕著な特徴だから徹底的に頭に叩き込んだ方がいいよ。
まあそれができないから「馬鹿」なんだろうけどさw
185デフォルトの名無しさん:2007/12/25(火) 00:48:37
というか、馬鹿と呼ばれて頭にくるのはまあいいとして、
しかし、じゃあそう呼ばれた人間は実際馬鹿なこと言ってないのかよ。
それも繰り返し注意を促された後で
186デフォルトの名無しさん:2007/12/25(火) 02:27:30
だれ?
187デフォルトの名無しさん:2007/12/25(火) 02:36:06
188デフォルトの名無しさん:2007/12/25(火) 02:36:33
>>159
>>164
>>165
>>167
>>184
>>185
ってことでおk?
189デフォルトの名無しさん:2007/12/25(火) 02:40:31
いわれたやつがどうこうとか関係なく
言ってるやつがアホだったっことには変わりないな。
190デフォルトの名無しさん:2007/12/25(火) 02:46:28
結局>>126は正しいの?間違ってるの?
191デフォルトの名無しさん:2007/12/25(火) 08:37:06
基本的にスレッドはソフトウェアレベルの話で,コア数はハードウェアレベルの(上層の)話.
リソースの競合とかデッドロックとかマルチタスク処理によるコンテキストの切り替えとかアトミック操作とか,
実行時には様々な障害が発生するので,その辺をOSが色々やってくれる.

そんなわけで単純に「2つ処理するハードウェアつけたら2倍になるぉ(^ω^」なんて誰にもいえなくて,
そんなこと言ってたらそれはバカ丸出し.

OSを解さないで,自力でソフトウェアをチューニングしてやっとかそこそこハードウェアの性能を引き出せるわけだから,
安っちぃコンパイラで(しかも仮想マシン)吐き出したコードを実行して,シングルコアとマルチコアでユーザが体感できるような性能差が出たらラッキーくらい.

それよかハードディスクの性能をよくするとか,マウスの精度を上げるとか,描画を早くするとかに専念した方がいいじゃろな.
アプリケーションプログラマからすると.
192デフォルトの名無しさん:2007/12/25(火) 08:43:46
>>190
間違ってるよ
193デフォルトの名無しさん:2007/12/25(火) 08:58:07
>>191
こいつ恣意的に話しずらしてるよな明らかに。
笑わすなっつの。
無条件に2倍になるとか、だれもそんなこと言ってないし。
194デフォルトの名無しさん:2007/12/25(火) 08:58:43
>OSを解さないで,自力でソフトウェアをチューニングしてやっとかそこそこハードウェアの性能を引き出せるわけだから,
>安っちぃコンパイラで(しかも仮想マシン)吐き出したコードを実行して,シングルコアとマルチコアでユーザが体感できるような性能差が出たらラッキーくらい.

あふぉか。
195デフォルトの名無しさん:2007/12/25(火) 09:01:26
>>191お前ほんとは何もわかってないだろ。
文章の節々から怪しさがにじみ出てるぞ。

196デフォルトの名無しさん:2007/12/25(火) 09:05:01
これ以上議論するならコテかトリップつけてくれw
わかりにくいったらありゃしない。
197デフォルトの名無しさん:2007/12/25(火) 09:13:32
>>158
これからプログラミングやるならVB.NETからやるのはやめとけ
.NETならVC#、ネイティブならVC++を勧める
198デフォルトの名無しさん:2007/12/25(火) 09:23:45
>>191なので、
マルチコアマシンでも、マルチスレッド化してもパフォーマンスはアップしません。
アップする理由がありません。
アップしてる記事とかあるけど、何にも理解してないやつがでたらめ書いてるんだよ。

って言いたかったってことでおk?
199デフォルトの名無しさん:2007/12/25(火) 09:37:33
違うでしょ
200デフォルトの名無しさん:2007/12/25(火) 09:43:26
201デフォルトの名無しさん:2007/12/25(火) 10:55:02
結局マルチスレッドでもマルチコアの性能を引き出すことはできないって言ってるの?
それとも話をずらして誤魔化してるだけなの?
202デフォルトの名無しさん:2007/12/25(火) 11:01:01
いいえ
いいえ
203デフォルトの名無しさん:2007/12/25(火) 11:07:36
結局何だったの?

ところでパラレルライブラリっていつ出るの?
204デフォルトの名無しさん:2007/12/25(火) 12:44:22
DataGridViewで変更のあった行はRowStateを見ればわかるけど
変更のあった列はどうやって取得するのでしょうか
205デフォルトの名無しさん:2007/12/25(火) 13:20:22
こんな日になんですが、よろしければお付き合いください。

現在、Office2007のアドインをVB2008で開発しようとしています。
実装したい機能としては、従来のメニュバーと、削除されてしまった「スキャナまたはカメラから」の図の挿入です。
メニューバーのほうは方法がわかり、めどが立ったのですが、「スキャナまたはカメラから」のほうが難航しています。

この機能自体はクリップオーガナイザ(MSTORE.exe)に実装されているので、
・そのダイアログをWord、PowerPointなどのOfficeアプリケーションから一発で呼び出す
・実行結果をオーガナイザのコレクションに追加して、そのファイルをOffice側に張り付ける
ということができれば理想的です。
このようなことは可能でしょうか?
VSTOのドキュメントとは格闘したのですが、Officeアプリケーション自体からこの機能がなくなっているせいか、2007では実装方法がわかりませんでした。
206デフォルトの名無しさん:2007/12/25(火) 13:27:01
XMLの要素や属性を読みに行く際、LINQ to XMLで読み込んでから型変換するのと、XmlReaderで型指定して読み込むのとではどちらのパフォーマンスが良いでしょうか。
207デフォルトの名無しさん:2007/12/25(火) 15:09:15
>>203
Win32API使って自分でやった方が早くね?
208デフォルトの名無しさん:2007/12/25(火) 15:25:05

 可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
209デフォルトの名無しさん:2007/12/25(火) 15:31:39
質問させてください。
現在、Labelコントロールを継承したコントロールを作成しています。
その継承コントロールにて、AutoSizeプロパティをインスタンス生成時にFalseにするようにしているのですが、
フォームに貼り付けた時点でAutoSize=trueがフォームのInitializeComponentメソッドに自動的に書かれてしまい、意味がありませんでした。
デフォルトでAutoSize=falseにしたい場合は、どのようにすればよろしいでしょうか?
どなたかご教示宜しくお願いします。
210209:2007/12/25(火) 15:56:35
調べてみたところ、LabelはデフォルトでAutoSize=Falseなんですね。
要はInitializeComponentでAutoSize=Trueが自動で書かれてしまわないようにできれば…
無理でしょうか(´・ω・`)
211デフォルトの名無しさん:2007/12/25(火) 16:30:34

可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
212デフォルトの名無しさん:2007/12/25(火) 16:30:43

可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
213デフォルトの名無しさん:2007/12/25(火) 17:51:33
>>209
フォームデザイナで「継承したクラスのAutoSizeプロパティ」がTrueになっているんでないかな?
214デフォルトの名無しさん:2007/12/25(火) 19:05:32
>>209
あるあるw
とりあえずこれで解決できるみたいだよ。
完全に問題がないかどうかは確認してないが

Public Class LabelEx
  Inherits Label

  <DefaultValue(False)> _
  Public Overrides Property AutoSize() As Boolean
    Get
      Return MyBase.AutoSize
    End Get
    Set(ByVal value As Boolean)
      Static is1st As Boolean = True

      If DesignMode AndAlso is1st Then
        MyBase.AutoSize = False
        is1st = False
      Else
        MyBase.AutoSize = value
      End If
    End Set
  End Property
End Class

215デフォルトの名無しさん:2007/12/25(火) 22:57:53
>>204
それを知ってどうしたいんだ?
216デフォルトの名無しさん:2007/12/25(火) 23:04:20
>>215
お前こそそれ知ってどうしたいんだよ。
しかし、なんで馬鹿ってえのはこう自分を棚上げして平気なんざんしょうかw
217デフォルトの名無しさん:2007/12/25(火) 23:13:25
*Data*Gridで行に対しての処理は当たり前だけど、
列、ってのは想像が付かないからなー。
 なんつーか、特異な要求の理由が知りたいってところ?
218デフォルトの名無しさん:2007/12/25(火) 23:16:30
>>216
自分のことをよくぞ言ったもんだ
215じゃねーけど知ったところで意味ねーからだろーが
その変更された値を取得するには結局変更された行(=レコード)を取得しなきゃならんのだし
219209:2007/12/26(水) 10:17:17
>>214
できました(`・ω・´)!
強引な感はありますが、強引な方法でしか解決できそうにないですしねw
今のところ問題はないです。
220デフォルトの名無しさん:2007/12/26(水) 13:04:04
すいません、わからないことができてしまったので質問です。
使用ソフトVB2005です。

わからないことは
テキストボックスで入力した文字をボタン1を押すとtxtファイルに保存して、
ボタン2を押すとテキストボックスに呼び出すこと。(テキストボックスは複数)

StremReder、StremWriterを使うことはわかって、保存まではたどり着きました。
ですが、呼び出しがわかりません。
どなたか、教えてもらえませんか?
221デフォルトの名無しさん:2007/12/26(水) 13:11:52
呼び出すってのは、テキストファイルの内容をテキストボックスに表示するってことかな?
http://dobon.net/vb/dotnet/file/readfile.html
この辺読んだらわかるかと。
上記URLのVBサンプルの
Console.WriteLine(s)
てなっているところを例えば
TextBox1.text = s
ってすればTextBox1にファイルの内容が表示されるよ。
222デフォルトの名無しさん:2007/12/26(水) 13:43:34
>>221
どうもありがとうございます。
確かにできました。
ですが、1行で保存しているものを分割して表示しなければ
いけないので、すべてまとまって出てしまいます。
これは、どうすればいいかわかる方いましたら教えてください。
223デフォルトの名無しさん:2007/12/26(水) 13:52:14
>>222
それは一行に全てまとめて保存していて,そのまま表示したってことでおk?

適当に分割すれば
224デフォルトの名無しさん:2007/12/26(水) 13:58:18
>>223
分割・・・それもアリですが
こんな感じになって保存されてるのをtextboxに分けて入れたいんですよ。
a,s,df(textbox1.text,textbox2.text,textbox3.textという感じに保存)

分割可能でしょうか?  ,は表示されません
225デフォルトの名無しさん:2007/12/26(水) 14:08:11
>>224
「感じ」だけ言われてもなぁ

じゃあ
a,s,df(textbox1.txt, textbox2.txt, textbox3.txt という感じに分割)
すればいい
226デフォルトの名無しさん:2007/12/26(水) 14:10:45
クリンゴン語でおk
227デフォルトの名無しさん:2007/12/26(水) 14:20:01
>>225
わかりにくく書いて御免
訂正する

保存ボタンを押すとTextBox(複数)の内容を保存する
Dim abc As String
abc &= TextBox1.Text
abc &= ","
abc &= TextBox2.Text
abc &= ","
abc &= Textbox3.Text

保存すると
日本,中国,ロシア

これをTextBoxに戻すことをしたい
どうもすいません
228デフォルトの名無しさん:2007/12/26(水) 14:22:46
splitで分割しろ
229デフォルトの名無しさん:2007/12/26(水) 14:32:29
お!でけた。
ありがとう!
230デフォルトの名無しさん:2007/12/26(水) 14:42:35
解決したから良かったけど、なんでこう目標だけを質問するのかねw

こういう<前提>で処理をしており、次にこういう<手段>で<目標>したいです。
どうやったら<手段>はできますか?

とか聞いてくれれば答えやすいのに。
231デフォルトの名無しさん:2007/12/26(水) 15:04:15
おお!できた
おまいらありがとう
232デフォルトの名無しさん:2007/12/26(水) 15:46:13
そこまで説明できたら自分で解決出来そうだけどな。
233デフォルトの名無しさん:2007/12/26(水) 16:02:26
ちょっと教えて
ストリングビルダってどういう時に使うのがいいん?
SQL組み立てる時にはいいんだろうけど、それ以外の用途ってあまり思い浮かばない
何よりindexofが無いのが致命的
結局ストリングの代わりに使えるようなもんじゃ無いってこと?
234デフォルトの名無しさん:2007/12/26(水) 16:06:39
>>232
自分で解決できるのが一番だ。
>>230みたいに考えて、それでも解からないなら質問すればいい。
思考ゼロで質問丸投げしてくるやつは成長しないぞ。
235デフォルトの名無しさん:2007/12/26(水) 16:13:28
>>233
どぼんより引用
Stringクラスではなく、System.Text.StringBuilderクラスを使うことにより、文字列の置換や追加などの
処理をより高速に行うことができます。
例えば、Stringクラスで文字列の連結を行うと、文字列を連結するたびに新しいインスタンスを
作成するため、パフォーマンスが落ちますが、StringBuilderクラスでは、そのようなことがありません。
文字列の置換や追加などの処理を頻繁に行う時は、StringBuilderクラスを使うとよいでしょう。

逆に言えば文字列の置換や追加などの処理を頻繁に行わない時は、意識して使うこともないってこった。
236デフォルトの名無しさん:2007/12/26(水) 16:16:06
>>233
100万回くらい文字列の連結をするループ作って
StringとStringBuilderを比較してみるといい
237デフォルトの名無しさん:2007/12/26(水) 16:19:25
100万回てwww
メモリたらんわwwww
238デフォルトの名無しさん:2007/12/26(水) 16:39:03
>>235
その程度のもんなんだね
THX
いやまあそんなに違うもんなら、今までに書いたの全部書き直さなきゃいかんかと思て
239デフォルトの名無しさん:2007/12/26(水) 17:09:39
何を読んでそんなに違うものだと思ったの?
いや素朴な疑問。
240デフォルトの名無しさん:2007/12/26(水) 17:26:27
100回程度で違いが出たら根本的なところで問題あるだろ絶対。
241デフォルトの名無しさん:2007/12/26(水) 18:41:22
>>237
100万=1M

10文字くらいの連結なら最近のPCならなんら問題ない
242デフォルトの名無しさん:2007/12/26(水) 20:31:57
UTF16だから×2
コピー時に両方いるから×1.5
最悪必要量の2倍確保されるから最悪の場合は×2
よって最悪6倍
ああもちろんこれは1文字ずつ足した場合だから
さらに足していく文字数倍なw
243デフォルトの名無しさん:2007/12/26(水) 20:35:40
ああそれでも最悪60M位だな。
過渡的に使うメモリはトータルでさらに倍か、それでもまあ120Mくらいか。
244デフォルトの名無しさん:2007/12/26(水) 20:37:03
違うわ、トータルはそれ×100万だたw
245デフォルトの名無しさん:2007/12/26(水) 20:38:10
違うw半分の100万ばいだから
30M×100万だ
246デフォルトの名無しさん:2007/12/26(水) 20:40:08
最悪の場合は2倍じゃなくて1.5倍かな?俺ってあほだ
247デフォルトの名無しさん:2007/12/26(水) 20:42:36
チラシの裏にでも書いてろ
248デフォルトの名無しさん:2007/12/26(水) 21:09:27
ガベコレのことを忘れてはいけませんよ
249デフォルトの名無しさん:2007/12/26(水) 21:14:03
誰も忘れてないと思うよ
250デフォルトの名無しさん:2007/12/26(水) 21:19:12
単なる連結なんだから
100万回×1000万文字×2バイト÷2で
1000万Mだな、過渡的なものを含めたトータルで。
10Tか。
メモリ帯域ってどんくらいだっけ?
251デフォルトの名無しさん:2007/12/26(水) 21:20:55
まあ1時間もあれば終わるんじゃない?知らんけどw
252デフォルトの名無しさん:2007/12/26(水) 21:22:04
やってみるわ
aを100万回連結してみる
253252:2007/12/26(水) 21:35:44
予想外に長いな…w
とめたくなって来たぜ…w
254デフォルトの名無しさん:2007/12/26(水) 21:42:02
すまん(´・ω・`)あまりにも長くてとめちまった。
代わりに20万回でやったわ
String: 98297ミリ秒
StringBuilder: 16ミリ秒
255デフォルトの名無しさん:2007/12/26(水) 21:48:43
上から順に 1万、2万、5万、10万回
String: 157ミリ秒
String: 562ミリ秒
String: 3875ミリ秒
String: 20766ミリ秒

StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒

StringBuilderのほう、10万回以下じゃ0ミリだぜ、、、
256デフォルトの名無しさん:2007/12/26(水) 22:12:01
そういや .net か java か忘れたけど,
コンパイラが文字列連結をコンパイルするとき,
3つまではString()のコンストラクタ使われて,それ以外だとゴニョゴニョするって記事をどこかで見たな
257デフォルトの名無しさん:2007/12/26(水) 22:13:48
>ゴニョゴニョ
そこが重要だろww
258デフォルトの名無しさん:2007/12/26(水) 22:25:27
実際に試すとはチャレンジャーなw
純粋なメモリ転送よりは圧倒的に効率悪いだろうから、
10分の1の1文字ずつでも1時間はかからないかどうかってとこかな?
259デフォルトの名無しさん:2007/12/27(木) 13:07:46
試した方が早いってことで試してみた
文字→数字
val>parse>>>>>>>>cint (valとparseはほとんど変わらないけどcintは10倍以上遅い)
数字→文字
tostring>cstr>format (formatがtostringの2倍程度)
もっとも複雑な書式になってきたらどうか分からんけど
260デフォルトの名無しさん:2007/12/27(木) 14:02:08
WindowsMobileのコード書くときもあるけど、

そういうのってStringBuilder積極的に使ったほうがいいんかなぁ・・・

文字列連結なんかも、a = a & "a" みたいな感じでやってたりするし。
Strcat とか使いづらいしなぁ
261デフォルトの名無しさん:2007/12/27(木) 14:48:01
MSのガイドラインをどっかで見たが、
5回以上連結する場合はStringBuilderの方が平均的にパフォーマンスが良くなるそうだ
がまあボトルネックになってないなら気にすることもない
262デフォルトの名無しさん:2007/12/27(木) 15:22:52
ループなど、連結数が予測できない場合や、
連結による追加を何度も繰り返す場合は使った方がいい。
単文での連結だけなら不要、例え数が多くても。
263デフォルトの名無しさん:2007/12/27(木) 17:05:40
>>261
試してみた
4回まではストリングの方が早い
5-7回まではイーブン
8回以上はストリングビルダが早い
264デフォルトの名無しさん:2007/12/27(木) 17:24:23
WebBrowserコントロールで表示中のソース取得するのはどういう方法がいいんだろう?
今は Me.WebBrowser1.DocumentText でやってるんだけど、これってサーバに
再読み込みに行くのではなくて現在表示してる内容のソースなんでしょうか?
265デフォルトの名無しさん:2007/12/27(木) 17:30:14
>>264
そのくらい自分で試せるだろw
266デフォルトの名無しさん:2007/12/27(木) 17:32:14
冷たいんだなw
267デフォルトの名無しさん:2007/12/27(木) 18:04:52
>>264
http://dobon.net/vb/dotnet/internet/webclientopenread.html
なら、自分でダウンロードすればいいんじゃね?IEコンポなんか使わずに。
いや、まあ、文字コードとか面倒だけどね。
268デフォルトの名無しさん:2007/12/27(木) 18:34:46
VB2005で質問です。
メモリ領域が確保されるのは(1)と(2)のどちらでしょうか?

Dim int As Integer ・・・(1)
int = 100 ・・・(2)
269デフォルトの名無しさん:2007/12/27(木) 18:46:52
>>268
Sub Hohe ・・・ ここ
  Dim int As Integer 
  int = 100
270デフォルトの名無しさん:2007/12/27(木) 18:48:09
271268:2007/12/27(木) 19:47:00
ありがとうございます。よく分かりました。

宣言する位置、代入する位置は関係ないのですね。
見易い位置で宣言するようにしたいと思います。
272デフォルトの名無しさん:2007/12/28(金) 00:37:19
Dim myObj As New MyObject はVB6とは意味が変わったから注意な。
273268:2007/12/28(金) 09:46:35
はい。察しの通りVB6から移行したばかりです。

.Net以降の場合、オブジェクトのインスタンスは宣言される位置で生成されるんですね。
ご丁寧にどうも。
274デフォルトの名無しさん:2007/12/28(金) 11:47:40
ほぇ?
275デフォルトの名無しさん:2007/12/28(金) 13:16:22
>>272
とにかく、
Dim myObj As New MyObject

Dim myObj As MyObject = New MyObject()
も、
コンストラクタを呼び出してインスタンスを生成しているんですよね?
何か意味変わったんでしたっけ?
276デフォルトの名無しさん:2007/12/28(金) 13:23:28
>>275
For i = 1 to 3
 Dim myObj As New MyObject
Next
.NETでは予想通りMyObjectは3回生成されるが、VB6は1回だけ。
277デフォルトの名無しさん:2007/12/28(金) 16:08:36
VB6の as new 構文の楽しい挙動

Dim frm as New Form1
frm.visible=true '表示される
set frm=nothing 'とりあえず Formsコレクションに残っているので表示されたまま
frm.visible=true '2つめが表示される
278デフォルトの名無しさん:2007/12/28(金) 16:08:55
>>276
あーそうだったんですか!、そうとは知らなかったです。
ありがとうございました。
279デフォルトの名無しさん:2007/12/28(金) 16:11:56
>>277
えー、、そうだったのですか!!それも知りませんでした。
set frm=nothing
ってDisposeの効果はなかったんですね、しかもそれをしても
プロパティが生きていたと。
280デフォルトの名無しさん:2007/12/28(金) 16:14:16
>>279
VB6のはちょっとちがう

as new 構文の場合「オブジェクト変数がNothingの状態の時に,オブジェクトへのアクセスが必要なら,新たに作成する」という挙動
281デフォルトの名無しさん:2007/12/28(金) 19:20:01
みんなくわしいの〜。
会社に入ってきちんと教えてもらうわけでもなく現場で揉まれるようにVB6を見につけた俺にはありがたい話や。
正直知識じゃなくて経験だけでコードを書いているよ。
ちゃんと勉強するにはどうしたらいい?参考書とかある?
282デフォルトの名無しさん:2007/12/28(金) 19:25:22
>>281
VB6のことを学びたいのならここは場違いだと思うわけだが
283デフォルトの名無しさん:2007/12/28(金) 19:27:57
ああ、ごめん流れが6だったから間違ったわw
.NETもしてるんやけど.NETをきちんと勉強したら6はしなくていいのかな?
それとも6の知識が.NETにも反映されるかな?
284デフォルトの名無しさん:2007/12/28(金) 20:15:07
>>283
VB.NETのためにVB6するなら教養程度だな(予約語をしってて安心レベル)
285デフォルトの名無しさん:2007/12/28(金) 20:50:37
書き込み失礼します。
当方VB2005使い始めて1週間のど素人です。


質問なのですが、VB6.0で作成した「Winsockを扱うプログラム」を
2005用にアップデートしつつ改良したいと考えています。

VB6.0/2005双方がインストールされているPCでは2005上でのデバックもexeの実行も
出来るのですが、2005のみがインストールされているPCでは実行・デバック共にwinsockの部分でエラーが
出てしまいます。

これは何が原因なのでしょうか?
どなたかよければ改善の方法などアドバイス頂けると嬉しいです。


ちなみにエラー文は「'System.Runtime.InteropServices.COMException' の
初回例外が AxInterop.MSWinsockLib.dll で発生しました。」というものでした。
286デフォルトの名無しさん:2007/12/28(金) 21:00:26
MSWinSck.ocxが無いから。
VB6があるなら再配布権が付いてたはずだから、
インストーラ作って配布すれば。
287デフォルトの名無しさん:2007/12/28(金) 21:18:56
winsock捨ててSystem.Net以下のクラスで書き直すのも手
288285:2007/12/28(金) 22:50:48
>>286

調べてみたんですが、VB6.0の再配布権というのが
イマイチよくわかりません・・・申し訳ないです。
MSWinSck.ocxでググッた時に出てくる「VBランタイム」を
インストールすることでこのエラーは解決できるのでしょうか?

>>287

その方法も考えたのですが、正直自分にはまだそれだけの技量が無くて・・・。
winsockを配列にして利用したり、非同期でのメッセージ送受信なんかをしているのですが
これらを.netに対応した書き方に変更するにはもう少し勉強が必要な状態です・・・。
289デフォルトの名無しさん:2007/12/28(金) 23:04:06
>>288
COM使うのも一苦労
コンバータでナントカ成らない部分の方が多いって聞くから,
個人使用(だよな?業務でコンバータとか使って,Socketつかえねwwコンバータうはおkとかヤバイよ)ならおとなしくSocket使いなさい
290285:2007/12/29(土) 15:38:15
>>289

業務ではないです。
完璧個人的な趣味ですねw

Socketでやろうと色々あがいてみたんですがやはり難しいです・・・。

MSWinSck.ocxもインストールしてみたんですがやはり動きませんし。
八方塞です(´・ω・`)
291デフォルトの名無しさん:2007/12/29(土) 15:54:27
>>290
とりあえず、何が難しいのか書いてみたら?
292285:2007/12/29(土) 18:30:31
>>291

えーと、6.0ではwinsockを使ったログイン管理・メッセージの送受信に用いた
簡単なメッセンジャーソフトを作っていたんですよ。
その時にWinsockを配列にして送信先や受信先を固定?することによって
個別チャットを可能にしていたんですが、それと同様の事をSocketで行う
方法がわからなくて・・・。

SocketというかTcpListenerクラスを用いて1対1での通信なら
理解できたのですが、1対多や相手先を指定してのメッセージ送受信の方法が
イマイチ理解できないのです・・・。


何か参考になるようなサイトや参考書をご存知でしたら是非教えていただけませんか?
293デフォルトの名無しさん:2007/12/29(土) 18:42:32
てっとり早くいったら
http://codezine.jp/a/article.aspx?aid=22
これかな…。
294285:2007/12/29(土) 19:07:39
>>292

すいません・・・そのサイトを見て挫折したんです・・・。
まず「connetで繋げたsocketを渡す」ってところで死んでしまいました。
295デフォルトの名無しさん:2007/12/29(土) 20:06:30
流れきってすいません。
私もVB2005で質問なのですが、どなたかアドバイス願えますか?


「'System.Data.OleDb.OleDbException' の初回例外がSystem.Data.dllで
発生しました。」というエラーはどういった意味なのでしょうか?

DBはacsessを使っているのですが、SQL文を実行すると「ディスクまたは
ネットワークのエラーです」というエラーが出ると共に上記の初回例外が発生してしまいます。
前回ソースを弄るまではエラーもなくSQL文の実行も出来ていたのですが・・・。
原因に心当たりが全く無く、どうしようもない状態です・・・。
296デフォルトの名無しさん:2007/12/29(土) 20:23:11
>>294
WinsockコントロールだってAcceptイベントでソケットID返ってくるだろ?
それがソケットオブジェクトになっただけ
297デフォルトの名無しさん:2007/12/29(土) 20:23:47
>>295
接続失敗してるんじゃね?
298デフォルトの名無しさん:2007/12/30(日) 23:03:52
必要な値とかを入れたdt(DataTable)に、値に応じて色分けしようと思ってるんだけど、

Dim dv As DataView = dt.DefaultView
DataGridView.DataSource = dv

の後

DataGridView.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(240, 240, 240)
こんな感じで、一括の背景色変更はできるんだけど、

DataGridView.Rows(1).DefaultCellStyle.BackColor = Color.Black

行を指定して変更しようすると、変更が反映されません・・・

ちなみに、行・列を指定して値の取得・変更はできるんで、更新のタイミングが合ってないとかでは
ないと思うんだけど、何がなにやらさっぱりです。

どなたかご教授を。。
ソースとかで不足分があれば言ってください。環境はvb2005です。よろしくお願いします。
299デフォルトの名無しさん:2007/12/31(月) 12:49:02
何か今日、とてつもなく悪質なブラウザクラッシャーが現れたというニュースが
出ていました。IE6以前のものだと防止できないとのことでした。
 ↓
【IT】 HDDをフォーマットするWebサイト登場。ご注意を!★2
http://mamono.2ch.net/test/read.cgi/newsplus/1199047353/

これというのはつまりは、WebBrowserコントロールを使ったものも同様だということかと
思いました。プログラムでは対応不可能ということでしょうか・・・・・・・?困りました。

プログラム上では対策はどうしたらいいでしょう?
Nortonなどでの対策を期待してよいのでしょうか・・・?
300デフォルトの名無しさん:2008/01/01(火) 16:22:02
スレ違いかもしれませんがちょっと質問させて下さい。

これまで、First ServerにてレンタルしたASP.net(C#)での開発を行って
おりましたが、レンタルをすると色々と制限があり、
どうにか自宅に同様の環境を構築出来ないかと考えております。

そこで「自宅サーバ」というキーワードでぐぐってみたところ
Apache + MySql + PHP
で一通りのWebDBシステムが構築できる事が分かりました。

しかし、PHPはこれまで一度も触った事がありませんので、
出来れば、経験の豊富なC#(VB)つまりASP.netシステムを自宅で構築し
外部に公開出来ない物かと考えています。

※確かIISに頼った公開方法ではアクセス数が確か制限されてしまうと
の事でしたので、IISを使わずに何か公開する方法はありますでしょうか?
(Apache等)
301デフォルトの名無しさん:2008/01/01(火) 17:30:19
>>300
IIS以外でASP.NETをやろうと思ったら、MONOしかないがそっちの方がいろいろありそうだ。
>※確かIISに頼った公開方法ではアクセス数が確か制限されてしまうと 
この辺なにか勘違いしてそうだからよく確認してみろよ。
Windows Server系じゃないとライセンス上イントラサーバーにしか出来ないということじゃないか?
302デフォルトの名無しさん:2008/01/01(火) 18:01:51
CALの制限がやらしい、って話?
そのためのWeb Editionでないの?
303デフォルトの名無しさん:2008/01/02(水) 03:22:25
VB.NETです
避けゲーを作成
背景が白色じゃ淋しいと思い写真をフォームにのせ背景に
フォームロードに写真を表示させる命令を書いて実行
動いたあとが白くのこる。自機や玉を動かしたあと、白く塗り潰しているせいなので、この命令を削除。次は自機や玉の絵が分身してしまう

マスク処理や画像透過ではどうにもならず…
何か良い方法はないでしょうか
304デフォルトの名無しさん:2008/01/02(水) 05:37:01
>>303
>自機や玉を動かしたあと、白く塗り潰しているせいなので

このときに処理していたイベントで、フォームの背景を再描画する。
てか初歩中の初歩だろ・・・
305デフォルトの名無しさん:2008/01/02(水) 10:14:03
Refresh
306デフォルトの名無しさん:2008/01/02(水) 11:54:57

 プログラマは中年になってから先がない クククク・・・・・
307デフォルトの名無しさん:2008/01/02(水) 12:39:36
白く塗りつぶす発想は無かった(´・ω・`)
308デフォルトの名無しさん:2008/01/02(水) 22:43:53
すみません、教えていただけますか、よろしくお願いします。

Brush型のプロパティを作った場合、それをプロパティグリッドで編集可能にするには
どうしたらいいでしょうか。Color型の場合は自動的に編集可能になるのですが、
Brush型だと編集可能になりません。よろしくお願いします。
309デフォルトの名無しさん:2008/01/03(木) 01:22:20
回答じゃねーんだけどさ、
GDIリソースを使うオブジェクトをぽこぽこプロパティで変更できるって
気持ち悪くない?
310308:2008/01/03(木) 12:40:49
>>309
レスどうもです、としますと、Brush型のフィールドを外部設定させるためには、

たとえば、Color型の仮のプロパティを作って、それを設定させておいて、それを
見て、なんらかの形で本命のBrush型のフィールドをコードで設定する、といった
感じで行うしかないでしょうか?

その場合は、たとえば、Color型からうまくBrush型を作成する方法はどのように
なるでしょう。(Colorですと、FromNameなどがありましたが、Brush型の場合には
便利な方法があるといいのですが・・・まだ見つけられていませんでした)
311デフォルトの名無しさん:2008/01/03(木) 12:50:39
Brushを保持するんじゃなくてBrushを作成するためのデータを保持する。単一色ブラシならデータ=Colorだな。
Brush自体は実際に必要なたびに作って済んだらさっさとDispose。
あとBrushクラスの解説を読むといいよ。
312デフォルトの名無しさん:2008/01/03(木) 14:23:00
>>311
どうもです。>>310
>Color型からうまくBrush型を作成する
件は、SolidBrush型のインスタンスを利用することとして、その
Colorプロパティを設定するほかに方法がなさそうでした、これで
やってみます。

(Brush型というのは、Colorを与えて共有メンバーにして持つ
ということができないのですね・・・。)
313デフォルトの名無しさん:2008/01/03(木) 15:04:06
2 + 3
とtextbox1に書いて
ans = textbox1.text
右辺を 2 + 3 と式で計算させるには
どうすればいいですか。
314デフォルトの名無しさん:2008/01/03(木) 15:15:45
Dim ans As Integer
Dim num(1) As Integer
num = Split(TextBox1.Text,"+")
ans = num(0) + num(1)
315デフォルトの名無しさん:2008/01/03(木) 15:23:56
>>313
ひんと:カッコ非対応

private function evaluate(ByVal String s) As Double
    dim i as integer
    i=s.indexof("+"): if i<>-1 then return evaluate(sのiより左)+evaluate(sのiよりも右)
    i=s.indexof("-"): if i<>-1 then return evaluate(sのiより左)-evaluate(sのiよりも右)
    i=s.indexof("*"): if i<>-1 then return evaluate(sのiより左)*evaluate(sのiよりも右)
    i=s.indexof("/"): if i<>-1 then return evaluate(sのiより左)/evaluate(sのiよりも右)
    return sをdouble型に変換したもの
end function
316313:2008/01/03(木) 15:26:47
>>314,315
レスありがとうございます。

がすいません。
textbox1に書けるのは、任意の式ってことで。
3 - 6 * (9 - 2) * Math.sqrt(5)
とか。
ようは書いた文字列がそのままプログラム文に
なるイメージです。
317デフォルトの名無しさん:2008/01/03(木) 15:28:48
>>316
つ その「任意の式」を解釈して実行するエンジンを作れ

もしかしたらスクリプトコントロールとか,.net frameworkのコンパイルしてくれるアレが使えるかもしれないが
よーわからん
318313:2008/01/03(木) 15:39:21
実現するためには、やっぱ式を解析する
プログラム作らないと駄目ですかね・・・
319300:2008/01/03(木) 17:00:31
>>301
とりあえずPHPだけじゃなくても設定次第で
WindowsXP(Home) + Java
で自宅サーバを構築出来そうな感じです。
320デフォルトの名無しさん:2008/01/03(木) 17:08:07
それを外部公開するなよ?
321300:2008/01/03(木) 17:31:59
なぜ?
322デフォルトの名無しさん:2008/01/03(木) 17:42:39
素直にレンサバでC#+IIS+ASP.NET+SQLserverで公開してろよ
経験豊富なんだろ(笑)
それだけ使えりゃ何でも作れるぞ。
323デフォルトの名無しさん:2008/01/03(木) 17:43:06
ライセンス違反だから
Javaなら素直にLinux使っとけ
324デフォルトの名無しさん:2008/01/03(木) 17:51:12
ライセンス違反じゃないよ
325デフォルトの名無しさん:2008/01/03(木) 18:17:56
ライセンスの話になっちゃたらもうスレ違い。他でやっとくれ。
326デフォルトの名無しさん:2008/01/03(木) 18:51:21
>>318
自分で式を解析して計算するなら逆ポーランド記法
327300:2008/01/03(木) 19:23:12
>>322
.NETばかりやってて飽きたからです。
3年位前にはJavaやってたけどかなりブランクがあるので色々(特に開発
環境構築回り)と忘れています。感覚を取り戻す為にも自宅でサーブレットを
動かし公開しようと思っています。


>>323
Solalisは使った事がありますがLinuxは使った事がありません。


>>323
そんなの関係ねぇ〜♪


>>324
俺もそう思います。

328デフォルトの名無しさん:2008/01/03(木) 19:52:09
XPのHomeはサーバを建ててはいけないライセンス。
329デフォルトの名無しさん:2008/01/03(木) 20:00:02
建てたらいけない建て方もあるってだけだよ。
回避可能。
330デフォルトの名無しさん:2008/01/03(木) 23:11:52
>>328
んなばかな。


>>329
環境構築にちょっと挫折しよう。。。
331デフォルトの名無しさん:2008/01/03(木) 23:54:53
>>330
ライセンス上はHomeはサーバOSじゃないから,サポート外とかそんな感じだったはず
一度にTCPで5接続以上はダメじゃないかな(事実上可能だけど.UDPはしらね.)
332デフォルトの名無しさん:2008/01/03(木) 23:57:10
>>316
EVal つかやいいんちゃうん?
333デフォルトの名無しさん:2008/01/04(金) 01:40:50
こんばんは、どうか力をお貸し下さい。

現在テンプレートを使ってPDFファイルを出力する処理を作成しております。
今はソースがない為、参考にさせて頂いたサイト様のコピーで失礼致します。
サイト様:http://d.hatena.ne.jp/halo_w2/20070212/p2

ほとんどそのまま使わせて頂き、3行目だけ変更しました

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=test.pdf");

//Document doc = new Document(PageSize.A4, 30, 20, 80, 20); ↓のように変更
Document doc = new Document(PageSize.A3.rotate, 10, 10, 10, 10);
PdfWriter pw = PdfWriter.getInstance(doc, Response.OutputStream);
doc.open();

PdfReader pr = new PdfReader(Server.MapPath("template.pdf"));
PdfImportedPage page = pw.getImportedPage(pr, 1); // インポートするページを指定する
PdfContentByte pcb = pw.getDirectContent();
pcb.addTemplate(page, 0, 0);

A3の横向きファイルにするためにA3.rotateとしましたが、テンプレートのほうは回転せずに
縦方向のまま表示されてしまいます
([==]としたいところが[‖ ]となる)
自分なりに調べてみましたが、解決方法が見つかりません。
どうぞよろしくお願い致します。
334デフォルトの名無しさん:2008/01/04(金) 02:53:36
はじめからテンプレートを横に作っておけばいいじゃん
335333:2008/01/04(金) 03:28:57
>>334
テンプレートのPDFファイルは横向きに作ってあります
普通に開いた場合も横向きで表示されますが、テンプレートにすると縦向きになってしまうようです。
336デフォルトの名無しさん:2008/01/04(金) 05:19:51
ふへ?テンプレートは、縦に作ろうが、横に作ろうが、
縦向きになってしまう、といいたいの?
337333:2008/01/04(金) 09:02:49
情報不足でしたね、失礼致しました。
テンプレートはエクセルと
http://www.vector.co.jp/soft/win95/writing/se436494.html
こちらのソフトで作成し、その際横向きに設定しました。
.rotateを使わないでA4縦のファイルは普通にできましたので、
自分では縦になってしまうものだと考えております
338333:2008/01/04(金) 11:57:43
pcb.addTemplateの数値を変更することで無理矢理回転させることはできましたが、
カーソルが縦方向(I型ではなくH型)のままになってしまいます。
いざとなったらこの方法で行こうと思いますが、
もっとスムーズな方法があるのではないかと考えてしまいます・・・
まだわかる事のある方がいらっしゃいましたら、
どうかよろしくお願い致します。
339デフォルトの名無しさん:2008/01/04(金) 15:38:44
話題が変わってしまっていますが303です。
私用でPCに触らず今日レスを見ました。

結果はちゃんと描写できました。
マスクやスプライトばかりかと思い、Refreshに関してはまったく考えていませんでした
ありがとうございました
340デフォルトの名無しさん:2008/01/04(金) 18:20:33
すいません。一つ質問させてください。
GridViewでマスターの一覧を表示し、選択ボタンを押すと
別ページに飛び、選択したマスターの詳細を表示させる
画面を作ろうと思うのですが、
GridViewで表示されている項目は
Session("XX") = row.Cells(0).Text
で持ってこれますが、GridViewに表示していない項目を
同じようにSESSIONに持ってくることはできるでしょうか?
環境はPCがXPでVBはVS2005、言語はVBです。
宜しくお願いします。
341デフォルトの名無しさん:2008/01/04(金) 20:29:44
御用とお急ぎない方は見ておいで
常陸の国は筑波山で捕まえたVB脳だよ〜
342デフォルトの名無しさん:2008/01/04(金) 23:01:11
今日日ガマの油ってオッサン歳幾つだよ
率直にいってまず間違いなく50代以上だと推定するが、
いい歳こいたオッサンが餓鬼みがいなこと書いて恥ずかしくないのかね
343デフォルトの名無しさん:2008/01/04(金) 23:58:05
だまれ小僧
344デフォルトの名無しさん:2008/01/05(土) 00:24:06
お前にあの娘の不幸が癒せるのか
345デフォルトの名無しさん:2008/01/05(土) 12:39:05
>>342
それを知ってるお前は40代以上ってことか?藁
346デフォルトの名無しさん:2008/01/05(土) 12:43:47
>>342
自分がモノ知らないのをそんなに吹聴しなくてもいいよw
347デフォルトの名無しさん:2008/01/05(土) 14:40:51
俺20台前半だけど知ってたぜ
348デフォルトの名無しさん:2008/01/05(土) 14:48:05
ボク、女子高生ですけど知ってましたわよん
349デフォルトの名無しさん:2008/01/05(土) 14:54:30
あたしもネカマだけど知ってたわよ
350デフォルトの名無しさん:2008/01/05(土) 15:10:20
俺もWEBデザイナーだけど知ってたよ
351デフォルトの名無しさん:2008/01/05(土) 15:20:43
おれカエルだけどしってたゲコ
352デフォルトの名無しさん:2008/01/05(土) 15:55:49
ニートも
353デフォルトの名無しさん:2008/01/05(土) 20:23:28
VB.NET 2005
.NET Framework Version 2.0.50727

Dim FileOpen As New OpenFileDialog()
でファイルオープンの準備して
FileOpen.ShowDialog()
でダイアログを表示した後、キャンセルで戻ってくると問題なし
ファイルを選択して戻ってくると
WritePrivateProfileStringで書き込めなくなります。
原因、回避方法ありましたらお願いします
354デフォルトの名無しさん:2008/01/05(土) 20:34:02
>>353
全く状況がわからないんが…。
FileOpenダイアログ出してフルパスを取得するんだろ?
戻り値がキャンセルならWritePrivateProfileStringは何に書き込んでるの?

書き込めなくなるってことは、WritePrivateProfileStringの戻り値が0なんだよな?
355デフォルトの名無しさん:2008/01/05(土) 20:35:38
C#の過去ログに同じパターンのがありました。
一応記述
原因:OpenFileDialogを呼び出すとカレントディレクトリがその場所に変わる
書き込めなくなるのではなく、カレントディレクトリが移動され、別の場所に書き込んでいたようです
356デフォルトの名無しさん:2008/01/05(土) 20:42:39
回避方法:ダイアログを閉じる前に現在のディレクトリをカレントに
FileOpen.RestoreDirectory = True
357デフォルトの名無しさん:2008/01/06(日) 01:22:17
帰省から戻り、スレを開いてみたら「あけおめ」のひと言もなく淡々と進んでいるこのスレ。大好きだw
月曜から仕事じゃい!
おまいら今年もよろしくお願いします。
仕事で詰まったら質問させてね。
358デフォルトの名無しさん:2008/01/06(日) 05:12:13
>>353
フルパスでやれよ
359デフォルトの名無しさん:2008/01/06(日) 16:33:36
VB2005で質問があります。

TabControlは各ページがコンテナになっていて
それでデザイン時にページを切り替えたりする事ができますけど、
各ページがコンテナになっていないTabControlはなくなったのでしょうか?
360デフォルトの名無しさん:2008/01/06(日) 17:03:42
まーたそういう読み手がエスパーであることを前提とした質問を平気で書く。
そういう愚鈍な神経してるからいつまでも三流なんだよ君は。

だいたい同じ人間相手に意味を通じさせる文章一つ書けない奴に
ずっと融通が利かない機械相手のコードを書く才能があるはずがないよ。

「なくなったのでしょうか?」とは、何と対比して「なくなったのでしょうか?」なんだよ。
VB6のTabStripのことを言っているのなら同等品はない。
361デフォルトの名無しさん:2008/01/06(日) 17:04:37
別にコンテナ領域を無しにして、タブ領域のみの大きさにすればいいんじゃね?
必要なイベントはみんなあるはずだから。
362デフォルトの名無しさん:2008/01/06(日) 20:28:37
>>359
いつ「あった」んだよ
363デフォルトの名無しさん:2008/01/07(月) 08:02:11
質問です、よろしくお願いします。

いくつかのプロパティが定義されてあるクラスがあって、それを継承した
派生クラスにおいて、それらのプロパティのうちのいくつかだけをプロパティグリッド
に表示させないようにしたい場合は、

継承元の側で、その対象のプロパティを Overridable にしておき、派生先ではそれを
オーバーライドして中身をなにか別のものに定義し直し、それに

<Browsable(False)>

と属性設定する、というような形にすればよいのでしょうか、またこれが可能とした場合でも
こうした方法は一般的な方法でしょうか?そうでないとしたら最も一般的な方法はどのような
形となるでしょうか?

ご指導いただけましたら大変ありがたく、何卒よろしくお願い致します!!
364デフォルトの名無しさん:2008/01/07(月) 08:10:35
いいんじゃないそれで
365デフォルトの名無しさん:2008/01/07(月) 09:39:57
>>364
やはりこれでいいのでしたか、ありがとうございました。

この場合、仮にもしも、このオブジェクトをプロパティグリッドで表示する際に、
もしも継承元のクラスでキャストしたもので受けてしまったような場合は、

せっかく付けたこの属性 <Browsable(False)> も元に戻って結局また表示されて
しまうことになってしまうのでしょうか?(そういうことさえしなければ、確実に表示を
防止できると・・・) 何卒よろしくお願いします。
366デフォルトの名無しさん:2008/01/07(月) 11:25:07
試せばいいよ
367デフォルトの名無しさん:2008/01/07(月) 11:26:27
>>366
わかりました、ありがとうございました。ではまたよろしくお願いします!
368デフォルトの名無しさん:2008/01/07(月) 15:46:45
すいません、教えてください。
DateTimePickerのボタンを押すとMonthCalenderが表示される感じで、
ボタンを押すと下に特定のコントロールが表示されるようなコントロールを作成しようと思っていますが、
方法がイマイチわかりません。
あれはどのように作られているのでしょうか?

ボタンが押された時に、特定のコントロールが載った別フォームをそこに表示するようにしてみましたが、もっとスマートな方法がありそうな気がします。
どなたか解かる方、ヒントでも構わないのでご教示お願いします。

369デフォルトの名無しさん:2008/01/07(月) 16:04:42
基本的にはFormでやるんでいいんじゃない?
P/InvokeしまくればどんなWindowでもつくれるだろうけど。

Formの枠なくして
CreateParamsオーバーライドして影つけて
ShowWithoutActivationオーバーライドしてフォーカス奪わないようにしたりして
370368:2008/01/07(月) 16:13:50
>>369
レスありがとうございます。

>基本的にはFormでやるんでいいんじゃない?
安心しました。
とりあえず別Formを使う方法で不自由はしていないので、このまま作っていこうと思います。
また自分でも調べて何かわかったら報告いたします。
371デフォルトの名無しさん:2008/01/07(月) 21:26:59
フォームの枠外をクリックしたときのイベントを拾えるようにするにはどうしたらいいの?
372デフォルトの名無しさん:2008/01/07(月) 21:56:56
WM_NC**
373デフォルトの名無しさん:2008/01/08(火) 21:42:36
スレ違いかもしれませんが、
vb.net2005で開発しているので質問させてください。

Datatableのデータをできるだけ早くDB(OleDb経由)にinsertする方法が分かりません。
具体的にいうとcsvファイルをSQL ServerやOracleにインポートすることを想定しています。

現在はインサート先テーブルのDataTableを作成しNewLineで行を作成し、
ちまちまとデータをセットしてからDataAdapterを通してUpdateしています。
この場合1行ずつのInsertになってしまうので遅くなってしまいます。

理想は
"insert into 先テーブル select * from [DataTable]"
のように1発で行えればいいのですが、それも無理そうなので、
何かよい改善方法はないでしょうか?

SQL Serverに限ればBulkCopyの速度が圧倒的ですが、
できればトランザクションに含められる方法でないでしょうか?

よろしくお願いします。
374デフォルトの名無しさん:2008/01/09(水) 00:35:53
汎用的な方法はない。
ので、あえてその条件でいうなら、挿入行分INSERTを発行するのが
出来うる限り速い。それ以上はそれぞれのDB毎のお話になるはず。
375デフォルトの名無しさん:2008/01/09(水) 02:58:15
VB宿題スレがないので勝手ながらこの場を借ります、、、
私、大学一年生ですが明後日提出の課題がサッパリ分かりません
この課題を出さないとテストの点の有無に関わらず単位を認定して
もらえません。。
テストは筆記なのでどうにかなりそうなのですがプログラミングは
PCが苦手なのもあいまって手がでません。。
そこでこのスレの皆さんに解答をお願いした次第です。。
わがままは承知です、時間のある、やさしい方は是非どうか協力
お願いします。。。
http://www6.uploader.jp/dl/ktbdp/ktbdp_uljp00002.png.html
http://www6.uploader.jp/dl/ktbdp/ktbdp_uljp00001.png.html

376デフォルトの名無しさん:2008/01/09(水) 03:10:58
オワタ\(^o^)/

留年したほうが、最終的にはためになるよ
ここで人の手を借りてその場をしのぐよりさ。

まあ生涯賃金に差が出るわけだが
377デフォルトの名無しさん:2008/01/09(水) 03:16:10
簡単だな
何か見返りがあればやってもいいがな
378デフォルトの名無しさん:2008/01/09(水) 03:16:11
講義を通じてできない課題や試験を課されるはずがないので
それが1年勉強した成果だと思って諦めたほうが精神的にも大人になれるような気がします
379デフォルトの名無しさん:2008/01/09(水) 03:30:15
>>377
1200でしていただけませんか?
380デフォルトの名無しさん:2008/01/09(水) 03:38:29
>>379
ドルならいいよ
381デフォルトの名無しさん:2008/01/09(水) 03:41:11
よかったな>>375
15万ぐらいで進級できるなら安いもんだろ
382デフォルトの名無しさん:2008/01/09(水) 03:44:52
( ;∀;)イイハナシダナー
383デフォルトの名無しさん:2008/01/09(水) 09:22:34
>>375
君、教えてgooで宿題の質問しまくってアク禁にされた子だよね?
384デフォルトの名無しさん:2008/01/09(水) 09:32:24
 *     +    巛 ヽ
            〒 !   +    。     +    。     *     。
      +    。  |  |
   *     +   / /   吐き気を覚える程度の甘さ=親切
       ∧_∧ / /
      (´∀` / / +    。     +    。   *     。
      ,-     f
      / ュヘ    | *     +    。     +   。 +
     〈_} )   |                                それがゆとりクオリティ
        /    ! +    。     +    +     *  
385デフォルトの名無しさん:2008/01/09(水) 12:13:20
すいません、質問させてください
  Public Class testClass
    Dim hoge As Integer
    Sub test()
      Static hogehoge As Integer
      〜
    End Sub
  End Class
例えば上のようなクラスがあった場合、
メンバ変数であるhogeと静的変数であるhogehogeに見た目以外の機能的な違いはあるのでしょうか?
386デフォルトの名無しさん:2008/01/09(水) 12:29:40
hogehogeはあくまでローカル変数。メソッドを抜けても値は保持されたままだけど、他からhogehogeにアクセスすることはできない。
387デフォルトの名無しさん:2008/01/09(水) 12:44:08
>>385
変数は受動的なので宣言しただけでは機能しない(最適化で切り捨てられる可能性もある…VBはどうだろうね,クラスライブラリとして外部参照される場合とかもあるし)

なので"〜"で省略してある部分で hoge と hogehoge を使い分けているなら,機能的な違いが出る
388デフォルトの名無しさん:2008/01/09(水) 15:38:46
>>383
は?人違い乙w
389デフォルトの名無しさん:2008/01/09(水) 15:53:00
>>388
うわ、これで一気に教える気なくした
とっとと消えろ
390デフォルトの名無しさん:2008/01/09(水) 15:55:26
まじで人違いで、
>>388が「教えてgooで宿題の質問しまくってアク禁にされた子」なんじゃね?
391デフォルトの名無しさん:2008/01/09(水) 16:17:29
単位の一つや二つ落としたところでなんともないだろ、常識的に考えて。
392デフォルトの名無しさん:2008/01/09(水) 17:31:05
>>385
hoge の変数領域は testClass のインスタンス作成時に確保され、
hogehoge の変数領域は Sub test() を最初に呼ばれた時に確保されるので
test() を呼ばない場合にメモリの節約になると言う事を聞いた事がある。
間違ってたらごめん。
393デフォルトの名無しさん:2008/01/09(水) 17:59:24
んなわけあるかい。
VB.NETでのstatic変数は内部的には単なるメンバ変数。
394デフォルトの名無しさん:2008/01/09(水) 18:06:10
>>393
でもメンバ変数として宣言すると
'Static' は、メンバ変数宣言では有効ではありません。
ってエラーになるんだぜ?
395デフォルトの名無しさん:2008/01/09(水) 18:06:17
うん
むしろ回りくどい変なコードが生成されてかえって効率悪くなる罠
396395:2008/01/09(水) 18:08:34
>>395>>393に対して言った

>>394
それが何か?
397394:2008/01/09(水) 18:21:35
他のメンバからアクセス不可能なのにメンバ変数扱いなの?
398デフォルトの名無しさん:2008/01/09(水) 18:24:28
ILで見ると匿名のフィールドになってるね。

Class Test1
 Private A1 As Integer = 0
 Sub Hoge
  Static A2 As Integer
  :
 End Sub
End Class

.class private auto ansi Test1
       extends [mscorlib]System.Object
{
  .field private int32 A1
  .field private specialname int32 $STATIC$Hoge$2001$A2
399デフォルトの名無しさん:2008/01/09(水) 18:32:35
メンバ変数として実装されるローカル変数というか
400デフォルトの名無しさん:2008/01/09(水) 18:35:29
C++のstaticをイメージすると間違うね。まあ、クラス内で使うことはないか。
401デフォルトの名無しさん:2008/01/09(水) 18:47:06
クラス内で使うことはない って何だよ
インスタンスメソッド内で…ならわかるけど
402デフォルトの名無しさん:2008/01/09(水) 18:52:26
>>400
ん?
C++においてローカル変数に付くstaticに限れば同じ意味じゃないの?
C++だとインスタンスごとじゃなくてクラス変数(?)になるんだっけ?
403デフォルトの名無しさん:2008/01/09(水) 19:09:01
C++だとクラス変数扱い。C#たしかjavaもはメソッド内のstaticは不可。
VB6のころは共通モジュール以外でStaticは使ったことがなかったので、
.NETでもModuleでOnlyでクラスモジュール内では使うことはないなといいたかった。
404デフォルトの名無しさん:2008/01/09(水) 19:11:42
特定の単一メソッドにアクセスが限られたメンバ変数、って感じかな?
C++は無知だけど、Javaでこれにあたる修飾子はないよね?
405デフォルトの名無しさん:2008/01/09(水) 22:10:56
例えばTabPageのようにオートスクロール可能なコントロールのスクロールを
マウスのスクロールボタンで操作する場合、スクロールさせるコントロールに
クリックやホバー等のイベントを利用してフォーカスを渡す必要があると思いますが
コントロールに子コントロールがあると子の上でクリックしてもフォーカスを渡せませんよね?
子コントロールをクリックして親コントロールにフォーカスを渡すにはどうすればよいでしょうか?
406373:2008/01/09(水) 22:11:50
>>374
亀レスですが、レスありがとうございます。

有効な手段は無いのですね。
今のままでも我慢できないほどではないので、
少しずつチューニングしていこうと思います。
407デフォルトの名無しさん:2008/01/09(水) 23:15:30
プログラム初心者です。
VB.NETでスライドショーを作成しているのですが、ずっとプログラムを動かしていると
どんどんメモリの使用量が増えていきます。(タスクマネージャーを開いて、プロセスのところでコミットチャージがどんどん増えていきます)

どうやれば、メモリの使用量を抑えることができるでしょうか?

ちなみにプログラムはフォルダにある画像を配列にいれ、それをTimerで次々とピクチャーボックスで表示させ、
全て表示させるともう一度最初の画像を表示させるという風にしています。


408デフォルトの名無しさん:2008/01/09(水) 23:25:07
>test() を呼ばない場合にメモリの節約になると言う事を聞いた事がある。
多分初期化のタイミングの話だろうな。
でかいオブジェクトならまあそういうこともある。
409デフォルトの名無しさん:2008/01/09(水) 23:26:19
イメージが開放されてないんじゃね?
410デフォルトの名無しさん:2008/01/09(水) 23:31:54
たぶんそういうことだろうね
411407:2008/01/09(水) 23:46:26
お返事ありがとうございます。

イメージを開放というのは、ピクチャーボックスにDisposeみたいなものを使うということでしょうか・・・

ちなみにアプリ終了時は↓を使って終わってるので、メモリー消費量がかなりおさまってます
Me.Close()
Me.Dispose()
412407:2008/01/09(水) 23:48:12
理想としては、フォルダの画像一周したら開放。
そして、また位置から画像表示みたいな風にしようかなって思ってます。
413デフォルトの名無しさん:2008/01/09(水) 23:56:37
>>411
ImageオブジェクトのDispose()ちゃんとやってる?
414デフォルトの名無しさん:2008/01/10(木) 00:01:52
>>407
なんかトンチンカンな回答が多いが、問題の本質は画像を配列に格納していること。

冷静に考えてみ?
そんな無駄なことをする必要がどこにある。
415407:2008/01/10(木) 00:18:26
ありがとうございます。
>>413
ためしにやってみたのですが、やはりうまくいきませんでした。
私の認識がおかしかったのかもしれませんが・・・
>>414
確かにわざわざ入れる必要がないことに気がつきました。

もう一度、考え直してプログラムを作ってみようと思います
416デフォルトの名無しさん:2008/01/10(木) 08:47:02
>>389
サーセンwww
友達からもらいましたwww
417デフォルトの名無しさん:2008/01/10(木) 09:09:13
おうおう、順番がまちがってらぁw
まず先輩・友達をあたってからここへ来いw
418デフォルトの名無しさん:2008/01/10(木) 10:47:47
友達にあたるなよ?
419デフォルトの名無しさん:2008/01/10(木) 19:59:53
Try

Catch ex As Exception

End Try
420デフォルトの名無しさん:2008/01/10(木) 20:04:26
すみません。

Try
 〜
Catch ex As Exception
 〜
End Try

これで出た例外 ex をもっと細かく分離して受け取る場合は

Try
 〜
Catch ex As Exception
 〜
Catch ex As HogeException
 〜
Catch ex As HogeHogeException
 〜
End Try

などとするということで良いでしょうか?このCatchの順番を間違えると
受けたい例外の種類として確実に受けられないということはあるでしょうか?
(たとえば上の順番だと、全部最初のExceptionで受けてしまうことになるの
でしょうか?
421デフォルトの名無しさん:2008/01/10(木) 20:13:24
Catchするな
つーかthrowしてみりゃいいだけの話
422デフォルトの名無しさん:2008/01/10(木) 20:26:29
Catch だけでダメなら When も使えば良いじゃない。
423デフォルトの名無しさん:2008/01/10(木) 20:38:55
>>421-422
わかりました。
When ステートメントとかもあったのですね、勉強になりました。
424デフォルトの名無しさん:2008/01/11(金) 00:19:04
質問です。

DataGridViewでセル番地を指定して処理したいのですが
(x,y)のように指定するのはどのメソッドを使えばいいのでしょうか?
425デフォルトの名無しさん:2008/01/11(金) 09:35:59
>>424
DataGridView(columnIndex,rowIndex)
とか
DataGridView(columnName,rowIndex)
columnIndexはイマイチ怪しいときがあるので、後者のカラム名指定の方が確実かなぁ
426デフォルトの名無しさん:2008/01/11(金) 12:10:42
なんじゃそりゃ
427デフォルトの名無しさん:2008/01/11(金) 13:16:09
ColumnNameで指定しておけば、あとあと列の追加とかあった時にいちいち対応しなくてよいでしょ
428424:2008/01/11(金) 23:04:42
>425さん
ありがとうございました。
429デフォルトの名無しさん:2008/01/12(土) 01:51:26
てす
430デフォルトの名無しさん:2008/01/12(土) 02:03:19
てす
431デフォルトの名無しさん:2008/01/12(土) 02:08:19
Private Sub Form3_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) _
Handles Me.KeyDown

Dim ctrl As Control = Me.SplitContainer3.ActiveControl
If Not TypeOf ctrl Is TextBox Then Exit Sub
If e.Control Then
  Select Case e.KeyCode
   Case Keys.A
    DirectCast(ctrl, TextBox).SelectAll()
   Case Keys.C
    DirectCast(ctrl, TextBox).Copy()
   Case Keys.X
    DirectCast(ctrl, TextBox).Cut()
   Case Keys.V
    DirectCast(ctrl, TextBox).Paste()
   Case Keys.Z
    DirectCast(ctrl, TextBox).Undo()
  End Select
End If

End Sub

↑を実行するとCtrl+A以外の条件ではKeyDownイベントが発生しないのですが
どんな原因が考えられるでしょうか?
432デフォルトの名無しさん:2008/01/12(土) 06:00:15
テキストやjpgファイルの作成日時をVBから変更することは出来るんでしょうか?
433デフォルトの名無しさん:2008/01/12(土) 10:37:43
System.IOの下を眺めとけや
434デフォルトの名無しさん:2008/01/12(土) 12:18:18
簡単なテキストエディタ機能を実装しているのですが
選択した文字列をコンテキストメニューから削除する方法で手間取っています

txtCommand.Text.Replace(txtCommand.Text, String.Empty)

としてますが、Undoしても効かない状態です。
Undoできるようにする方法はありますでしょうか。
435デフォルトの名無しさん:2008/01/12(土) 12:33:50
txtCommandの型は?
436デフォルトの名無しさん:2008/01/12(土) 12:45:44
>>435
TextBoxです
437デフォルトの名無しさん:2008/01/12(土) 13:25:46
>>434
SelectedText=""
438デフォルトの名無しさん:2008/01/12(土) 13:31:21
すみません、正しくは
txtCommand.Text.Replace(txtCommand.SelectedText, String.Empty) でした
439デフォルトの名無しさん:2008/01/12(土) 14:20:09
>>438
そのコードは何もしないと思うけど。戻り値を使ってないから。
で、>>437
440デフォルトの名無しさん:2008/01/12(土) 14:34:45
>>431
普通にCtrl+A以外も拾えたよ?
FormのKeyPreviewがTrueになってたら、イベント自体は絶対発生してると思うけど。
441デフォルトの名無しさん:2008/01/12(土) 19:29:57
アイコンをつくって実行ファイルにつけたのですが
アイコンがちっちゃいサイズで表示されるとき
絵がちゃんと表示されないんですがなぜですか?
442デフォルトの名無しさん:2008/01/12(土) 20:07:54
TextBoxに長い文字列を表示させたいのですが、
TextBoxの幅を十分に取ることができません。

それで、複数行に表示させたいと思います。
しかし、文字列に改行を含ませるわけにはいきません。

それでtextBox.Multiline=true、textBox.AcceptsReturns=false
と設定してみたのですが、
入力してみると改行を受け付けてしまいます。

なぜ????
何か思いっきり勘違いしてる?

他のプロパティはデフォルトのままです。
443デフォルトの名無しさん:2008/01/12(土) 20:20:01
なんでMSDN読まないの?
444デフォルトの名無しさん:2008/01/12(土) 20:39:48
OK ありがとう
AcceptsReturnsでは望みの動作は得られないってことね

じゃ、上記の動作をさせるにはどうしたらいいんでしょう?
445デフォルトの名無しさん:2008/01/12(土) 20:50:13
自己レス
KeyDownとKeyPressの組み合わせできました
446431:2008/01/12(土) 22:35:07
>>440
ありがとうございます。
自分もさっきフォームにテキストボックス1つのシンプルな配置でやってみましたが
ちゃんと拾いますね・・・
でももともとのフォームで実行するとCtrl+A以外ではイベントが発生しないんです・・・
ちなみにそのフォームというのは

下 Form - SplitContiner - TabControl - Panel - TextBox 上

の順番で重なってますが全く原因がわかりません・・・
447431:2008/01/12(土) 22:39:00
ちなみのちなみですがKeyDownではなくKeyUpだと>>431の条件すべてで
イベントが発生するのですが、KeyDownだけ発生しない原因てなんでしょうかねぇ・・・
448デフォルトの名無しさん:2008/01/13(日) 00:10:35
試していないから解らんが
>下 Form - SplitContiner - TabControl - Panel - TextBox 上
なら
If Not TypeOf ctrl Is TextBox Then Exit Sub
↑ここで抜けてる気がするなぁ。

Ctrlの定義を
Dim ctrl As Control = Me.SplitContainer3.TabControl.Panel.ActiveControl
にしなきゃダメな悪寒

イベントが発生しないと書いているが、イベント事態は発生してるんじゃない?
イベントハンドラの一番上にmessageboxなりConsole.writeなり書いてイベント事態が起きてるかどうか確認してみた?

449431:2008/01/13(日) 02:00:27
>>448
MessageBoxで確認しているので間違いなくCtrl+A以外ではイベントが発生していません
Controlキー単独だとKeyDownイベントが発生しますが、Ctrl+A以外のキーだと駄目です

マジで心当たりのある方、お願いいたします・・・
450デフォルトの名無しさん:2008/01/13(日) 02:10:22
階層上のすべてのコントロールでキーイベントとってみれば。
Spy+使ってどのハンドルにメッセージが来てるか見るとか。
451デフォルトの名無しさん:2008/01/13(日) 02:55:05
>自分もさっきフォームにテキストボックス1つのシンプルな配置でやってみましたが
>ちゃんと拾いますね・・・
解決糸口はここだよなぁ。上記の通りであれば、環境的な問題ではなく、何かのコントロールがジャマしてるんだろうか。
SplitContiner - TabControl - Panel - TextBox
となっているみたいだけど、
SplitContiner - TextBox
TabControl - TextBox
Panel - TextBox
みたいな感じで地道に試してみるしかないのかな?
452デフォルトの名無しさん:2008/01/13(日) 03:05:30
>>431のコードで
>>446
下 Form - SplitContiner - TabControl - Panel - TextBox 上
の順にコントロール置いて試してみたが普通に全部拾えた。
FormのKeyDownが拾えなくなるってことは、どこかでFormのKeyPreviewをFalseにするようなコードが書かれてるのか?
TextBox自体のKeyDownはちゃんと発生しているのかな?
453デフォルトの名無しさん:2008/01/13(日) 04:35:40
ちょっと質問です。
VB.NETでDataTableオブジェクトとかが使用しているメモリ量を見たいんですが
タスクマネージャでは今一歩正確性に欠けるので(できれば)フレームワークなどの機能で計測できないでしょうか?
454デフォルトの名無しさん:2008/01/13(日) 04:44:57
CLRプロファイラじゃ駄目なん?
455デフォルトの名無しさん:2008/01/13(日) 04:50:17
>>454
早速のレスサンクスです!!!
ググってサイトみてみました

おそらくヒープメモリの割り当てサイズが知りたいのでまさにこれではないかと!!!!
ちょっと明日にでも使ってみます!!

助かりました ありがとうございました。
456デフォルトの名無しさん:2008/01/13(日) 05:06:02
>>449
俺もそうなった時があった。
MDIフォームの子フォームとして使ってたため
イベントがメニューのショートカットに持っていかれてた。
457デフォルトの名無しさん:2008/01/13(日) 19:46:44
すいません。くだらない質問だと思いますが、ご教授お願いします。


tabコントロールで特定ページに入ったとき、
既に生成されてるDataTableを元グラフを描画しようとしています。

そもそも、VBの挙動の根幹部分から分かっていないのですが、
特定タブに入った後に、ボタン等のイベントを拾って描画はできるのですが、
これだと、別のタブに移動した後に、再びこのページに戻ってくると、
再度ボタンを押して描画させなければなりません。
それだと面倒なので、特定ページに入ったときに描画させるようにしたいのですが、

Handles TabPages1.Click

だと早すぎるのか?描画がされて消えてしまうような感じですし、
どのイベントを拾えばいいのかが分かりません。

どなたかこの辺を勉強しろでも構いませんので、教えてください。
よろしくお願いします。

458デフォルトの名無しさん:2008/01/13(日) 19:50:07
ドトネトでは、というかWindowsでは描画はWM_PAINT(Paintイベント)で行うのが基本。
つまりその基本どおりにやるだけじゃないの?
459457:2008/01/13(日) 20:11:46
>>458
やっぱAPIを知らなきゃ話にならないですよね・・・

もう一つだけ、たぶんこれも勉強しろって事なんでしょうけど
教えていただきたいのですが、

Private Sub TabControl1_SelectedIndexChanged( _
ByVal sender As Object, ByVal e As System.EventArgs) _
Handles TabControl1.SelectedIndexChanged

MsgBox("test")
graph = New Graph(GraphArea, 100, 90)

End Sub

Graphクラスの初期化時に、グラフの背景を描画させているのですが、
TabControl1の選択時に、

MsgBox("test")と、ワンクッションおくと、きちんとグラフが描画されるのに、
これが無いと描画されないというのは、どういう原理なんですかね・・・?


もしよろしければ教えてください。お願いします。
460デフォルトの名無しさん:2008/01/13(日) 20:28:43
描画されないっていうか、描画されたあと上描きされてるんだよ。
何もないと
グラフ描画したあとペイントイベントで上描き(→描画されていないように見える)
メッセージボックスを表示すると、そこで処理がとまるからペイントイベント先行、その後グラフ描画
となるからグラフが表示される。
>>458の言うとおり、Paintのイベントハンドラ内でグラフ描画処理すべし
461457:2008/01/13(日) 20:39:46
>>460
なるほど、そういう事ですか。
ご親切に教えていただきありがとうございました。

もう少し精進してきます
462デフォルトの名無しさん:2008/01/13(日) 20:44:24
ちゅかペイントのイベントハンドラで書かないと、フォームが重なったり隠れたりしたあと再描画されないからな(基本的に)。
まぁがんがれ(`・ω・´)!
463デフォルトの名無しさん:2008/01/14(月) 12:06:10
フォーム以外のところをクリックした時のマウスダウンイベントを取得するにはどうしたら
いいですか?このまえWM_NC**を使うということを聞いたのですが、マウスダウンのイベントが発生しないので困ってます
どなたか教えてください
464デフォルトの名無しさん:2008/01/14(月) 12:14:14
グローバルフック
465431:2008/01/14(月) 14:49:18
>>456
まさにそのとおりでした。ありがとうございます。
MDI子フォームでいつの間にか標準のメニューが挿入されていて
Ctrl+A以外がバッチリ割り当てられていたのですが
MenuStripのVisibleをFalseにしてあるので全く気づきませんでした。
IDEのほうでショートカット割り当てられると割り当てたキーでは
同じキーイベントは拾えなくなるんですね。

レスいただいたみなさん、ありがとうございました。
466デフォルトの名無しさん:2008/01/14(月) 22:16:53
お世話になっております。

ttp://www.ideaxidea.com/archives/2007/10/windows_pc.html

こちらの記事の2番目のフォームのようなコントロールボックスを作成したいのですが、どういった方法があるでしょうか。
467デフォルトの名無しさん:2008/01/15(火) 00:55:29
>>431
MDI子フォームと書かずに解答を出せとは難問だったな。
原因と思しき場所を絞って質問するのもいいが、全体を教えてくれなきゃ想像付かん場合もある。
何であれ、解決してよかったが…。
468デフォルトの名無しさん:2008/01/15(火) 01:00:05
>>466
コントロールボックスってなんぞ?
2番目って
ttp://www.ideaxidea.com/archives/2007/10/14/mainte_2.gif
これかな?
これのどの部分を作りたいの?
469デフォルトの名無しさん:2008/01/15(火) 03:14:12
 
'.gif\P2P
r
470デフォルトの名無しさん:2008/01/15(火) 08:06:44
>>468
最小化、最大化、閉じるボタンの部分です
.NETのプロパティがControlBoxなのでそういう名称だと思っていましたが…
画像のようにデザインを変更したいのです
471468:2008/01/15(火) 10:27:18
そういえばそういう名称だったねwww
なんか脳が溶けてました

これってVistaのUIで、別に自前でつくっているわけじゃないと思う。
別OSでそっくりにつくるなら、タイトルバー消して、ボタン配置して、画像用意するかVisualStyleRendererでボタンの外装作り変えて…って感じになるのかな。


472デフォルトの名無しさん:2008/01/15(火) 12:44:42
VistaのUIだと思ってダウンロードしたのですが、XPでもこのUIでした
タイトルバーを消してやってみます
ご教授ありがとうございました
473デフォルトの名無しさん:2008/01/15(火) 14:47:28
ProgressBarについて教えてください。これを マーキースタイルにして
そのスピードをMarqueeAnimationSpeedでセットすると、OSはXpですが
Valueを操作しなくても自動的に動いてくれるようになるでしょうか。
ためしにそれだけやったところでは動き出すようにはなりませんでしたが、
メソッドを何か叩くことでスタートするのでしょうか。何卒よろしくお願いします。
474デフォルトの名無しさん:2008/01/15(火) 14:55:40
Valueを操作しないで、何を持って100%だのなんだの感知させる?
475デフォルトの名無しさん:2008/01/15(火) 15:15:29
>>474
さっそくどうもです。MarqueeAnimationSpeed は何がどこまで動く
速度になるかがわかりませんでした。Valueを入れて動かすとします
とスピードの効果が出てくるのでしょうか。そこがわかりません。
476デフォルトの名無しさん:2008/01/15(火) 15:57:23
Marqeeは2003/Vistaでしかサポートしてなかったような希ガス
477デフォルトの名無しさん:2008/01/15(火) 15:59:37
Windows XP Home Edition, Windows XP Professional x64 Edition, Windows Server 2003 プラットフォームメモ : Marquee スタイルはこれらのプラットフォームでのみサポートされています。
478デフォルトの名無しさん:2008/01/15(火) 16:22:21
クラシック表示にしてまいか?
479デフォルトの名無しさん:2008/01/15(火) 18:15:47
>>478
クラシック・スタイルではVisualStyleを使っていないので自動的には動かず
XpスタイルにすればVisualStyleを使っているので自動的に動くのでしょうか・・・。
どちらでも同じようにValueを与えないと動かないような・・・、それではもう一度
確認してみますです。
480473:2008/01/15(火) 18:48:51
>>479
試してみましたら、きちんと動作していました。認識が違っていました。
バックグラウンドワーカーと併用したときに何か別の原因で動かなかった
のを間違って記憶していました、すみません・・・。

ただやってみますとやはりシングルスレッドで動かすと動きが早くなったり
遅くなったりして等速では動かないですね・・・、これはタイマーでValueを
操作しても同じでした。等速で動かすには別スレッドでコントロールを直接Value
を与えることができないと無理そうな感じでした、といってもそういうオブジェクト
をいじるとNGなのですよね??
481デフォルトの名無しさん:2008/01/15(火) 18:54:05
つうか裏でなんか重い処理してんだろ?
描画は多分優勢度低いから無理がある可能性が高い気がするよ。
482デフォルトの名無しさん:2008/01/15(火) 22:56:52
>>480
どうしても気になるならフリースレッドの処理に時々Thread.Sleep()入れてやれば
改善するんじゃない?

でもそんなことにこだわる意味があるのかな?
プログレスバーの意義はユーザーに処理がフリーズしてない安心感を与えることだろうから、
それさえできれば必要十分な気がするけど。
483デフォルトの名無しさん:2008/01/15(火) 23:12:39
>>481-482
>プログレスバーの意義はユーザーに処理がフリーズしてない安心感を与えること
わかりました。つっかえつっかえ動くような感じなのですが、それがプログラムの
作業によるのだということでこれでよしと考えました。ありがとうございました!
484デフォルトの名無しさん:2008/01/16(水) 02:33:54
>>483
裏で動いてる処理を何一つとして理解してないだろおまえ……
485デフォルトの名無しさん:2008/01/16(水) 09:58:17
質問です。ExplorerなどではHDD、CD-ROM、メモリースティック、
ネットワークドライブ、などの媒体をそれぞれ見分けてそのアイコンが表示されて
いました。

これというのはそれを示す何かのパラメータを見て行っているのだと思いますが、
このパラメータを取り込むためのクラスがありましたら教えてください。
486デフォルトの名無しさん:2008/01/16(水) 10:09:15
DriveInfo.DriveType
487デフォルトの名無しさん:2008/01/16(水) 10:13:54
>>486
おお、あるのですね!ありがとうございました!!調べてみます!!
488デフォルトの名無しさん:2008/01/16(水) 10:26:23
質問があります。

コンテナコントロールを派生させ子コントロールが置けるクライアント領域の範囲
を変更したいのですが、どのメソッドをオーバーライドすればいいのでしょうか?

例えば、コンテナコントロールの Width が 100 で Height が 200 ですと、
内部に子コントロールを配置してその Dock を Fill にすると、そのコントロールは
Width 100 Heidht 200 になりコンテナコントロール全体に広がりますが、
このコンテナコントロールのクライアント領域を変更し、若干余白を持たせるため
に既定で、上、下、左、右から 10 ピクセル程狭めたオリジナルのコントロールを
作成したいのです。
489デフォルトの名無しさん:2008/01/16(水) 10:32:17
させ子がいると聞いて飛んできました
490デフォルトの名無しさん:2008/01/16(水) 11:08:43
コンテナのプロパティになかったっけ?
491デフォルトの名無しさん:2008/01/16(水) 11:11:28
Paddingのことか
492488:2008/01/16(水) 11:30:47
通常 Panel とかのコンテナコントロールのクライアント領域は、

横 0 〜 Width
縦 0 〜 Height

ですよね。

これを変更して周りに 10 ピクセル程クライアント領域として認めない領域を作った場合、

横 10 〜 Width - 10
縦 10 〜 Height - 10

になりますが、この場合 Padding の Left や Top が 0 の場合は、
クライアント領域の一番左上(10、10)になるようにしたいのです。
恐らく Control クラス辺りをメソッドなどをオーバーライドすれば
出来そうな予感がするのですが、わからないのです。
493デフォルトの名無しさん:2008/01/16(水) 11:44:38
VB VB.netのアルバイト情報
www.sfpac.com/
494デフォルトの名無しさん:2008/01/16(水) 12:01:25
怪しい
495デフォルトの名無しさん:2008/01/16(水) 12:06:18
面接官「特技はブラックジャックとありますが?」
学生 「はい。ブラックジャックです。」
面接官「ブラックジャックとは何のことですか?」
学生 「手術です。」
面接官「え、手術?」
学生 「はい。手術です。患者全員の足元を見て手術料をふんだくります。」
面接官「・・・で、そのブラックジャックは当社において働くうえで何のメリットがあるとお考えですか?」
学生 「はい。社員がケガしてもお金払えば治せます。」
面接官「いや、当社にはケガをするヤワな輩はいません。それに人のお金をふんだくるのは犯罪ですよね。」
学生 「でも、重症の足でも切断せずに治せますよ。」
面接官「いや、切断とかそういう問題じゃなくてですね・・・」
学生 「モグリなんですよ。」
面接官「ふざけないでください。それにモグリって何ですか。だいたい・・・」
学生 「医師免許を持っていな医師です。闇医者とも書きます。バレないコツは・・・」
面接官「聞いてません。帰って下さい。」
学生 「あれあれ?怒らせていいんですか?ふんだくりますよ。3000万円。」
面接官「いいですよ。ふんだくって下さい。おふくろの命が助かるなら3000万円くらい一生かかっても払います。」
学生 「その言葉が聞きたかった。」
面接官「先生・・・」
496デフォルトの名無しさん:2008/01/16(水) 12:21:09
Panelの中にPanel作ってやった方が早くね?
497デフォルトの名無しさん:2008/01/16(水) 13:55:22
>>496とほぼ同じ意見だが、それだと親のパネルにもコントロールが置けてしまうので、
UserControlの指定した位置((10,10)とか)にPanelを配置したコントロールをつくればいいんじゃない。
498デフォルトの名無しさん:2008/01/16(水) 14:51:37
いよいよ2月に2008が発売になると聞いたのですが、
2008で作ったソフトははVISTAで何も追加しなくとも
うごくのでしょうか?
NET3.5っていうことはNET3.0が入っているVISTA
ではダメということ?
これではいつになってもVB最新版で作ったソフトは
最新OSでは満足に動かないってことになるのでは?
だれかご存知の方いらっしゃいませんか
499デフォルトの名無しさん:2008/01/16(水) 14:54:35
心配無用
500デフォルトの名無しさん:2008/01/16(水) 16:03:25
2008なら.NET Frameworkのバージョンが選択できるから、心配なら3.0でやればいいじゃん。
どうせ中身2.0なんだし。
501デフォルトの名無しさん:2008/01/16(水) 16:30:54
Imageオブジェクトで、PNG形式のものをBMP形式に変換するメソッドとかは
どこかにあるでしょうか?
502デフォルトの名無しさん:2008/01/16(水) 16:52:24
Image.Save(String, ImageFormat)
503デフォルトの名無しさん:2008/01/16(水) 16:55:10
504デフォルトの名無しさん:2008/01/16(水) 17:53:02
>-1回くらいググれ馬鹿!
激しくワラタw
しかし、>>503もツンデレだなw
505デフォルトの名無しさん:2008/01/16(水) 20:13:24
>>488
何故4方にアンカー打てばいいだけの話を面倒にしようとしているのかね?
506485:2008/01/17(木) 00:21:22
昨日 DriveInfo.DriveType の件、教えていただきありがとうございました。

CD-R をフロッピーと同じように読み書きできる B's Clip というソフト
を導入していました。このときに Explorer では、コンテキストメニューや
D&DなどによるCD-Rの読み書き、およびフォルダのリネームなどができました。

それで、Win32APIの SHFileOperation()でのコピーなどはできたのですが、
Explorerではできたフォルダのリネームを My.Computer.FileSystem.RenameDirectory()
でやってみたところ、これは書き込みができない旨のメッセージが出てきて
失敗していました。

また、Explorerでは「取り出し」というメニューがあってCD-Rを取り出しできました。

こうした特定のファイルやデバイスの操作をExplorerではできる場合、それを
なんらかの形でプログラムからもCD-Rドライブなどへの操作を可能にする
ためにはどんな方法をとるべきでしょう?どこかにそれ用のAPIなどがわかる
ようになるでしょうか?
507デフォルトの名無しさん:2008/01/17(木) 00:58:58
APIならこんなの使ってみれば?
ttp://support.microsoft.com/kb/165721/ja

別にこれじゃなくてもいろいろ出来ると思うけど
508デフォルトの名無しさん:2008/01/17(木) 01:03:27
>>506
COM経由でいけると思う
IShellFolder::SetNameOf とか IContextMenu.InvokeCommandとか。
知らんけど。

CDの取り出し自体はDeviceIoControlでできる
509デフォルトの名無しさん:2008/01/17(木) 01:04:13
>>506
そのCDドライブ上のファイル操作はB'sが
シェル拡張を仕掛けているからできるようになっている。

だから、SHFileOperationのようなシェルに対する操作はできるが、
My.Computer.FileSystemはシェルより下層の操作となるため、そのように失敗する。
ファイル操作に関してはSHFileOperationに限らずシェルの機能を使えばいけるはず。
510485:2008/01/17(木) 07:30:59
>>507-509
ああ、こんなに早く多くの明解なご指導、感謝に堪えません。
Shell、IShellFolder、DeviceIoControl これらにトライしてみます!
ありがとうございました!
511デフォルトの名無しさん:2008/01/17(木) 17:32:29
質問です。
SqlDataReaderからデータを取得するとき、途中で安全に中断するにはどういうやり方が好ましいでしょうか?
512デフォルトの名無しさん:2008/01/17(木) 17:36:38
電源ボタンを長押しし、そっと目を閉じる。
513デフォルトの名無しさん:2008/01/17(木) 18:58:32
>>512
つぼった
514デフォルトの名無しさん:2008/01/18(金) 16:26:18
コントロール配列がまんどくさすぎる!!!!!!!!!
VB6以前のように、簡単にならんの?

マクロとか駆使すればVB6みたいに出来るかな?
簡単に実装できるマクロとか、どこかに落ちてないでしょうか・・・?

自分で作るしかないかな?
515デフォルトの名無しさん:2008/01/18(金) 16:39:44
またはじまった
516デフォルトの名無しさん:2008/01/18(金) 17:13:12
>>514
コントロール配列つくって何がしたいのさ?
517デフォルトの名無しさん:2008/01/18(金) 17:25:40
俺にもそう思っていた時がありました。
AddHandler ステートメントの存在を知るまでは。
518デフォルトの名無しさん:2008/01/18(金) 17:29:17
AddHandlerでいちいちイベントつくるのめんどくせぇー
519デフォルトの名無しさん:2008/01/18(金) 17:35:52
AddHandlerの面白さが解らないなんてVB.NETの半分を損してるよ。
520514:2008/01/18(金) 17:46:11
>>519
まぢですかぁーっ!?
何か面白いワザがあるのだろうか・・・?
ただひたすら同じイベントに関連付けるだけじゃないの・・・?

とりあえずコレクションにして、
ちまちま作成してるんですが、
あまりにもめんどくさいので、
叫んでしまいました。

違うタイプのコントロールを、
同じ配列にしたりできたりするのは、便利だとはおもうが、
そんなことするのは稀だ。
521デフォルトの名無しさん:2008/01/18(金) 18:49:04
同一グループボックス内に2個のラジオボタンを配置しました。
このときのラジオボタンのCheckedプロパティを
アプリケーション設定に保存するにはどうすればよいでしょうか?
各々のラジオボタンのプロパティを保存するようにすると、動作に不具合が生じます。

あるサイトには一方のラジオボタンのプロパティのみを保存するように
とありましたので試してみたところ、確かに正常に動作するようになるのですが、
もう一方のラジオボタンのCheckedプロパティがTrueのときに終了すると、
次回起動時は双方のラジオボタンのCheckedプロパティがFalseとなってしまいます。

常套的な手段があるようでしたら教えてください。
522デフォルトの名無しさん:2008/01/18(金) 19:04:30
>>521
trueになってるラジオがどれであるか
これを保存(テキトーに番号かなんかで)

起動時には保存されている値に該当するラジオをtrueにする


以上
523デフォルトの名無しさん:2008/01/18(金) 19:46:57
>>521
GroupBox1 に張られているのが RadioButton のみって前提なら

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Name As String = GetSetting("MyApp", "GroupBox1", "Control", "")
If (Name = "") Then
Exit Sub
End If
Me.SuspendLayout()
For Each Control As RadioButton In GroupBox1.Controls()
If (Name = Control.Name) Then
Control.Checked = True
Exit For
End If
Next
Me.ResumeLayout(False)
End Sub

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
For Each Control As RadioButton In GroupBox1.Controls()
If (Control.Checked) Then
SaveSetting("MyApp", "GroupBox1", "Control", Control.Name)
Exit For
End If
Next
End Sub

でおk
524デフォルトの名無しさん:2008/01/18(金) 20:10:24
>>521
考え方として一番シンプルなのは、UIが表現している設定を
プライベートなプロパティとして持つことだと思うよ。例えばこんな感じ。

  Private Property YesSelected() As Boolean
    Get
      Return radYes.Checked
    End Get
    Set(ByVal value As Boolean)
      If value Then
        radYes.Checked = True
      Else
        radNo.Checked = True
      End If
    End Set
  End Property

でこれをMy.Settingなり何なりをつかって保存/復元すればいいわけだ。

あるいは手間を惜しまないなら、ラジオボタンの部分だけをカスタムコントロールにして
そいつに上に書いたようなプロパティを持たせればもっと分かりやすい。
525521:2008/01/18(金) 20:34:12
>>522-524
どうもありがとうございます。とても参考になりました。
PropertyBindingを設定せず、INIファイルに書き出す要領でアプリケーション設定に保存しようと思います。
526デフォルトの名無しさん:2008/01/19(土) 00:15:16
iniwwwwwwwwwww
527デフォルトの名無しさん:2008/01/19(土) 01:46:34
>>516
クラスの上下関係やら壁をぶち破って、コントロールのプロパティを弄りたいのだと。
VB6で書いた小生の駄作プログラムがまさにそんな状況だったけど、然るべき
ハンドラを介せば、汚い横紙破りはしなくていい筈だ。
528デフォルトの名無しさん:2008/01/19(土) 02:04:34
VB脳にOOPは無理じゃないかと思うときがある
529デフォルトの名無しさん:2008/01/19(土) 02:13:46
まだコントロール配列とか言ってる人がいるのか。。。

まあ用途にもよるのは確かだろうけど、普通はコントロール配列のように
ユーザーによって操作されたコントロールをインデックスで識別したい場面っていうのは
そんなに多いはずがないと思うんで、たぶん基本的に何か勘違いした発想をしてるんだろうなあ。

どうでもいいが上の方でAddHandler使えとか言ってる人がいたが、
それはコントロール配列の代替方法と直接関係ないだろう。

ひとつのメソッドに複数のオブジェクトのイベントを紐付けするのはHandles句でもできる。
それにAddHandler使おうが、肝心のインデックスによる操作されたコントロールの識別が
できないことに変わりはない。

どうしてもそんなアナクロなことがしたければデザイナでTagに数字でも入れておいて

Dim index as Integer = CInt(DirectCast(sender, TextBox).Tag)

みたいにするのかなあ。

あと、VB.NETにも互換ライブラリに一応コントロール配列ってあるんだよね確か。
コントロール配列を使ってるVB6のコードを変換すると見られたはず。
530デフォルトの名無しさん:2008/01/19(土) 02:20:45
そもそもコントロール配列が必要になる理由がわからん…
なに作ってんの?
531デフォルトの名無しさん:2008/01/19(土) 02:22:30
なんだろう、大量のcheckboxを番号で管理してるとか・・・
532デフォルトの名無しさん:2008/01/19(土) 02:23:21
そういう人って「マインスイーパー作れ」って言われたら迷わずボタン並べ始めるんだろうな
533デフォルトの名無しさん:2008/01/19(土) 02:23:22
いやVB6な人の中には、同じ種類のコントロールが2つ以上存在すると
意味なくコントロール配列にしたがる人がいるんだよたぶん
534デフォルトの名無しさん:2008/01/19(土) 05:02:22
>>533
> 同じ種類のコントロール
別に,「CommandButtonがいっぱいある」,から「CommandButtonをコントロール配列化しよう」とは思わない.
「同じ用途(同じ目的)のコントロールがいっぱいある」,から「処理を一元管理しよう」とするとコントロール配列化が妥当という気になってくる.
それでもあんまりそういう場面に出くわさないんだけどな.

これがVB.NETであっても,「同じ用途のコントロールを一元管理しよう」という要求は依然としてあるから,
コントロールの配列とかコントロールの集合とか,またはイベントハンドラの複数のバインディングとかにしわ寄せ行ってる感じがするな.

VB.NETは共通言語基盤上でほかの言語ともお話する必要があるから,言語としてコントロール配列のサポートが無くなったと思っている.
535デフォルトの名無しさん:2008/01/19(土) 05:09:04
コントロール配列って.netでやるならコントロールの配列作ればいいだけじゃね?
536デフォルトの名無しさん:2008/01/19(土) 09:18:40
だが、そのコントロールの配列を
いちいち作るのがマンドクセー
それがVB6厨
既存コントロールを継承してカスタムコントロールつくって、
コレクションつくるのも、まんどくせー
それがVB6厨
537デフォルトの名無しさん:2008/01/19(土) 11:26:19
Controls("textBox" + i)よりはコントロール配列の方がマシな気はしないでもない
もっと綺麗な方法はいくらでもあるのはわかってるけど
538デフォルトの名無しさん:2008/01/19(土) 14:03:49
新規Zipフォルダの作成方法について教えてください。
エクスプローラでは新規ファイルの作成でZipフォルダが作れました。
これと同じことをしたい場合、レジストリでShellNewをみてみると、そこには
Dataが並んでいました。

HKEY_CLASSES_ROOT\.zip\CompressedFolder\ShellNew

これのDataの値はREG_BINARY型だったため、バイナリファイルを作成して
そこにその値を書き込んで保存しましたが、Zipフォルダにはなりませんでした。

作成する方法が知りたいのですが、何卒よろしくお願いします。
539デフォルトの名無しさん:2008/01/19(土) 14:48:37
>>538
タダのZipファイルだからZipファイル扱えるライブラリを使うとか,
ためしに作成してバイナリエディタで見て同じバイト配列を書き込むようにするとかでいいと思うよ
540デフォルトの名無しさん:2008/01/19(土) 15:10:30
541デフォルトの名無しさん:2008/01/19(土) 16:23:13
>>538
なるけど.zipにした?
542デフォルトの名無しさん:2008/01/19(土) 17:08:22
>>539-541
お世話になります!!

>>541
・・・そうでした。すみません。もしかしてそうかなと思いつつソース見直しつつ
おりました折、お答えくださったのを見て今試してみました、結果はバッチシ
ですた。すんませんです。助かりました、まことにどうもでした!!

ググってみるとZipfldr.dll などのファイル名が出ていたのでそれ使って
どうこうするのかと思ったりもしてましたらそういうことではなくて助かりました。

Zip がこれでできるということは、、このShellNewのDataがある拡張子の
ファイルやフォルダはすべてこれと同じようにして作成可能と考えてよい
でしょうか。
543デフォルトの名無しさん:2008/01/19(土) 17:43:11
VB2008 EEの自動保存を解除する方法を教えてください
ユーザー設定にもオプションにもそのようなものが見つかりません
544デフォルトの名無しさん:2008/01/19(土) 18:11:16
俺はVS2005スタンダードだから、2008EEでも同じかはわからないけど、ツール - オプションの全ての設定を表示にチェック入れた?
チェック入れたら、環境の自動バックアップでソースコードの自動バックアップしないようにできるけど。
2008からは変わったのかな…。
545543:2008/01/19(土) 18:28:04
>>544
> 全ての設定を表示にチェック入れた?

入れてませんでした チェックしたら自動バックアップの項目が出てきました
これで自動保存を恐れることなく色々いじれます
単純ミスでした ありがとうございます 
546デフォルトの名無しさん:2008/01/20(日) 19:00:17
[DataDefモジュール]
(グローバル変数宣言部)
Public Sub InitializeData()
 この中で色々データの初期化を行う
End Sub

[MainFormモジュール(ユーザフォーム)]
Private Sub MainForm_Activate()

 ●DataDef.InitializeData

End Sub

Private Sub MainForm_Initialize()

 ●DataDef.InitializeData

End Sub

F5でデバッグを開始するとブレークを張ったMainForm_Activate()の中も
MainForm_Initialize()中でも停止せず、どうやらプロシージャ内に入ってないみたいなんですが、
ユーザフォームが起動した時に最初に行う処理はユーザフォームモジュールの
どのプロシージャにあるのでしょうか?
547デフォルトの名無しさん:2008/01/20(日) 19:02:10
Win32APIスレで訊いていたのですが、http://pc11.2ch.net/test/read.cgi/tech/1199514664/510
ちょっと教えていただけませんでした。もしご存知の方いらっしゃいましたらご指導をお願いします。

現在ファイルのプロパティを表示するために ShellExecuteEx を使っていました。そのとき、
通常のファイルやフォルダの場合ではOKだったのですが、たとえばブリーフケースのような特殊
なフォルダの場合、Explorer ではそれ用の専用のタブも追加されてプロパティダイアログが表示
されていました。それと同じように表示するためには、構造体 ShellExecuteInfo のメンバを
どのように指定すればよいでしょうか?現在のものはこれでした。

Dim info As New NativeMethods.SHELLEXECUTEINFO
With info
.cbSize = Marshal.SizeOf(info)
.fMask = NativeMethods.SEE_MASK_NOCLOSEPROCESS Or _
NativeMethods.SEE_MASK_INVOKEIDLIST Or _
NativeMethods.SEE_MASK_FLAG_NO_UI
.hWnd = Operation.hWndOfAppWindow
.lpFile = FilePath
.lpVerb = "properties"
.lpParameters = "\0"
.lpDirectory = "\0"
.nShow = 0
.hInstApp = IntPtr.Zero
.lpIDList = IntPtr.Zero
.lpClass = "\0"
.hkeyClass = IntPtr.Zero
.dwHotKey = 0
.hIcon = IntPtr.Zero
.hProcess = IntPtr.Zero
End With

この他に指定が必要な項目と値を知りたく、ご指導をお願いします!
548デフォルトの名無しさん:2008/01/20(日) 20:27:06
とりあえずSEE_MASK_NOCLOSEPROCESS と0とIntPtr.Zeroとヌル文字は設定する必要ないだろ

lpIDList試してみたら?
549デフォルトの名無しさん:2008/01/20(日) 22:55:09
>>548
ご指導、さっそくありがとうございます!
>lpIDList
まずはこれについてググってみることにします。
550デフォルトの名無しさん:2008/01/21(月) 13:57:47
コンボボックスを配置したMainFormと、
処理状況を表示するためのプログレスバーを配置したサブフォームがあります。

サブフォームのBackgroundWorkerで時間のかかる処理を行い、
そこで取得した値を下記のようにコンボボックスに追加したいのですが、
追加できません。

MainForm.ComboBox.Items.Add(value)

他スレッドからはコントロールを操作することはできないのでしょうか?

環境:Win XP+VB2005EE
551デフォルトの名無しさん:2008/01/21(月) 14:03:35
http://pc11.2ch.net/test/read.cgi/tech/1196663772/437
これについて知りたく思います。実際、こうしたプログラム開発での
情報共有化ではGhostDocは現実に利用されているのでしょうか。
よろしくです。
552デフォルトの名無しさん:2008/01/21(月) 14:30:41
>>550
>他スレッドからはコントロールを操作することはできないのでしょうか? 
出来ない。
UIスレッド以外からUIをいじる場合はControl.Invokeを使う。
途中経過の表示などにはBackgroundWorker.ProgressChangedも使える。
553550:2008/01/21(月) 14:36:19
>>552
Control.Invokeですね。
さっそく調べて実装したいと思います。

また「UIスレッド」という言葉を知らず、ググることすらできませんでした。
本当に助かりました。ありがとうございます。
554デフォルトの名無しさん:2008/01/21(月) 16:56:21
PictureBoxやLabelのimageプロパティにgifアニメを設定すると、表示はされるのですがカクカク表示されてしまいます。
スムーズにアニメを表示させるにはどのようにしたらよいのでしょうか?
555デフォルトの名無しさん:2008/01/21(月) 17:32:44
>>554
強制的にRefreshしてやれば良いんじゃないかな?
556デフォルトの名無しさん:2008/01/21(月) 18:36:43
>>554
コマ送り状態になるって意味?
フツーはそんな風にならんだろ。

コマ送り状態になるとしたら、PCのスペックがよほどしょぼいか、あるいは
UIスレッドにビジーループ的な重い処理を書いているか。

前者の場合処置なし。
後者の場合は重い処理はフリースレッドで実行するようにするか、あるいは
タイマでもつかって処理を分割して少しづつ実行するようにする。
557554:2008/01/22(火) 00:19:08
>>555
とりあえずそれでうまくいきました。
タイマーでリフレッシュかけてます。

>>556
使っているのは
ttp://mentalized.net/activity-indicators/indicators/pascal_germroth/indicator.white.gif
これと似た様なやつです。
Labelのimageに設定すると、ブラウザでみた時のように速く動いてくれません。
重い処理をしているのは確かですが、BackGroundWorkerで別スレッド処理させてます。
558デフォルトの名無しさん:2008/01/22(火) 01:37:50
>>537
けきょくそれしか手っ取り早く書ける方法がない。
所詮VBなんてさっさとコードがつくれてナンボのもんじゃ。
559デフォルトの名無しさん:2008/01/22(火) 08:10:45
>>558
自分の頭の悪さをツールのせいにするなよw
ここでも何度も出てる「コントロール配列の意義」すら理解できないお前さんが
それを言うのはただのお笑いw
560デフォルトの名無しさん:2008/01/22(火) 08:24:42
ドライブの物理シリアルが取得したいけどできません。どうすれば取得できますか?

WMIのWin32_DriveDiskのSerialNumberを取得してみたのですが、失敗します

DeviceIoControlでも失敗します…ボリュームシリアルしか取得できません
561デフォルトの名無しさん:2008/01/22(火) 17:50:03
フォームの背景だけを半透明にしたいのですが、
opacityプロパティだと、フォーム上のボタンなどの
コントロールも半透明になってしまいます。
コントロールはそのままで、
フォームの背景だけを半透明にすることはできますか?
562デフォルトの名無しさん:2008/01/22(火) 18:11:34
質問させてください。
VBにて
Everyoneのアクセス許可がフルコントロールのフォルダを作成
あるいは
既存フォルダのEveryoneのアクセス許可をフルコントロールに変更
したいのですが、可能でしょうか?
API等を利用する方法でも結構です。
563デフォルトの名無しさん:2008/01/22(火) 18:19:35
cacls.exe叩いたら?
564デフォルトの名無しさん:2008/01/22(火) 18:20:04
>>561
>>2の「どぼん!のVB道」のTipsにフォームの表示に関するのが何個もあるから参考になるよ。
565デフォルトの名無しさん:2008/01/22(火) 18:25:05
いや>>561の言ってる事は無理筋。
っていうか、2ch内しかも同じ板ででマルチポストしたって無意味だろ
どのスレも見てる奴は一緒なんだからw
566562:2008/01/22(火) 18:34:27
>>563
cacls.exeで調べてみます。
ありがとうございます。
567561:2008/01/22(火) 18:38:43
1.フォーム全部を半透明
2.フォームの特定の色を透過

ってのはできたんだけど、
1だとボタンまで半透明になる。
2だとフォーム上のコントロールは透過しないけど、
完全に透過してしまうし、色指定が必要

描き忘れたけど、そのフォームには
BackGroundImageで背景画像が表示されてる場合もあります。
その場合、その背景画像を半透明にし、
なおかつフォーム上のコントロールは透過しないようにしたいです・・・

568デフォルトの名無しさん:2008/01/22(火) 18:42:57
>>567
半透明フォームをオーナーにして
コントロールと同じ大きさのフォームを重ねるというのは?
いろいろ不都合が出そうではあるが。
569デフォルトの名無しさん:2008/01/22(火) 19:07:38
VBやってる人数が知りたい
今すぐ運子しろ
570561:2008/01/22(火) 19:29:54
>>568
なんというムリヤリw
出来そうですがw
フォームの移動時にいっしょに移動する処理とか
大変そうw
親フォームと、コントロールに見せかけた子フォームを
ひとまとめにクラス化していけば
なんとかなりそうだけど、
かなりマニアックな処理のヨカンw
571デフォルトの名無しさん:2008/01/23(水) 08:44:42
Console.WriteLine("雪ですよ?")
572デフォルトの名無しさん:2008/01/23(水) 12:59:04
>>570
背景画像のコントロール部分のところ透明色以外の色で塗りつぶせばいいだけだと思うが。
573デフォルトの名無しさん:2008/01/23(水) 15:42:56
>>572
それでは完全に透明になるから嫌らしい。
574デフォルトの名無しさん:2008/01/23(水) 15:56:53
その手の質問は何度か見たけどマトモに動かすには
VistaでDwm〜系のAPIでやるしかないんじゃね
575デフォルトの名無しさん:2008/01/23(水) 18:33:47
だから無理筋なんだよね
っていうかそんなUIが意味をもつ場面が想像できないよ。
そんなアタック25のラストクイズみたいなUI嬉しいか?
576デフォルトの名無しさん:2008/01/23(水) 19:54:09
う、う、嬉しいいいいいいいいいい!!
577デフォルトの名無しさん:2008/01/23(水) 19:55:25
誤爆
578デフォルトの名無しさん:2008/01/23(水) 21:44:50
また速度パフォーマンスの件なのですが、教えていただけますでしょうか、

エクスプローラはMFCやWin32APIで作られているのだと思いますが、
たとえば、C:\Windows\I386 というフォルダを見てみるとそこには 5700 もの
ファイルが存在していましたが、そのオープン(ファイルListViewへの表示)は
非常に高速で、ものの1秒もかかるかどうかぐらい高速に表示されていました。

ところが、これをVB.NETのプログラムで同等の表示項目の情報をかき集めて
同様にListViewに表示しようとすると、

自分がトライとした限りでは10秒以上かかっていました。これはやり方が悪い
ためというのが大半の理由と考えるべきなのかどうかを知りたく思いました。

エクスプローラと同じほどの短い時間で出すには、単なるListコントロールに
ファイルのファイル名の情報だけを単純にAddしてやるだけで精一杯で、その他
の更新日時やサイズ、ファイルの属性に関わる情報、アイコン等をすべてListView
に表示する場合は上記のようにかなり時間がかかる処理となるようでした。

こうした極端な差が出た原因は私のアルゴリズムの詰めが甘いせいをまずは
疑うべきでしょうか、それとも .NETでのListViewを使ってのAddでの表示では
やむ得ないパフォーマンスと考えてもよいものでしょうか。よろしければご指南
頂ければありがたく存じます。
579デフォルトの名無しさん:2008/01/23(水) 22:08:56
>>578
エクスプローラはベタにリストを表示してるだけで仮想化みたいな
高速化のためのテクニックは何も使ってないでしょ。

例えばIEの一時ファイルのフォルダをDetail表示で見てみ?

それにたった5700ポッチのアイテムじゃベタに表示してもストレス感じないのは
当たり前だと思うけど。
580デフォルトの名無しさん:2008/01/23(水) 22:49:43
LVS_OWNERDATAなわけだが
581デフォルトの名無しさん:2008/01/24(木) 08:25:53
↑ owatadata かと思ったw

この前、作ったフォームで困ってることがある。
datetimepicker オブジェクトを定義、AddHandlerして、処理コードをバインドして
おいた。 フォームを表示後、当該オブジェクトをクリックするとカレンダーを呼び
出されるわな。 そこで、月移動ボタンを押すと、なぜかイベントがクリアしないで、
繰り返し処理が呼ばれてしまう。 さて困った。 
中でMsgboxを呼んだりしたのが悪いのかもしれないんだが、いい方法はないもんか。
582デフォルトの名無しさん:2008/01/24(木) 11:00:16
日本語でおk
583デフォルトの名無しさん:2008/01/24(木) 12:28:29
>>579-580
レスどうもありがとうございました。「仮想化」「仮想化」など調べてみました。
これらはListViewのOwenerDrawとはまた別なことなのでしょうか?
確かにたくさんのItemを載せると表示が遅くなるということはかかれてありました。
もう少し調べてみます。ありがとうございました。
584デフォルトの名無しさん:2008/01/24(木) 12:29:32
>>583(訂正)>「仮想化」「仮想化」など->「仮想化」「LVS_OWNERDATA」など
585デフォルトの名無しさん:2008/01/24(木) 14:51:29
つかListView.BeginUpdateしてないだけじゃね?
586デフォルトの名無しさん:2008/01/24(木) 15:19:14
.netのListViewの実装は糞だな
一つのアイテムの文字色変えると全部再描画しやがる
587デフォルトの名無しさん:2008/01/25(金) 02:07:04
は?
588デフォルトの名無しさん:2008/01/25(金) 13:58:24
は?じゃないが
589デフォルトの名無しさん:2008/01/25(金) 14:35:44
ひ?
590デフォルトの名無しさん:2008/01/25(金) 14:59:11
VB.NETのアプリケーションはソースコード
 丸見え!丸見え!パンツ丸見え!

だと聞いたのですがこれって商用アプリケーションは作成できないということですか?
591デフォルトの名無しさん:2008/01/25(金) 15:02:07
ソースコードはパンツをはいていません
592デフォルトの名無しさん:2008/01/25(金) 15:49:56
             . ィ
.._ .......、._    _ /:/l!
 :~""''.>゙' "~ ,、、''‐'、|         _
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':,
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ またまたご冗談を
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ / 
   //:::::       ',    /    ,:'゙
593デフォルトの名無しさん:2008/01/25(金) 15:50:54
商用でも作成すりゃあいいじゃん。
.netは簡単にソース見えるけど、Cで書かれたソフトとかでも、どういう風になってるのかはわかると思うが。
難易度の違いじゃね。
結局最後はコンピュータが読み込んで実行するんだから、構造がわからないわけがない。
594デフォルトの名無しさん:2008/01/25(金) 15:55:44
My.Settings.Reloadでアプリケーション設定のすべての項目を初期化することができますが、
ある特定の項目のみを永続ストレージの値から初期化する方法はないのでしょうか?
595デフォルトの名無しさん:2008/01/25(金) 17:25:55
>>593
難易度チガウ!難易度チガウ!
お前のかーちゃんシューティングゲームでEasyがないってこの前駅前のゲーセンでキレテタゾっぉっぉっぉっぉ
596デフォルトの名無しさん:2008/01/25(金) 18:25:22
C++でも専門の解析ツールを使うと結構正確に逆コンパイルしてくれる。
標準関数だけじゃなくVC+WindowsSDKの組み合わせだと
部分的ではあるがSDKのマクロやSTLまで再現してくれてて驚いた。
ちなみにC++のバイナリを難読化するツールも存在する。
どの世界でもその辺の事情は一緒だな。
597デフォルトの名無しさん:2008/01/25(金) 18:50:30
タイマを使いボタンが一定時間で消えたり現れたりするモノを作ってみようと書きました

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = DateTime.Now
Button1.Visible = True = Not Button1.Visible = True

End Sub



> Button1.Visible = True = Not Button1.Visible = True
これ文法的にはどうなんでしょうか 普通に動きました
イコールが3つあってなんか変な感じがするんですが他にスマートな書き方ありますか
598デフォルトの名無しさん:2008/01/25(金) 18:55:10
何がスマートなのかわからんけど一般的にはselectかif使うんじゃないか
大したコードじゃないし動けばいいじゃん
599デフォルトの名無しさん:2008/01/25(金) 18:57:35
普通にこれじゃいかんの?
Button1.Visible = Not Button1.Visible
600デフォルトの名無しさん:2008/01/25(金) 19:45:58
後ろのイコール以降いらんだろって話
601デフォルトの名無しさん:2008/01/25(金) 20:10:38
select文

Dim x As Boolean
Select Case x = Button1.Visible
Case x = True
Button1.Visible = False
Case x = False
Button1.Visible = True
End Select

if文
Dim x As Boolean
If Button1.Visible = True Then
Button1.Visible = False
Else
Button1.Visible = True
End If
かな

>>599
> Button1.Visible = Not Button1.Visible
=trueが無くても動くことは知りませんでした
Button1.Visible と書けばその値は内部的に調べてくれると言う認識でしょうか
とても為になりました 見た目でも分かりやすいです
ありがとうございました
602デフォルトの名無しさん:2008/01/25(金) 20:51:42
>>601
VB脳丸出しですね。

Dim b As Boolean
b = (1 = 3) 'b = False
b = Button1.Visible

論理型なら何でも代入できる。
代入演算子と比較演算子の区別をしっかりつけられるようにがんばりましょう。
あと、組み込み型とクラス、オブジェクトについてもっと理解しましょう。
603デフォルトの名無しさん:2008/01/25(金) 21:01:50
VB脳以前にどうしようもなく初心者なんだろw
初心者相手に鬼の首とったようなこと言って楽しいのか君はw
604デフォルトの名無しさん:2008/01/26(土) 15:31:53
VB脳なのか?
605デフォルトの名無しさん:2008/01/26(土) 16:19:29
VB脳かどうかってこだわるとこ?
606デフォルトの名無しさん:2008/01/26(土) 19:09:02
VBしかできないが、悪いか
607デフォルトの名無しさん:2008/01/26(土) 19:19:29
VB.NETに未来あんの?
608デフォルトの名無しさん:2008/01/26(土) 19:33:43
あると思う
609デフォルトの名無しさん:2008/01/26(土) 20:06:07
>>607
ねーよばか
こんだけVBプログラマ人口減ってるのに天下のマイク口ソフ卜がご丁寧に救ってくれるとでも思うか?
C#はまあ標準化されてるからきっとVBはこのまま朽ちていきC#がメインになるな

なるなるなーるな
610デフォルトの名無しさん:2008/01/26(土) 21:46:54
C#とVBって何が違うの?
611デフォルトの名無しさん:2008/01/26(土) 21:57:16
名前
612デフォルトの名無しさん:2008/01/26(土) 22:44:11
きっとWebプログラムで盛り返すはず・・・
きっと・・・
613デフォルトの名無しさん:2008/01/26(土) 22:54:33
まだVB.NETには最高にGUIが組みやすいというメリットが残されているもののC#には何もないでしょ
614デフォルトの名無しさん:2008/01/26(土) 22:59:23
>>613
ワケの分からんこというなよw
んなのC#と何も違わないっつーの。
615デフォルトの名無しさん:2008/01/26(土) 23:00:03
>>609
バカはお前だ
C#でRADすんのかよw
616デフォルトの名無しさん:2008/01/26(土) 23:02:51
エクセルとかのマクロもVBベースだし(C#も使えるようになるらしいが)早々マイクロソフトがVBを手放すとは思えないなあ。
どうせ中間言語の.netなんだから、VBもC#も共存でいいんじゃないの?
無理やりなくす必要はないでしょ。
人口減ったつっても、C#よりはまだ多かったと思うが。
とにかく.NETのC#は中級者以上、VBは初心者から入れるっていうので住み分ければいいじゃん。
617デフォルトの名無しさん:2008/01/26(土) 23:27:49
618デフォルトの名無しさん:2008/01/26(土) 23:50:11
>>616
将来はわからんよー

701 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/25(金) 09:39:13
VBAは今の形のままずっと残るんかな?

709 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/25(金) 17:22:05
>>701
Mac版Office 2008では非搭載なんだが、
その理由の1つにWindows版でもそのうちなくなるということが挙げられているようだ。
http://piyo.piyocast.com/piyocolumn/msoffice_mac_2008vba.html

自分はいまVB.NET→C#に移行中…
619デフォルトの名無しさん:2008/01/27(日) 00:00:19
>>617
いやそいつ釣りだろ?
620デフォルトの名無しさん:2008/01/27(日) 00:00:58
>>617 も釣り
621デフォルトの名無しさん:2008/01/27(日) 00:50:46
>>618
マジかよー・・・。
今までVB.netで突っ走ってきたけど、C#に移行するかな・・・。
同じ.netだし、VB書ければなんとかなるよな・・・。
今度C#の参考書買ってみよう。。
622デフォルトの名無しさん:2008/01/27(日) 00:53:41
VBA と VB は別物だぜ?
623デフォルトの名無しさん:2008/01/27(日) 01:22:59
移行ってそんな大げさなもんか?w
クラスライブラリは完全に一緒だし、反復子や匿名メソッドなどC#にしかない
機能があるにしろ文法の違いなんて1日あればだいたい押さえられるでしょ
624デフォルトの名無しさん:2008/01/27(日) 01:28:37
シェルオブジェクトを利用してIEを操作しようと思っています。

http://homepage1.nifty.com/yasunari/VB/VB2005/GetIEURL.htm
ここのサンプルコードを借りさせてもらったのですが、
WindowsオブジェクトのReadyStateとかdocumentとかurlとかのメンバはどうやってわかるのですか?
オブジェクトブラウザのように詳しく知りたいのですが…
625デフォルトの名無しさん:2008/01/27(日) 01:46:05
オブジェクトブラウザで見れば?
626デフォルトの名無しさん:2008/01/27(日) 01:50:53
>>623
たしかにそうなんだけど、C系特有の簡略記法が独特で乱用して書かれてると
暗号みたいな記述で嫌気するときあるんではと思ったり・・・してる。
627デフォルトの名無しさん:2008/01/27(日) 02:04:45
>>625
コードよく見たらわかることだった…
ありがとうございますいません
mshtml.HTMLDocumentメンバでした
628デフォルトの名無しさん:2008/01/27(日) 11:28:07
あのーあんのーあのおおー

O'は?
みんなO'のこと忘れてnine?
629デフォルトの名無しさん:2008/01/27(日) 12:38:35
フォームを
フォーム1(me.hide)→フォーム2(me.hide)→フォーム3
ってhideで隠してから新しいフォームをあけたとき
フォーム3を
クローズしたときにフォーム2も同時にクローズして
フォーム1に行くって事はできないのですか?
630デフォルトの名無しさん:2008/01/27(日) 12:42:25
そうするコードを書けばいいじゃん。
煽りじゃなく、そのためにキミのような人間(つまりプログラマ)がいるんだろ?
いったい何が聞きたいんだよ
631デフォルトの名無しさん:2008/01/27(日) 16:29:58
ちょっと質問。

.NETFrameworkに対して、描画速度を改善した改良済みのFormクラス
というのを作って追加コンパイルして新しいFrameworkのバージョンを
作ってくれるようなことはどこかの会社でやっているでしょうか?
それとも、こういうこと自体不可能なことなのでしょうか。
632デフォルトの名無しさん:2008/01/27(日) 17:13:33
そもそもForm自身が描画しているものってそう多くはないし、
そんなに遅いとも思えないんですが。。

Windows Formが「重い」のはコントロールの生成が「重い」だけなんじゃないの?
それが簡単に改良できるようなことならMS自身がとっくにやってるだろ、
と思っちゃうんですけどどうかな
633デフォルトの名無しさん:2008/01/27(日) 17:47:08
WPFって、改良済みFormクラス、といえなくもない?
634デフォルトの名無しさん:2008/01/27(日) 18:29:33
MONOのGTK#
635デフォルトの名無しさん:2008/01/27(日) 18:56:30
WPFは原理的には3DゲームのGUIみたいなもん
WinFormsとは全然違うよ
636デフォルトの名無しさん:2008/01/27(日) 19:04:36
現在のFormsと同じ扱いで使用できて、名前を若干変えたもの
たとえば、FormsExみたいなものを作ってFrameworkに追加して
くれたらだいぶ違ってくると思うのです。いまのままだとリサイズで
ふにゃふにゃぴろぴろぴろろろと後を引くようにぴらぴらが残る
ようになって、ネイティブアプリとはっきり違うことがわかるのです。
これをなんとかしてほしい、と。
637デフォルトの名無しさん:2008/01/27(日) 19:08:52
>>636
寧ろお前の頭をなんとかして欲しいわ
638デフォルトの名無しさん:2008/01/27(日) 19:20:57
描画の機能部分だけ高速にしたものにしてくれればいいだけなんだけど
それはめちゃくちゃ難しいのでしょうか。
639デフォルトの名無しさん:2008/01/27(日) 19:26:42
MS様の答え:「高速なPCに買い換えろ。以上!」
640デフォルトの名無しさん:2008/01/27(日) 19:26:46
ダブルバッファオンにして全部OnPaintをオーバーライドして自前で描画しろハゲ
641デフォルトの名無しさん:2008/01/27(日) 19:31:13
さすが富豪グラミング(笑)
開発・動作共に高スペック要求のM$
642デフォルトの名無しさん:2008/01/27(日) 19:33:08
>>638
ヒント:継承
643デフォルトの名無しさん:2008/01/27(日) 20:01:31
そんなに速くしたかったらDirect3D使ってコントロールとか全部自前で描いちゃえ
それをやってるのがWPFなわけだけど
644デフォルトの名無しさん:2008/01/27(日) 20:04:03
>>640
そうかもしれないけど、Formsにあるコントロール全部そうやって自分で描画するの?
>>642
どうやって基本クラスを作れって話なんでしょう。でもそれできるんならそういう基本クラス
作って標準化してくれたらと思うのですがどうでしょうか。
645デフォルトの名無しさん:2008/01/27(日) 20:06:02
MSの描き方が気に入らないなら、全部自前で描画するしかない
646デフォルトの名無しさん:2008/01/27(日) 21:39:45
「重くてしょうがない」って言うヤツのほとんどがやり方に問題がある。

いったいどんなフォームなんだよ
647やんてね♪:2008/01/27(日) 22:57:26
VB.NETのLabelのフォントサイズを、「文字数」と「Labelのサイズ」に沿って変える方法知りませんか?
648デフォルトの名無しさん:2008/01/27(日) 22:58:16
DataGridViewが遅い
649やんてね♪:2008/01/27(日) 23:01:31
ありがとうございます。
650デフォルトの名無しさん:2008/01/28(月) 01:49:02
>>647
AutoSize = falseにして
TextChangedイベントでフォントサイズ変えれば
651デフォルトの名無しさん:2008/01/28(月) 01:50:22
>>647
「文字数」と「Labelのサイズ」に沿って変える、をその通りにコードで書けばいいと思います。
文字数の数え方や、Labelのサイズの取得方はわかるでしょう。
プロポーショナルフォントのことを考えれば、文字数より文字列全体の幅を計算したほうがよいでしょうが。
MeasureStringあたりで検索してみてくだしゃんせ。
652やんてね♪:2008/01/28(月) 18:28:13
Thank you!
653デフォルトの名無しさん:2008/01/29(火) 18:41:41
暗号化、複合化についての質問です。
テキストファイルを一旦ハッシュテーブルにセットしてからファイルに保存というシステムを作っているのですが
ハッシュテーブルからファイルの所で暗号化、複合化したいと考えています。
それでなんですが、下のコードで試したところ、矢印の所で止まってしまいます。
CSV形式で保存しています。
暗号化は上手くいくのですが、複合化がうまくいきません。
暗号化と少ししか違わないコードなのにさっぱりわかりません。
誰か助けて下さい・・・
line = reader.read(ちょっとど忘れしました。。。1行ずつ読むという意味です。)

Dim source As Byte() = Encoding.Unicode.GetBytes(line)

Dim des As DESCryptoServiceProvider = New DESCryptoServiceProvider

Dim ms As MemoryStream = New MemoryStream
Dim cs As CryptoStream = New CryptoStream(ms, des.CreateDecryptor(DesKey, DesIV), CryptoStreamMode.Write)

cs.Write(source, 0, source.Length)
→cs.Close()

Dim destination As Byte() = ms.ToArray()
ms.Close()

hukugouka = Encoding.Unicode.GetString(destination)
654デフォルトの名無しさん:2008/01/29(火) 19:04:00
なんで、DES暗号化されてるはずのsourceに、行単位とかがありえるの?、
暗号化されてるなら、Unicode.GetBytesも意味不明だし...
655デフォルトの名無しさん:2008/01/29(火) 19:17:19
VB2008です。

SendKeys.Send("^v")
これうごきません・・・

なんでですか?
WebBrowserの中身をリフレッシュしたいのでF5したいです。
ほかにいい方法ありますか?
656デフォルトの名無しさん:2008/01/29(火) 19:32:56
携帯から失礼します
メッセンジャーを作っているのですが、送信相手を変更する時はTabControlを使ってタブで変更するようにしています。
こちらから新しく他の人にメッセージを送る際名前をクリックすると新しくタブが開きますが、現在元々開いていた人のタブがそのまま表示されている状態です
それをRegnessemのように自動的に新しく送ろうとしている人のタブへ変更するようなコマンドはありますでしょうか?
657デフォルトの名無しさん:2008/01/29(火) 19:50:35
TabControl1.SelectTabで選択できない?
658デフォルトの名無しさん:2008/01/29(火) 19:53:34
659デフォルトの名無しさん:2008/01/29(火) 19:54:50
>>655
VB6のときにセンドキーで対象にキーが贈られないことがありました、
私の場合はセンドキー命令が指定位置に飛んでいなかったのが原因だったので
この様にフォーカスを当ててからセンドキーを送って対処しました

Retvalue = SetForegroundWindow(HH)

' もし発見できなかったら見過ごせ
If Not HH = "" Then
'DOSへのコマンド放り投げ
Retvalue = SetActiveWindow(HH): SendKeys CStr("%( )")
Retvalue = SetActiveWindow(HH): SendKeys CStr("E")
Retvalue = SetActiveWindow(HH): SendKeys CStr("P")
Retvalue = SetActiveWindow(HH): SendKeys CStr("{ENTER}")
DoEvents
End If
660デフォルトの名無しさん:2008/01/29(火) 20:18:58
>>653
何で暗号化がうまく行ってるって分かるんだよ
661デフォルトの名無しさん:2008/01/29(火) 20:51:28
いろいろやってるのですが、動きません
簡単なソースかいてもらえますか?

VB2008です。

SendKeys.Send("^v")
これうごきません・・・
662デフォルトの名無しさん:2008/01/29(火) 20:59:13
>>661
その前に、なんでF5をシミュレートしたいのに、SendKeys.Send("^v")なのかを教えてくれ。
663デフォルトの名無しさん:2008/01/29(火) 21:11:01
SendKeys.Send("^v") は Ctrl+V はわかっています。

F5の場合は("{F5}") でしょうか?

またCtrl + F の場合は("^F") ですか?

また、動きませんよろしくお願いします。
664デフォルトの名無しさん:2008/01/29(火) 21:13:29
^v"
665デフォルトの名無しさん:2008/01/29(火) 22:13:17
なんご一行ごとに改行いれるの?
666デフォルトの名無しさん:2008/01/29(火) 22:47:40
加藤の号泣動画って、もう消されてるよね。 > ようつべ
667デフォルトの名無しさん:2008/01/29(火) 22:53:08
SetForegroundWindowするくらいなら
WM_APPCOMMAND/APPCOMMAND_BROWSER_REFRESHでも送ったら
668デフォルトの名無しさん:2008/01/30(水) 05:24:42
>>653
暗号化した文字列の末尾が欠けたりすると、戻らないよ。
CAPICOMの仕様をよく読め。
669デフォルトの名無しさん:2008/01/30(水) 05:44:02
つかEncoding.Unicode.GetBytesしてる時点でアウトだし
こうなると暗号化ですでにアウトの予感
670668:2008/01/30(水) 08:03:41
そうなんだ? たしかVB6で POP before SMTP対応の、
警告メール送信プログラム組んだとき、生パスワードを.iniに
入れておくのは忍びなかったんで、使ったとき文字長の問題に
逢着して小1時間ぐらい悩んだけど、使えるようになったよ。
671デフォルトの名無しさん:2008/01/30(水) 10:10:59
VB2008使ってます。
ボタンクリック時に指定したフォルダを削除するツールなんですが

(抜粋)
'C:\tempが無ければ終了
If My.Computer.FileSystem.DirectoryExists("C:\temp") = False Then
MessageBox.Show("C:\tempフォルダが存在しません。")
Exit Sub
End If

保存した後でデバッグ開始すると↑が出てしまいます。
保存する前は出ないのですが原因わかる方いたら教えてください。

あと、
My.Computer.FileSystem.DeleteDirectory("C:\temp")
引数の数を受け付けるDeleteDirectoryがないため、オーバーロードの解決に失敗しました。
というエラーが出るのですがよく分かりません。どうすればいいでしょうか?
672デフォルトの名無しさん:2008/01/30(水) 10:17:44
>保存した後でデバッグ開始すると↑が出てしまいます。
意味が解からん。何がでるの?メッセージがでるってこと?


>引数の数を受け付けるDeleteDirectoryがないため〜
引数に何が必要なのかはインテリセンスに出るだろ?引数が足りないんだよ。
ttp://msdn2.microsoft.com/ja-jp/library/77s9s78y.aspx
ここ見なされ
673671:2008/01/30(水) 10:21:12
>672

C:\tempフォルダが存在しません。
のメッセージボックスが出ます。
保存する前は出ません。
674デフォルトの名無しさん:2008/01/30(水) 10:24:56
保存って何を保存??
C:\tempは存在しているけど、メッセージが出るってこと?
675671:2008/01/30(水) 10:33:04
>674
言葉足らずですみません。
プロジェクトの全保存です。
C:\tempは存在しているけど、メッセージが出ます。
676デフォルトの名無しさん:2008/01/30(水) 11:57:31
>>675

'フォルダの存在確認
If System.IO.Directory.Exists("C:\temp") = False Then
  Call MessageBox.Show("C:\tempフォルダが存在しません")
End If

'指定したフォルダ及び中身を削除
Call System.IO.Directory.Delete("C:\temp", True)


これだとどうなる?
基本的にMy.Computer名前空間は使わない方がいいと思うぞ。

まあ一応アドバイスとして、
>>671のコードに間違いはないのに問題だけが起こっているならば、
リビルドして解決する可能性もある。
677デフォルトの名無しさん:2008/01/30(水) 14:24:42
>>676
> 基本的にMy.Computer名前空間は使わない方がいいと思うぞ。
なんでなんで?
678デフォルトの名無しさん:2008/01/30(水) 15:23:15
頼りすぎて馬鹿になるから('A`)w
679デフォルトの名無しさん:2008/01/30(水) 15:46:33
馬鹿でもいいじゃない
にんげんだもの
680デフォルトの名無しさん:2008/01/30(水) 17:24:55
すみません、これについて教えてください。.NETのコントロールには
そのほとんどすべてにハッシュコードという暗号生成してくれるメンバー
が付属していますが、これは何をするのに利用するものでしょうか?
これらの暗号というのはそのPCの固有のIDなどを生成するのに使用
できるものと考えていいのでしょうか?よろしくお願い致します。
681デフォルトの名無しさん:2008/01/30(水) 17:30:23
>>680
コレクションで使う。Dictionary系のキーを使う奴。
682デフォルトの名無しさん:2008/01/30(水) 17:37:09
ハッシュは暗号じゃない
683デフォルトの名無しさん:2008/01/30(水) 17:55:40
> これらの暗号というのはそのPCの固有のIDなどを生成するのに使用 できるものと考えていいのでしょうか?
暗号じゃ(ry >>682
そしてPC固有というよりオブジェクト固有
684デフォルトの名無しさん:2008/01/30(水) 18:04:46
あらゆる型についてるだろ
685デフォルトの名無しさん:2008/01/30(水) 18:35:39
>>681-684
レスありがとうございます。暗号ではなく、コレクションに載せたときに
何かの目的で使うということのようなのですね。実際には自分のプログラム
のコード上ではどのような形で使うのでしょう。

それとPC固有のIDがほしい場合にはどのあたりのデータを採用して
作成するものでしょうか。暗号かと思っていましてこれらが使えるのかと
思ってしまいました。よろしければこれらについても教えてください。
686デフォルトの名無しさん:2008/01/30(水) 18:52:34
windowsフォームについての質問です。
3つの画面を作りたいのですが、
その画面3つに共通してある部品(ラベル・テキストボックスなど)が約60%で
のこりの部分もほとんど同じなので、できれば共通の部品を使いたいと思い
共通部分だけ作ったフォームを継承してカスタマイズしようと思ったのですが
うまくいきませんでした。

途中まで作ったフォームを継承してデザイナで続きを作るということは
不可能なのでしょうか?
それとも、他の部分がまずかっただけで部分だけ作ったフォームの継承は可能ですか?
687デフォルトの名無しさん:2008/01/30(水) 19:09:47
>685
よくあるのはMACアドレスとか、コンピュータSIDとかだか。
688デフォルトの名無しさん:2008/01/30(水) 19:26:20
>>685
よくあるのは>>687だけど,今のところPCを個別に識別する確固たる方法はない
689デフォルトの名無しさん:2008/01/30(水) 19:26:58
>>686
ユーザコントロールにまとめればいいんでね?
690デフォルトの名無しさん:2008/01/30(水) 20:06:00
継承元のフォームをもしMustInheritにしてるなら
それを外してみな
691デフォルトの名無しさん:2008/01/30(水) 20:31:13
>>683
そういえば、uuidgen.exe ってどうなった?
692モンチ:2008/01/30(水) 20:32:25
VB2005〜 でPPPOE接続をしたいのですが、方法がわかりません。
よろしくお願いします。
693デフォルトの名無しさん:2008/01/30(水) 20:52:29
こちらこそよろしくです m(__)mペコ
694デフォルトの名無しさん:2008/01/30(水) 20:53:42
ぶぶ漬け出しましょうか?
695デフォルトの名無しさん:2008/01/30(水) 20:55:22
>>692
方法がわからないんじゃどうしようもないな
お疲れ様
696モンチッチ:2008/01/30(水) 21:20:25
VB2005〜 でよろしくお願いしたいのですが、方法がわかりません。
PPPOEでお願いします。
697デフォルトの名無しさん:2008/01/30(水) 21:25:00
>>689
ごめんなさい、
どうすればいいのかよくわかりません。

>>690
はずしてみたら無事表示されました。
逆にMustInheritでは作れないということですね。
ありがとうございます。
698デフォルトの名無しさん:2008/01/30(水) 22:07:52
>>686-687
再びありがとうございます。教えて頂いたコンピュータSIDについて調べて
みましたところ、もしかしたらこれは  System.Security.Principal 名前空間 
の何かを使うと取得することができるものなのでしょうか。たとえば、現在の
User名からそのUserのアカウントを取得して、その値からこのSecurityIdentifier 
プロパティか何かを使って求めることができるとか、でしょうか?よろしくお願いします。
699671:2008/01/30(水) 22:48:20
遅くなりましたが、無事解決しました。
実行ファイルをネットワークドライブに置いていたのがいけなかったようで、
Cドライブに移したらC:\tempを認識するようになりました。
完全に盲点で、お手数をおかけしました。

>引数の数を受け付けるDeleteDirectoryがないため〜
は仰るとおりでした、ありがとうございました。
700698:2008/01/30(水) 23:49:46
>>698のSecurity.PrincipalのNTAcountクラスあたりから調べて
みるとわかりそうに思いました。ありがとうございました!!
701デフォルトの名無しさん:2008/01/31(木) 11:02:51
お世話になっております。
VS2003で、Accessibilityに参照設定をしているのですが、ComboBoxのプロパティにAccessibilityObjectが現れません。
やりたいことは、ComboBoxのTextChangedイベントの不具合回避です。
702デフォルトの名無しさん:2008/01/31(木) 15:35:12
ネットワーク関係でいろいろと実験しながら勉強していこうととしたら
WindowsServer2008などを自分で購入してインストールしてそこを
ドメイン設定してプログラムからアクセスする練習しないといけないでしょうか?
.NETのヘルプマニュアルみてオブジェクトの概念全部つかめればいいのですが、

やっぱりそういう頭だけで実用化ソフトを組めるようになるのは難しいですよね?
結構なハードルになるでしょうか?
703デフォルトの名無しさん:2008/01/31(木) 15:35:53
ネットワーク関係って幅広すぎ
704デフォルトの名無しさん:2008/01/31(木) 15:44:12
>>703
たとえばActivedirectory関係で、DirectoryServicesクラスの使い方とか
の関係です。たとえば、ドメイン・ユーザー・アカウントを全部列挙したいとか
だと、自分のPCだけだとLocalの登録ユーザーのだけしか出ませんよね。
そういうのを、広くネットワークで掴まえるためには、やっぱりDomainを
設定できるServerを導入して自分で実地にネットワーク構成を張って
一つ一つ試してみていかないとだめなのかな、と。
やっぱりそういうことになるのでしょうか?
705702:2008/01/31(木) 15:52:56
ところで、その価格を見てみましたら、結構高いですよね、Server。

マイクロソフト、Windows Server 2008日本語版の価格体系を発表
http://enterprise.watch.impress.co.jp/cda/software/2008/01/25/12110.html
Windows Server 2008ボリュームライセンス(Open Business L、新規購入の場合)
Windows Server 2008 Standard 日本語版 14万円

これって個人でも変えるんでしょうか。
>ボリュームライセンス
これってダウンロードで買うことを意味するんでしょうか?もちろん結構な
決心要ることは要りますが、。
706デフォルトの名無しさん:2008/01/31(木) 15:53:12
ボタンクリックでExcelテンプレートをOpenし、値をセルにセットする処理を作っています。
(ファイルは保存せず、展開のみ)

処理自体は問題なくできたのですが、Excelテンプレート上にある図形が
展開後のシートで見えなくなってしまいます。
ただ図形自体はあるようで、図形を配置したセルをドラッグしたり、
閉じる際の保存しますかメッセージの裏で図形が点滅するように見えたりしています。

実行マシンのExcelのバグかとも思いましたが、他マシンでも同様です。
出力処理の中でExcelに対して何か指定する必要があるのでしょうか?

Excel2007、テンプレートの拡張子は.xltxです。
よろしくお願いします。
707デフォルトの名無しさん:2008/01/31(木) 15:55:13
>>705
開発用に使いたいならMSDNサブスクリプションだろうな。これも高いけど。
708702:2008/01/31(木) 16:20:15
>>707
現実問題として>>704の目的だとやはり自分で環境構築して実験していく
ようなことは必要でしょうか、なにか代用で実験できるような等価環境という
ようなものができるとうれしいです。
709デフォルトの名無しさん:2008/01/31(木) 16:28:09
>>708
試用版使えば?
今2008の評価版かなんかダウンロードできるでしょ。
710デフォルトの名無しさん:2008/01/31(木) 16:38:10
>>709
>試用版
なるほど!

ところで、実は今はVS2005Professional使ってました、まだよく調べてない
のですが、これって、WindowsServerのDomain機能の実用じゃなくて開発用
の機能みたいなもの含まれてたりしてましたっけ?そう都合よくはいかない
ですか。
711702:2008/01/31(木) 16:56:30
それと、もしかしてVMWareというのは、一つのPCで複数のWindowsPCを
Network接続したような環境を仮想構築して互いに通信しあうみたいなこと
もできるでしょうか?仮にそうだとしても、WindowsServerを購入してインストール
しないといけないことには代わりはないのでしょうか・・・。
712デフォルトの名無しさん:2008/01/31(木) 17:04:36
>>711
できる。
仮想MACアドレスとかも生成する。
713モンチ:2008/01/31(木) 19:07:18
VB2008 か 2008 でPPPOEでの接続作業をするアプリを作りたいのですが方法がわかりません、どなたか教えてください。
714デフォルトの名無しさん:2008/01/31(木) 19:10:44
>>711
ありがとうございます。Freeのものもありそうなんですね。

ところで Vertial PC 2007 とか Vertial Server 2005 とかもマイクロソフト製で
Freeで出てたんですね。これらだと仮想でWinXP ProやWin98なんかも複数
載せてシミュレートできそうなこともわかりました。

ただやっぱりDirectoryServicesの機能確認に Domain 作成して云々になると、
Server機能が必要になって14万円払って買うことになりますか、、かなりの出費!
715デフォルトの名無しさん:2008/01/31(木) 19:14:42
>Vertial -> Virtual でしたすみません。><
716686:2008/01/31(木) 19:58:27
すみません、再び継承フォームについての質問です。

>>686と同じ内容なのですが、
いったん成功したはずなのに
「パスの形式が無効です。」というエラーが出てデザイナが表示できませんでした。
コンパイルそのものは通っているみたいなのですが、
デザイナが使えないとレベルが高すぎるのでなんとかエラーを解除したいです。

このエラーについて詳しいかた、どうかお力を貸してください。
717デフォルトの名無しさん:2008/01/31(木) 20:52:15
>>716
バグがないのならリビルドしたり、一旦IDEを終了すれば直ると思う。

ユーザーコントロールや継承元のコントロールが同じプロジェクト(つまり
同一のアセンブリ)に存在しているとそういう現象が起こりがち。
718デフォルトの名無しさん:2008/01/31(木) 22:04:47
サーバとクライアントの接続で取得したNetworkStreamを使ってデータの送受信をしてるんだけど
クライアントとサーバがそのNetworkStreamにほぼ同時にデータを書き込むとデータおかしくなっちゃうかな…?
結構でかいサイズを送受信してるんだけど、
やっぱり、サーバがクライアントに向けて送るNetworkStream、クライアントがサーバに向けて送るNetworkStreamっていう風に
別々に取得して送受信したほうがいいんだろうか…。
前、ほぼ同時に書き込むコード書いたんだけど、その時途中から変なデータになったんだけど。
719デフォルトの名無しさん:2008/01/31(木) 22:08:50
>>713
何故誰からもスルーされているのか、
まずはそこから考えろカス。

で。

・何が分からないのか
・どこまで分かっているのか
・どういう仕様なのか
・現在書いてるソースの提示

このへんの詳細を示せ。
720デフォルトの名無しさん:2008/01/31(木) 22:39:39
>>718
まさか「おかしくなる」「変になる」で説明できてると思ってないだろうな?
721デフォルトの名無しさん:2008/01/31(木) 22:57:22
>>720
>>まさか「おかしくなる」「変になる」で説明できてると思ってないだろうな?
ほぼ同時に送信(NetworkStream.Write)してから、受信(NetworkStream.Read)すると、
半分くらいまでは確かに送信した文字列なのですが、途中から文字化けしているのです。
ほぼ同時に送信したため、どちらかが送信している最中にどちらかが上書きしてしまったのでは?と思ったのですが。
722デフォルトの名無しさん:2008/01/31(木) 23:09:09
>>721
簡潔にいうと,それは書いたプログラムがおかしい.

どうおかしいかはわからない.
723デフォルトの名無しさん:2008/02/01(金) 00:09:32
>>722
ということは、サーバからクライアント、クライアントからサーバ用にそれぞれNetworkStreamを取得せずとも問題ないということでよろしいのでしょうか?
724デフォルトの名無しさん:2008/02/01(金) 00:29:06
>>723
そうだね.TCPって書いてないけどTCPとESPして考えると,TCPは全二重通信だから一本でOK.
725デフォルトの名無しさん:2008/02/01(金) 02:40:19
すみません、教えてください、以下のようなプログラムでコンピューター名=MyPC の 
DirectoryEntry をすべて得ようとしたのですが、DE1.Children.SchemaFilter.Count
を参照した時点で、なぜか DE1.Children には子が存在しないようでUserの一つも
参照できないようでした。

Imports System.DirectoryServices
Dim DE1 as DirectoryEntry = New DirectoryEntry("WinNT://MyPC,computer")
  Try
Dim ChildrenCount As Integer
ChildrenCount = DE1.Children.SchemaFilter.Count
If ChildrenCount > 0 Then
For Each child As DirectoryEntry In DE1.Children
Debug.Print("SchemaClassName:" + child.SchemaClassName + " Name:" + child.Name)
Next child
Else
Debug.Print("(No Children)")
End If
Catch ex As Exception
Debug.Print(ex.Message)
End Try

確か、以前は見えたことがあったように記憶しているのですが、方法は同じだった
ように思うのですが、なぜ本日やってみたら出て来ないのかわかりません。
このような書き方で問題があるでしょうか。明日また教えてください。よろしくです!
726デフォルトの名無しさん:2008/02/01(金) 16:31:56
>>720,722,724
ありがとうございました。おかげでスッキリしました。
ちなみに、通信の方法は>>724さんの仰るとおり、TCPです。
727かず〜る。:2008/02/01(金) 20:16:00
WebBrowser内のHTMLに値を記入してサブミットすることはできたのですが、
別に立ち上がっているブラウザに記入してサブミットすることは可能なのでしょうか?
教えてください。

'ブラウザ内挿入+サブミット By Google [btnG q]
WebBrowser2.Document.All.GetElementsByName("q")(0).InnerText = "そうにゅう♪"
'ENTER(submit送信)
WebBrowser2.Document.Forms(0).InvokeMember("submit")
728デフォルトの名無しさん:2008/02/01(金) 20:54:40
可能です。
729デフォルトの名無しさん:2008/02/01(金) 23:50:46
ノーマルVB.NET→2003→2005と使ってきたが、VB.NET2008はどこが変わったの?
使いやすいのかな?
730デフォルトの名無しさん:2008/02/02(土) 15:47:02
>>729
http://www.atmarkit.co.jp/fdotnet/special/visualstudio2008_01/visualstudio2008_01_01.html
JavaScriptとCSSまわりは大幅に強化されているよ。
特に自作のオブジェクト(関数)にXMLコメントを埋め込めるようになったのが大きい。
.Net関係だとインテリセンスがやや強化、基本的なことだと起動時間、レスポンスが改善してるとか。
731デフォルトの名無しさん:2008/02/02(土) 15:57:58
VB初めて3ヶ月になります、ひとつ質問させてください、

Shared Function ToRoundDown@(ByVal vValue@, ByVal iDigits As Byte)
Dim vCoef As Decimal = CDec(10 ^ iDigits)
If vValue < 0 Then vCoef *= -1
Return Decimal.Floor(vValue * vCoef) / vCoef
End Function

この関数の@はどんな意味を持つのでしょうか?
引数の型?、戻り値?
この他に有用な使い方などもあったら是非教えてください
732デフォルトの名無しさん:2008/02/02(土) 16:01:37
>>731
decimal型のサフィックスだったと思う
733デフォルトの名無しさん:2008/02/02(土) 16:12:56
>>731
型文字って奴か
http://msdn2.microsoft.com/ja-jp/library/s9cz43ek(VS.80).aspx

それはむしろ悪い使い方だと思うね個人的には。
リテラルの型を明示する時以外は使わない方がいいと思うよ。

どうでもいいけどvb6の時代はこれ型指定文字とか言ったと思ったんだけど、
このあたりの用語の不統一もなんとかして欲しいねvbは。
734デフォルトの名無しさん:2008/02/02(土) 20:41:54
FunctionなのにAs句がないとはどう言う事だ

> どうでもいいけどvb6の時代はこれ型指定文字とか言ったと思ったんだけど、
> このあたりの用語の不統一もなんとかして欲しいねvbは。
VB7 以降は別言語ですよと強調したい…なんて考えてないだろうな別に
735デフォルトの名無しさん:2008/02/02(土) 20:58:28
ToRoundDown@になってるから、戻り値はDecimal型ってことじゃない?
それでもAs句があるほうがすげえわかりやすいのに変わりないな
736686:2008/02/03(日) 21:54:31
>>717
すみません、なんども試したのですがうまくいきません。
今となってはなぜ一度うまくいったのかわからないぐらいです。
コードをリビルドすると
「サービス System.Windows.Forms.Design.IEventHandlerService は
既にサービスコンテナに存在します。
パラメータ名:serviceType」
というメッセージに変わりますが、依然デザイナは表示できません。
このエラー内容で検索してみたのですが、
解決に役立ちそうな情報はみつかりませんでした。

VB.net2003、デフォルトのWindowsFormを継承して作った独自フォームベースを
継承して作った共通部品だけの親フォームをさらに継承したフォームです。
だれかご存じのかたいらっしゃいましたらお願い致します。
737デフォルトの名無しさん:2008/02/03(日) 23:31:39
>>736
だれかご存知の方ってアンタのソース見てるわけじゃないんだからわかんねーよ。
「共通部品だけの親フォーム」って意味わからん。

Formを継承→継承→継承→・・・何回やってもできるけど?
まっさらなプロジェクトで試してる?
738デフォルトの名無しさん:2008/02/03(日) 23:45:42
何を切れてるかわからんけど、686の言ってることは一応意味はわかるでしょ普通w
原因はよくわからないけど。

>>736
とりあえず可能であれば、その共通のコントロールをまとめたフォームを
別のプロジェクトに分けてみることを薦める。
739デフォルトの名無しさん:2008/02/04(月) 05:49:11
学校の課題で「購買管理システム」のWebアプリケーションの製作を行っているのですが、
新規社員を登録する際、社員番号は入社年度に番号付け。

値の範囲は
入社年度(西暦2桁)+シーケンス番号(3桁)

と、社員番号を自動取得するにしたいのですが、どうプログラムしたらいいのか困ってます。
教えてください。お願いしますm(_ _)m
740デフォルトの名無しさん:2008/02/04(月) 06:10:03
OracleならSEQUENCEでなんとかなる
SQL Serverなら自力で頑張れ
741デフォルトの名無しさん:2008/02/04(月) 09:13:49
>>739
そういう仕様が決まってるならさっさと作れる・・・
なに?まだ仕様がない? するってと俺が作るしかないのか orz


という素人仕事で始終固まってる俺からすると、ただ「マニュアル見てがんがれ!」
としかいえぬ。
742デフォルトの名無しさん:2008/02/04(月) 10:52:06
>>739
まず最初に画面の構成を考えてみると、そこにどういうコントロールを配置すれば
いいか大体決まるから、そこでどういう操作をしたらいかも決まり、そうするとそれ
に対応するオブジェクトのイベントも決まり、そのイベントでどういう仕事をさせればいい
かが決まる。

そうしたらその各仕事に対応して具体的に描くべきコード(つまりプログラム)が決ま
ってくる、そこを生めていけばいい。そこに、
>値の範囲は
>入社年度(西暦2桁)+シーケンス番号(3桁)
という仕様が必要になる部分が出てくるからそこでそれを忠実にコーディングすれば
自然に全体のアプリケーションが出来上がる。

というこういうのがイベントドリブンの昔からのRADによるWindowsアプリのスクラップ
&ビルドの方法。つまり手なりで勝手にプログラムは出来上がるようにできてるのが
昔からのVSなんとかのツールだしコンセプトなんだよ。
743739:2008/02/04(月) 11:15:47
>>742さん
画面の構成やコントロールはinputSyain.aspxを作って配置したんですが、
入社年度(西暦2桁)+シーケンス番号(3桁)を忠実にコーディングするプログラムがわかりません(>_<)
744デフォルトの名無しさん:2008/02/04(月) 11:48:24
>>743
たぶん困ってるのは、
>入社年度(西暦2桁)、 と
>シーケンス番号
を覚えておく方法なんでしょうから、それをファイルなりデータベースなりにしておけば
いいよ。

覚えておくところがLocalでいいならファイルはTextファイルならたぶんクラスを定義
してXmlで保存復元できるので簡単。詳しくはDOBONさんのところで詳しく載ってる
のでそっちを参照(->テンプレ)。データベースにするんなら具体的には本読んで勉強
してください(VBだったら初めからLocal用のTableファイルがすぐにも使える)。

あ、ASP系がWindowsアプリとどう違うのかは知らんw
745739:2008/02/04(月) 12:07:37
丁寧にありがとうございます!
頑張ってみます。
746739:2008/02/04(月) 17:17:56
んー、やはり力不足で無理でした。


If xmode = "INSERT" Then
lblHeader.Text = "■データメンテナンス:社員登録"
Dim newID As String
Dim count As Integer = 101
Dim endFLG As Integer = 0
Dim sqlstr As String
Do While endFlag = 1
sqlstr = "select shaID from shain where shaID = " & 西暦 & string型にキャスト変換する関数(count)
ShainSet = accessData.selectBySQL(sqlstr)
shaView = New DataView(ShainSet.Tables(0))
If shaView.Count = 0 Then
newID = 西暦 + count
End If
count = count + 1
Loop
txtshaID.Text = newID
btnGo.Text = "登録"
ソースはこのような感じですかね?
747ぺんぺん:2008/02/04(月) 20:36:43
登録した情報をMenuStripに追加していきたいのですが。

これだと、MenuStrip1が増えます、つまり横にのびちゃいます。
ToolStripMenuItemで縦にふやすにはどうしたらいいですか?

ソース長いので分けて書きます。
748ぺんぺん:2008/02/04(月) 20:38:38
Imports System.io
Public Class Form1
Dim myAl As New ArrayList
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sr As StreamReader = New StreamReader("c:\Test.csv")
Dim line As String
Dim i As Integer = 0
Do
line = sr.ReadLine()
If i <> 0 And line <> "" Then '一行目パス
myAl.Add(line)

Dim sData() As String = line.Split(",")
MenuStrip1.Items.Add(sData(0))
End If
i += 1
Loop Until (line Is Nothing)
sr.Close()
End Sub

Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked
For i As Integer = 0 To myAL.Count - 1
Dim sData() As String = myAl(i).Split(",")
If sData(0) = e.ClickedItem.ToString() Then
TextBox1.Text = DirectCast(myAl(i), String)
Return
End If
Next
End Sub
End Class
749デフォルトの名無しさん:2008/02/04(月) 21:03:08
>スクラップ&ビルド
??
750ぺんぺん:2008/02/04(月) 21:11:22
Vb2008 環境はXP 

そして

ビルドです。
751デフォルトの名無しさん:2008/02/04(月) 21:17:07
>>749
ttp://www.int21.co.jp/pcdn/vb/howto/vbov.html
モノ知らないのは分かったからさ
752デフォルトの名無しさん:2008/02/04(月) 21:25:07
>>751
スクラップ&ビルド の検索結果 約 1,700 件中 1 - 10 件目 (0.18 秒) 


スクラッチ&ビルド の検索結果 約 75,900 件中 1 - 10 件目 (0.16 秒) 
753デフォルトの名無しさん:2008/02/04(月) 21:35:06
>>752
君も頭悪いと思うよ、得意げになってるのかもしれんがw
754デフォルトの名無しさん:2008/02/04(月) 21:44:01
>>753
赤面乙
755デフォルトの名無しさん:2008/02/04(月) 22:05:12
>>751>>753
(・∀・)クスクス
756デフォルトの名無しさん:2008/02/04(月) 22:07:55
>>752
これだからゆとりは…
そんなに顔真っ赤にして恥の上塗りしなくていいからw
スクラップ〜は最初に綿密な設計をせずにトライアンドエラーで開発する手法
スクラッチ〜はゼロから部品の寄せ集めで開発する手法
RADの文脈でどちらが適切かは言うまでも無いでしょ?
757デフォルトの名無しさん:2008/02/04(月) 22:12:10
>>756
ほうほうそれでそれで?
758デフォルトの名無しさん:2008/02/04(月) 22:15:48
>スクラップ〜は最初に綿密な設計をせずにトライアンドエラーで開発する手法
こんな使い方をしてる人は居ないんだよ。
759デフォルトの名無しさん:2008/02/04(月) 22:16:41
スクラップ&スクラップ
760デフォルトの名無しさん:2008/02/04(月) 22:17:07
っていうか、そもそもスクラップ&ビルドって言葉はこの世界の言葉じゃなくて
もっとごく一般的な言葉なわけでさw

スクラッチ&ビルドは知らなくても恥ずかしくないかもしれないが、
スクラップ&ビルドって言葉を知らないのはかなり恥ずかしいと思うぞ。

個人的には>>756の説明もちょっと変だと思う。
ひょっとすると>>756がいってるのはこの業界特有の用法なのかも知れないが、
一般的な「スクラップ&ビルド」は文字通り(増改築ではなく)ゼロベースの
「再建」のことだね
761デフォルトの名無しさん:2008/02/04(月) 22:23:19
>>756は業界特有の用法でもなんでもなく
言葉を自分で定義する事でつじつまを合わせようとしてるだけだよ
762デフォルトの名無しさん:2008/02/04(月) 22:26:56
>というこういうのがイベントドリブンの昔からのRADによるWindowsアプリのスクラップ
>&ビルドの方法。つまり手なりで勝手にプログラムは出来上がるようにできてるのが
>昔からのVSなんとかのツールだしコンセプトなんだよ。
どう見てもスクラップ&ビルドは意味が違うように見える。
763デフォルトの名無しさん:2008/02/04(月) 22:26:59
まあそれでも、こんな常識的な言葉そのものの存在を知らない人よりずいぶんマシだよ
764デフォルトの名無しさん:2008/02/04(月) 22:28:12
それは多分ただの誤用でしょ。
だから>>753に書いたように両方とも恥ずかしいんだよw
765デフォルトの名無しさん:2008/02/04(月) 22:28:24
という事にしたいのですね:-)
766デフォルトの名無しさん:2008/02/04(月) 22:29:16
VB厨なんてそんなもんさ
767デフォルトの名無しさん:2008/02/04(月) 22:29:47
どっちも恥ずかしいけどレベルは一緒だと思うよ
768ぺんぺん:2008/02/04(月) 22:30:01
>>747

なんとかなりませんかねぇ〜。
769デフォルトの名無しさん:2008/02/04(月) 22:32:19
>こんな常識的な言葉そのもの
を変な扱い方するほうもはずかしいよ
770デフォルトの名無しさん:2008/02/04(月) 22:32:25
>どっちも恥ずかしいけどレベルは一緒だと思うよ
 ↑
自分が入っていないように思わせるところがミソ
771デフォルトの名無しさん:2008/02/04(月) 22:33:26
だれにいってんだ?
772デフォルトの名無しさん:2008/02/04(月) 22:34:36
恥ずかしい人を認定せずには居られない人が居るようですね(・∀・)クスクス
773デフォルトの名無しさん:2008/02/04(月) 22:37:56
久々に沸いてきたな^p^
774デフォルトの名無しさん:2008/02/04(月) 22:49:39
オマエガナー
775デフォルトの名無しさん:2008/02/05(火) 01:07:06
>>768
何で横に伸びてるか考えたり調べたりしないわけ?

Dim t As ToolStripMenuItem
t = New ToolStripMenuItem("menu")

t.DropDownItems.Add(New ToolStripMenuItem("sub1"))
t.DropDownItems.Add(New ToolStripMenuItem("sub2"))

MenuStrip1.Items.Add(t)
776デフォルトの名無しさん:2008/02/05(火) 02:17:14
MDIのアプリを作ろうとしていますが、
親のMDIフォームにToolStripContainerをDockStyle.Fillで張り付けた場合、
MDIの子ウィンドウが表示されなくなりますが、
これを表示させるようにするための解決法はございますでしょうか?

Excel2003のようなアプリを目指しています。
777デフォルトの名無しさん:2008/02/05(火) 09:10:32
たとえば、いわゆるITの世界だとプログラムの作成ツールの話が相当コアな話題の
源泉になることがありますが、これがFA用のアプリケーションなんかを作る世界に
なると、たとえばシーケンサなんかのプログラムの作成ツールなんかはそのコンセプトが
云々とかコアにそのつくりがどうのとか話題になることはなく、とにかくどんどん
アプリケーションが作成できることが重要で、部品を配置してその連携・連動で動作
が作られるとかは当然で毎日の忙しい作業の一つでしかない状況をもっと簡便
にスムーズにという目的が優先して意識されていて、あまりにも感覚が違う世界
になっている。ちょうどノートPCがオフィスでこぎれいに使われてるのと、工場や
工事現場のトラックで泥まみれで忙しく使われてるようなところとの違いでもあり、
薀蓄に満ちたプログラミングの哲学が論じられやすいのはそれだけ暇だからって
ことなのだろうか。そんなことはないとは思うが、それにしても細かいことを気に
しすぎる傾向があると思うよ。ちなみに「スクラッチ&ビルド」で検索したつもりの
人はどうかしてるとも思う。なぜなら「スクラッチ&ビルド」で引っかかったのは
あくまでも検索エンジンの仕様のためで、検索された用語はすべて「スクラッチ
ビルド(scratch build)」だからだ。&が入った用語は存在していないことにも
気がつかないというのは常用言語のレベルの問題だと私は思う。
778デフォルトの名無しさん:2008/02/05(火) 10:20:36
めんどくせ
779デフォルトの名無しさん:2008/02/05(火) 12:38:52
>>776
DockStyle.Fill じゃなくすれば良いよ。
780デフォルトの名無しさん:2008/02/05(火) 13:31:30
AddHandlerで同じハンドラを追加する可能性がある場合、
それを忌避するために指定したイベントに対してすでにAddHandlerされて
いるハンドラを列挙するメソッドやプロティとかはあるでしょうか?
781デフォルトの名無しさん:2008/02/05(火) 13:32:28
>>780 >忌避=回避のミス、すまそです
782デフォルトの名無しさん:2008/02/05(火) 14:05:20
>>780
ないです。
二重にAddHandlerしてしまうのを避ける目的なら、直前でRemoveHandlerすればよいかと。
ちなみにAddHandlerしてないのにRemoveHandlerしてしまったとしても特に怒られもしません。
783デフォルトの名無しさん:2008/02/05(火) 14:50:03
>>782
実は複数追加されて複数回同じハンドラが呼び出されていました。
そうですか、やぱりないのですね。ありがとうございました!!
784デフォルトの名無しさん:2008/02/05(火) 15:05:02
それは設計思想が問題な気がする。
785デフォルトの名無しさん:2008/02/05(火) 17:16:27
>>784
そうかもしれません。

それでちょっと教えていただきたいのですが、強制的にToolStripButtonなどの
DropDownをOpenさせる方法があれば知りたいのですが、もしこれがありましたら
教えてください。

よろしくお願いします。
786デフォルトの名無しさん:2008/02/05(火) 17:34:43
ToolStripDropDownButton1.ShowDropDown()
787デフォルトの名無しさん:2008/02/05(火) 17:59:11
>>786
うまくいきました!!ありがとうございました!!
788デフォルトの名無しさん:2008/02/06(水) 10:51:39
DataTableを group by するメソッドとかある?
789デフォルトの名無しさん:2008/02/06(水) 10:56:20
group byしてどうしたいのだ
790デフォルトの名無しさん:2008/02/06(水) 11:51:02
>>799
あったら便利だったから。待つのめんどくさいから自分で書いちまったけど。
791デフォルトの名無しさん:2008/02/06(水) 12:28:35
グループ毎に集計する、とかじゃないの?
あったら便利だから??
792デフォルトの名無しさん:2008/02/06(水) 13:34:24
>>791
いや、ただ単に取ってきたDataSetのmin,maxが欲しかっただけなんよ。
んでDataTableに軽いsql流せたら便利だなーってことで聞いてみた。
whereはselectで出来るけどgroup byにあたるのねーかな、みたいな。
793デフォルトの名無しさん:2008/02/06(水) 14:44:12
式で書けたりしなかったっけ?
794デフォルトの名無しさん:2008/02/06(水) 14:50:10
>>793
http://msdn2.microsoft.com/ja-jp/library/system.data.datacolumn.expression(VS.80).aspx
GROUP BYはSelectの中じゃ書けないようだなぁ、。

http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B325685
GROUP BYについてはここにあるが、読む気になれないんだぜ
795デフォルトの名無しさん:2008/02/06(水) 17:49:22
背景に画像を使っているのですが、タイマーを使用しピクチャーボックスを動かすとピクチャーボックスがちらつきます。
何か対処方法はありますか?
796デフォルトの名無しさん:2008/02/06(水) 18:31:28
>>795
WM_PAINTをフックして、自分の好きなタイミングで再描画させるようにする
797デフォルトの名無しさん:2008/02/06(水) 18:46:19
それこそダブルバッファじゃないの?
あ、コントロールが被ってたら意味なかったっけ?
798デフォルトの名無しさん:2008/02/06(水) 20:24:35
Visual Studio 2008 Expressってのをインストールしたんですけど、
Nunitをデバッグモードで実行するのってどうしたらいいんですか?
799デフォルトの名無しさん:2008/02/07(木) 00:16:46
>>794
読めないのに努力してくれたことに感謝する

>>795
画像をメモリDCに入れてBitbltしとけ
800デフォルトの名無しさん:2008/02/07(木) 08:17:16
FilesystemWatcher とかTimer などを使うとメモリー消費とかIOリソースとか
の消費量が自動的に増えていくようなことはあるでしょうか?
ProcessExplorerというMicrosoftの開発者の作成になるプロセス関係のツール
を見てみると、I/Oの(ReadでもWriteでもないOther欄が1秒に10ぐらいずつ増加
していました。これってそういう消費を増やす動作をしているものがあるということ
でしょうか。それとFilesystemWatcher やTimer などは本来的に無関係でしょうか?
801デフォルトの名無しさん:2008/02/07(木) 17:04:46
質問させてください。
マルチディスプレイ(2画面)にいくつかのフォームを表示させて作業をするシステムを想定して開発をしております。
そこで、指定したフォームが、現在プライマリ、セカンダリ、どちらに表示されているかを取得するプロパティやメソッド等はありますでしょうか?
解かる方、ご教示お願いします。
802デフォルトの名無しさん:2008/02/07(木) 17:19:11
System.Windows.Forms.Screen
803801:2008/02/07(木) 17:35:08
>>802
どうもです。それをヒントに
Array.IndexOf(Screen.AllScreens, Screen.FromControl(Me))
でプライマリとセカンダリが判別できるようになりました(`・ω・´)
804デフォルトの名無しさん:2008/02/10(日) 01:41:19
VB2005で動画のファイルから静止画を取り出すプログラムを作成しています。
簡単にすまそうと、MediaDetを使用して…と思い、プロジェクト→参照の追加で、COMのタブにあった
Dexter 1.0 Type Libraryを追加しました。
次にMSのサイトにあったサンプルコードを入れてみたのですが、

Dim Det As New MediaDet

のところで、「型 'MediaDet' が定義されていません。」とエラーが出ます。

参照の他に何かすることがあるのでしょうか?
805モンチッチ:2008/02/10(日) 01:51:06
namespace
806デフォルトの名無しさん:2008/02/10(日) 02:14:12
>>805
モンチッチさん
ありがとうございました。
名前空間に、DexterLibを追加したらエラーが取れました。
これから、実際のプログラムを作成してみます。
807デフォルトの名無しさん:2008/02/10(日) 13:43:55
この間2005で作成したアプリを2008の変換ウィザードで変換して
ビルドしたんですが、アプリを使っていると必ず「例外をスローしました」という
エラーが出るようになり困っています。
2005でビルドしているときにはこんなエラーは全くなかったんですが。
808デフォルトの名無しさん:2008/02/10(日) 13:59:22
>>807
それはご愁傷様です
809デフォルトの名無しさん:2008/02/10(日) 13:59:43
なんだのその糞ブログみたいな文章w
810デフォルトの名無しさん:2008/02/10(日) 15:14:20
共通関数を作っているんだけど引数にStringがあって、
Nothingを入れた場合の処理はどうしてますか?

今まではNothingが入ってくることを想定してなくて
Nothingを扱えないところでエラーがThrowされていたんですけど
なんかスマートじゃないような気がして。
今度は下のようにNothingをチェックしてNothingを返してみたり。

Public Function Test(Byval Str as String) as String
  'Nothingチェック
  If Str is Nothing Then
    Return Nothing
  End
  ・・・
End Function

その場その場で適切にすれば良いんだけど、
共通関数として作成するので一般的なコーディングはどんな感じなのかと。
NothingExceptionみたいなのがあればそれをThrowするですけどねぇ
どんな感じですかね?
811デフォルトの名無しさん:2008/02/10(日) 15:16:53
ArgumentNullException?
812デフォルトの名無しさん:2008/02/10(日) 15:17:02
NothingExceptionじゃなくて、NullReference Exceptionじゃない?
813デフォルトの名無しさん:2008/02/10(日) 15:20:06
>>810
煽りじゃなくそんなのケースバーケースでしょ。
VBのデフォみたいにNothingを空文字と等価に扱ってもいい場合もあるかもしれんし、
そうでないかもしれない。それはそのメソッド書いてる君にしかわからないでしょ。

ちなみに
http://msdn2.microsoft.com/ja-jp/library/system.argumentnullexception(VS.80).aspx
814810:2008/02/10(日) 17:23:28
>>811-813
提示していただいたリンクがそのものズバリでした。

Nothingを許さない場合は
ArgumentNullException

その他の場合も
ArgumentException
ArgumentOutOfRangeException

このあたりを状況に応じてスローするのが良いのですね。

勉強になりました。
ありがとうございました。
815807:2008/02/10(日) 21:49:00
HRESULTからの例外:0x800A007C

発生してる例外と言うのが上記なんですが
ググっても英語ページにいくつか情報があるぐらいでよくわかりません。
ディスプレイ関係のようですが、わかる方いらっしゃらないでしょうか?
816デフォルトの名無しさん:2008/02/10(日) 21:52:09
どこで発生してるのか調べて
発生個所周辺のコードを見せろ
817807:2008/02/10(日) 22:13:44
>>816
ありがとうございます、テンパってました;

Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, _
ByVal e As System.ComponentModel.ProgressChangedEventArgs) _
Handles BackgroundWorker1.ProgressChanged

Me.ProgressBar1.Value = e.ProgressPercentage

End Sub

原因は進捗率eが100%超えたためのようです。
2008にしたとたん何で100%を超えるのかサパーリ判りませんが
これからコード見直して見ます。
お騒がせしました。
818デフォルトの名無しさん:2008/02/11(月) 16:37:29
お世話になります。

VB.Net 2008で作成したEXEファイルをWindows Vistaのスタートアップに登録したところ
OS起動時にブロックしましたと表示され、停止してしまいます

UAC対応のためEXEファイルにマニフェストを組み込んで、レベルをRequireAdministratorで実行しても
スタートアップはブロックされてしまいます。

手元にはXpしかなく、どのようにすべきか見当が付きません、よろしくお願いしますm(_ _)m
819デフォルトの名無しさん:2008/02/11(月) 16:58:46
そりゃ、起動する度にRequireAdminで昇格求められたら面倒でかなわんと思う。
820デフォルトの名無しさん:2008/02/11(月) 17:02:20
起動しただけでブロックされるって何やってんの?
TCPサーバ作ってファイアウォールの設定変更しないといけないから、UACが出る、とかいうのはわかるけどさ。
821デフォルトの名無しさん:2008/02/11(月) 18:09:17
指摘ありがとうございます

起動するのはコマンドプロンプト・電源の監視・制御系で
システムには何も影響しない物です

RequireAdminで昇格を求められることは初めて知りました、解除してみます

どのような感じなのか自分では判りません、実際に自分でも見れればいいのですが、、、

http://microg.web.fc2.com/software.html
Power management Following two
822デフォルトの名無しさん:2008/02/11(月) 18:14:10
Vistaじゃないんで試せないが、
asInvokerが昇格なし(制限ユーザの権限)
highestAvaiableが使える範囲で最高の権限のはず
823デフォルトの名無しさん:2008/02/11(月) 18:43:05
去年PC買ったらVistaだったから、うpしてもらえればある程度試せるけど?
ウイルスとかはマジ勘弁だけど。
824デフォルトの名無しさん:2008/02/11(月) 19:03:24
それが、結構動作環境が狭く
Office コンポーネントが入っていないと動かないのが判りました
Office 2003等が入っていれば動くのですがOffice 2007では別に
Office 2003 Web コンポーネントのインストールをしてもらわないと動けません。
(エラー対策のためソフト起動時に動作環境を確かめます)

このことはサイトでマイクロソフトの説明書と一緒に載せています
もしよかったらで良いのでお願いします。


物は常に新しいものをアップしています、調整中なのでバージョンはそのままですが最新です


ソフトウェアがレジストリを変更したり、システムに情報を書き加えることはありません
825デフォルトの名無しさん:2008/02/11(月) 19:07:02
追記です、

レジストリ・システムには書き加えませんが、
Rebootを含むスケジュール実行では、スタートメニューのスタートアップに自分を追加します
レジストリからではなく

「C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ」

にファイルを追加します、
826デフォルトの名無しさん:2008/02/11(月) 20:20:19
使い方が違うのか、リストに追加して終了方法を再起動にしてもCPUモニターが出るだけで何も起こらない。
CPUモニター、本体ともに管理者権限で実行するようにしても。
あと、CPUモニター単体で起動しようとすると、動作を停止しましたって出るからなんとかしたほうがいいと思う。
827デフォルトの名無しさん:2008/02/11(月) 20:21:43
2008発売されましたね。
ところで私は2003をもっているのですが、途中VISTAパソコンを
新しく買ってそこにはインストールしていません。
でVB2008を買うにはアップグレードを買ったものかどうかわからない
のです。なんでもVISTAには2003は合わないらしいと雑誌で見た記憶が・・・
それともしよければスタンダードとプロフェッショナルの違いも教えていただ
けるとうれしいのですが、それとアカデミックの場合はいかがなのか。
そろそろゲームを作ってベクタにのせてみようなどと考えているのですが
どなたかお教えください。
828デフォルトの名無しさん:2008/02/11(月) 20:31:42
>>827
学生や教育関係者なら迷わずアカデミック(中身はプロフェッショナルと同一)。
そうでないなら無料のExpress版を手に入れて、それをStandardかProfessionalにアップグレード。
StandardとProfessionalの機能比較はこれ↓を参照。
http://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx
829デフォルトの名無しさん:2008/02/11(月) 20:32:19
エクスプレスインスコして使ってみればいいと思う。

スタンダードとアカデミックは内容一緒。
http://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx
830デフォルトの名無しさん:2008/02/11(月) 20:40:25
気持ち悪いぐらいに親切だなw
5分時間を割いて自分で調べればわかることだと思うんだけど
俺はこの手のただの甘えん坊の質問には答える気になれんよ全然
831デフォルトの名無しさん:2008/02/11(月) 20:47:39
答えるほうもいろんな人間がいるからね。
832デフォルトの名無しさん:2008/02/11(月) 20:49:36
そんな自分が好きです^^
833デフォルトの名無しさん:2008/02/11(月) 20:50:34
躾のつもりでしょうか?
834デフォルトの名無しさん:2008/02/11(月) 20:53:17
ありがとうございます。エクスプレスはオンラインでDLできるのですね。
これが無料だということはアップグレード版しか普通売れないような気がする
のですが、そういうものなのですね。
というかエクスプレス版でもかなり充実しているような・・・
とりあえずは取り掛かってみます。善は急げで明日買いにいこうかと思っていた
のですが、予定変更です。プロフェッショナル版は資料が充実しているようですね。
ありがとうございました。
835デフォルトの名無しさん:2008/02/11(月) 20:59:16
Expressで不満が無ければ買わない方がいい。
836デフォルトの名無しさん:2008/02/11(月) 21:14:27
なんとなくですが、私はエクスプレスのことを知らなかったのですが、
これはかなりの大盤振る舞いのような気がします。
ホクホク
うれしい取り計らいですが、どんな背景があってこうなったのでしょうか。
それにしても随分な無料版ですね。それにしても・・・
837デフォルトの名無しさん:2008/02/11(月) 21:17:09
>>826
Power management Following two.exeはスケジュールの作成・テスト実行担当で
Power management CPU monitor.exeはスケジュール実行を行うソフトです

これらを分けているのはOS再起動後に起動が少しでも軽くなるように
ファイルサイズを減らしています

単体で起動できないようにしているのは、間違って実行してしまったとき
前回のスケジュールを行うなどの誤作動をするので禁止しています
838デフォルトの名無しさん:2008/02/11(月) 21:19:59
ぁ、あとCPUモニターはOS起動が完了したことを確認するため
使用率4%以下を10秒間カウントしてからスケジュールを実行するようにしています
839デフォルトの名無しさん:2008/02/11(月) 21:23:05
開発までするPCユーザーは少ないから
無料でソフト開発してもらってPCとOS買うユーザー増やしてもらったほうが得するってことだろ
840デフォルトの名無しさん:2008/02/11(月) 21:47:30
開発するユーザーが少ないから開発費用を転嫁して
値段を上げようなどと考えないのがある意味で不思議ですが、
よしよしそこまで勉強したのか、というような気持ちで無料になった
ということなのでしょうか。うれしい。
841デフォルトの名無しさん:2008/02/11(月) 22:01:33
VSの主力は売上ベースで個人じゃなくチームエディションに移ってるらしいですよ
でも個人プログラマのフリーソフトなどの充実がOS選択に影響を与えるのは事実だし
今のうちに手を打っとこうという計算じゃないでしょうか
自分もVBが高くて指をくわえていた類です
842デフォルトの名無しさん:2008/02/11(月) 22:22:24
VSのバージョン上げれば(作る側にとっては)便利になるのは分かっちゃいるが
ユーザがドトネトのバージョンアップしてくれるかというと…
843デフォルトの名無しさん:2008/02/11(月) 22:49:15
Vista SP1やXP SP3に.NET Framework 3.5付けてくれればいいのに。
#インストール時にオプション画面でチェック外すとインストールされないとでもすればいいだろ。
844デフォルトの名無しさん:2008/02/11(月) 22:52:58
もう必需品に近いんだからMSアップデートで強制すればいいのに
ドトネトのアプリ起動したら自動アップデートするとか
845デフォルトの名無しさん:2008/02/11(月) 23:00:02
>>843-844
ずいぶんと独善的な発想だなあw
俺自身いくらドトネトの恩恵を受けててもユーザーの選択権を無視するような
意見にはとても賛同できんわ
846843:2008/02/11(月) 23:09:53
待て、俺の案は任意で拒否できるぞ。
確かに標準ではインストールすると書いたけど。
847デフォルトの名無しさん:2008/02/11(月) 23:14:44
.netインストールしたらJavaがインストールできなくなるわけじゃないし
.netをアップデートしたら過去の.netで作成したアプリが使えなくなるわけでもないし
どこらへんが独善的なんだろ?
848デフォルトの名無しさん:2008/02/11(月) 23:17:43
自己中乙
849デフォルトの名無しさん:2008/02/11(月) 23:18:22
>>847
君のうちのポストにくだらないチラシを入れていく連中も君と同じように考えてるんだろうね。
俺様がチラシ入れたからって郵便が届かなくなるわけじゃないだろう、みたいなw
そういう問題じゃないんだよ。
850デフォルトの名無しさん:2008/02/11(月) 23:22:33
郵便ポストと一緒にされてもw
郵便ポストはくだらないチラシであふれたら郵便配達に支障がでるしw
851デフォルトの名無しさん:2008/02/11(月) 23:49:15
そこはユーザがうまくやってくれるはずだからいいだろ
852デフォルトの名無しさん:2008/02/12(火) 01:28:52
SP1とかSP3とか入れられたらたまんねーんだよ
ってことじゃね?
853デフォルトの名無しさん:2008/02/12(火) 09:19:25
とはいえ現状でもユーザが勝手に入れるのは普通に考えられるわけだし
企業ならどのみち何をインストールさせるかなんて管理するもんだろ?
854デフォルトの名無しさん:2008/02/12(火) 11:05:23
>>586
>ListView 一つのアイテムの文字色変えると全部再描画

これ私も同じでした。Itemを追加してEndUpDateすると、全部のItemが再描画
されてしまいます、これを回避して増えた分だけの描画で済むようにはなる方法
がありましたら教えてください。
855デフォルトの名無しさん:2008/02/12(火) 11:15:46
856デフォルトの名無しさん:2008/02/12(火) 11:21:13
hoge1 = hoge2 と hoge1.Equals(hoge2) と String.Equals(hoge1,hoge2)
動きが同じように見えるけど内部的には違ってたりしますかね
変数はStringです
857デフォルトの名無しさん:2008/02/12(火) 11:31:53
等値演算の方は Option Compare の影響があるな
858デフォルトの名無しさん:2008/02/12(火) 11:41:42
>>855
どうもです。それ参考にしてみます!!
859854:2008/02/12(火) 16:35:55
>>855
先ほどはありがとうございました。

この内容は私にはちょっと硬かったため、その後他も見てみましたところ

CodeProject Flicker-free ListView in .NET and XP. Free source code and programming help
http://www.codeproject.com/KB/list/listviewxp.aspx

のようなところにサンプルがあって試してみましたが、問題がありました。
簡単にできそうに見えたのですが、DEMO版の方は確かにちらつきなしで
しっかりきれいにできたのに対し、Source版の方をやってみましたところ、
最初にVS2005用にUpgradeされ、それを実行したところでは、一つItem
を追加するたびにパラパラと再描画されていました。

(ソースがC#なのでC#スレで訊くべきでしょうか、そうでしたらそちらに移行します)

そこのコメント・レスのところには、owner draw にした上で、後は
VB.net : Me.SetStyle(ControlStyles.OptimisedDoubleBuffer, True)
ほとんどこれだけでもできるような書き込みもありましたが、こうしたときに
OnPaint()などを自分で描画するルーチンを書かなければならないとすると
これも大変そうで、うまくいきそうにありませんでした。何か簡単な方法が
あればいいのですが。
860デフォルトの名無しさん:2008/02/12(火) 18:29:54
ListViewでDetails表示をする場合、カラムの高さはフォントの大きさで
自動的に変更されますが、見やすくするために少し高さを広げたいと
思うのですが、該当するプロパティなどは無さそうです。
カラムサイズを変更することは出来無いのでしょうか。
ご教授のほど、よろしくお願いいたします。
861デフォルトの名無しさん:2008/02/12(火) 18:58:29
無理
862デフォルトの名無しさん:2008/02/13(水) 01:59:05
DataGridViewの行をドラッグまたはショートカットキーの操作で
並べ替える(上下に移動する)方法ってあるでしょうか?
Sotedでごにょごにょしたりすれば出来ますか?
863デフォルトの名無しさん:2008/02/13(水) 09:12:52
>>862
行を一段上げたり下げたりならソートじゃなくてDataRowのコレクションを直接操作する感じじゃないかな。
特定行を削除後、指定位置に挿入、みたいな。
864デフォルトの名無しさん:2008/02/13(水) 15:31:50
ファイル移動する前に、自分が移動先のフォルダのアクセス権を持っているかを
調べたいのですが、該当する関数等はあるのでしょうか?
865デフォルトの名無しさん:2008/02/13(水) 16:01:23
>>864
以前>>562の質問をしたものだけど、
http://www.microsoft.com/japan/msdn/netframework/skillup/core/article3.aspx
ここが役に立ったよ!
アクセス権の確認から変更まで出来た。
866862:2008/02/13(水) 23:10:24
>>863
ありがとうございます。

ListだとAddに挿入位置を指定できるので現在の位置を記憶しておけばできますが
DataTableやDataGridViewだとAddに挿入位置を指定できませんよね?
自分で実装しないといけないでしょうか?
867862:2008/02/13(水) 23:19:09
実際のコントロールはフォームにDatagridviewを配置して
BindingSourceにDatatableを指定してあります。
Datagridviewの行を選択してコンテキストもしくはキー操作で
選択中の行を上下させるという操作を考えています。
DatatableにはXMLまたはCSVからデータを読み込んでいるため
DBを操作することはできません。
868862:2008/02/14(木) 01:27:00
【一行上に移動する場合】

1.現在の行を変数に格納する

2.一つ上の行の値を現在の行に書き込む

3.変数に取った値を一つ上の行に書き込む

4.カレント行を一つ上に移動する

こんな感じで直接DataRowの値を操作する方法しか思いつきません。
もっと良い方法があればお願いします。
869デフォルトの名無しさん:2008/02/14(木) 09:16:17
DataTable 系は行順に無頓着だからなぁ
870デフォルトの名無しさん:2008/02/14(木) 11:22:40
Microsoft .NET Framework 2.0 Service Pack 1 (x86) は再頒布不可なのでしょうか?
871デフォルトの名無しさん:2008/02/14(木) 12:11:44
Debug.Print("バレンタイン")
872デフォルトの名無しさん:2008/02/14(木) 13:01:05
初心者でよく分からないのですが
>>871
のとおり入力しても「チョコ」と印刷されません。
なにが悪いのでしょうか。
873デフォルトの名無しさん:2008/02/14(木) 13:25:28
>>872
明治製菓の陰謀です
874デフォルトの名無しさん:2008/02/14(木) 13:27:26
>>862
InsertAtがあるだろ
875デフォルトの名無しさん:2008/02/15(金) 10:51:27
質問です。
現在PCにインストールされているすべてのフォントの一覧をコンボボックスに表示させておりますが、
理想としては日本語に対応したフォントのみを一覧に表示させたいと思っています。
特定のフォントが日本語に対応しているかどうか調べる関数やプロパティはありますでしょうか?
解かる方宜しくお願いします。
876デフォルトの名無しさん:2008/02/15(金) 16:02:27
よろしくお願いします、

いま、VistaのUAC解除のソフトウェアをVB.Net 2008で作っているのですが
テストするにはやっぱりVista OSを手に入れて動作テストするしかないですか?

前回のようにマイクロソフトから無料のXPのイメージを配布しているとか、
Vistaでの動作を検証できるようなツールは無いでしょうか?
877デフォルトの名無しさん:2008/02/15(金) 16:06:54
USBメモリにそのソフトをいれて、街の電気屋さんに行くんだ。
後は解るな?
878デフォルトの名無しさん:2008/02/15(金) 16:17:46
それは2,3度友達がバイトしているので出来たのですが
最近ウイルスなどニュースで取り上げられてたので厳しいらしいです
多少制限などがあってもいいので、基本動作ができて手ごろな方法は無いでしょうか?

サイトのほうでテストをしてくれている方がいるのですが、その人には鬱陶しくなる位テストして頂いているので、
これ以上ご迷惑をかけることも出来ず、、、
879デフォルトの名無しさん:2008/02/15(金) 16:57:43
だから、このスレッドを見た人にテストしてくれと?

迷惑かけたくないんなら、Vista買って仮想PCにインストールしてテストすれば?
880デフォルトの名無しさん:2008/02/15(金) 17:06:23
俺の財布に迷惑だろう・・・
881デフォルトの名無しさん:2008/02/15(金) 17:44:25
Windows Server 2008のRC1がただで手に入る。
Administrator以外のユーザではVista同様のUACが有効。

ところで、解除ってUACのサービスを止めるってこと?そりゃないぜ。
882デフォルトの名無しさん:2008/02/15(金) 19:00:59
ありがとうございます、早速ためしてみます!m(_ _)m
サービスというか、UACの無効ですね、、、邪魔かなと思って
883デフォルトの名無しさん:2008/02/15(金) 19:06:43
馬鹿じゃね?
884デフォルトの名無しさん:2008/02/15(金) 19:11:13
解除しないほうがいいですか?
もしかして何か問題が起こったりします?
885デフォルトの名無しさん:2008/02/15(金) 19:12:59
セキュリティ低下
886デフォルトの名無しさん:2008/02/15(金) 19:21:21
MSDNライブラリ検索おかしくね?
検索結果が英語ばっか
887デフォルトの名無しさん:2008/02/15(金) 21:39:16
>>884
UACはバカがWindowsを使ってもセキュリティを確保するための仕組みなのに、
バカでも簡単に無効にできるようなソフトウェアなんてナンセンスにも程があるだろ。
888デフォルトの名無しさん:2008/02/16(土) 20:22:15
すいません。いろいろ調べたのですができないの知恵のある方教えてください。
IPアドレスからその端末名(出来ればMacアドレスも)を取ってくるプログラムを作りたいのですが
なかなかできません。
Dim strHostName As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("192.168.1,3")
見たいな感じでもやってみましたが名前解決できないためか、
C:\WINDOWS\system32\drivers\etc\HOSTS
に記述している分しかとってこれません。(他はipがかえってきます)
ローカルネットワーク上の端末名(コンピュータ名)です。
pingを飛ばすときに端末名を書くとipに変換してくれるのでWindows上では変換してくれます(同じネットワーク部のPCのみですが)
どこを見てもIPから端末名を取る記述は上のばかりのため困っています。お願いします
889デフォルトの名無しさん:2008/02/16(土) 20:52:28
逆引きできないIPのホスト名はDNSでは取ってこれない
NBTが有効になっているならコンピュータ名の名前解決はできるかもしれない
さて、.Netではどう書けばいいんだったか
MACアドレスはARPだな、こっちは書ける
890デフォルトの名無しさん:2008/02/16(土) 21:00:08
nbtstatで名前解決したらMACアドレスもセットで返ってきたわ
一覧も取得できるし、なんとかなるんじゃない?
でもクラスとして用意されてるかはよく知らん
なかったらAPIよばないとできないかも
891デフォルトの名無しさん:2008/02/16(土) 21:14:17
>>888
あれ、System.Net.DNS.GetHostEntryはNBTをサポートしてるみたいだ
試してみたらうちではちゃんとコンピュータ名も取ってきてるっぽい
3レスも消費したが力になれないわ、すまん
892888:2008/02/16(土) 23:14:58
>>891
レスありがとうございます。
コンピュータ名が見れたのはたとえば自分(WinXP)のPCのLan設定が
IPアドレス 192.168.1.2
サブネット 255.255.255.0
の時に
ローカルネットワーク上(スイッチングハブで接続)の別の見たい端末(WinXP)のLan設定が
IPアドレス 192.168.1.3
サブネット 255.255.255.0
の端末名が表示されたということですか?
Windowsでは、この設定の場合は192.168.1.*に設定されている端末のPC名は全て名前解決を
してくれるのでVBでも可能かと思っていました。
ttp://www.forest.impress.co.jp/article/2002/07/23/netenum.html
↑の情報がIP指定で取得できたらうれしいのですがそのような方法はVBではないのでしょうか?
891さん本当にありがとうございました
893デフォルトの名無しさん:2008/02/17(日) 00:43:15
初歩的な質問で申し訳ありません。
↓がキャストできません。と出るのですが原因がさっぱりわかりません。

Dim Dt As DataTable = DirectCast(Me.CatalogDataGridView.DataSource, DataTable)

DataGridViewのDataSourceにはDataTableをセットしてあります。
894893:2008/02/17(日) 01:40:57
すみません、自己解決しました。
895デフォルトの名無しさん:2008/02/17(日) 03:09:56
VS2005でエクスプローラー風のアプリを作成しようと
ListViewにファイルのアイコン(16×16)を表示させていますが
エクスプローラのように透明色が排除されずアイコンの
周りが青で表示されます。この青を消すことはできないのでしょうか?
896デフォルトの名無しさん:2008/02/17(日) 17:30:58
VBAしかやってませんが、
VB.NETは敷居が高いでしょうか?
897デフォルトの名無しさん:2008/02/17(日) 18:39:05
VBAってVB6みたいな奴じゃなかったっけ?
VB.netから入ったからよく知らんが、やる気があれば問題ないんじゃね?
898デフォルトの名無しさん:2008/02/17(日) 18:41:37
>>897
ExcelとかACCESSとかOfficeと連携してる
基本VBと同じ
899デフォルトの名無しさん:2008/02/17(日) 18:50:24
敷居が高いかどうかは本人次第
無料で試せることを人に聞くようなのはどうかと
900デフォルトの名無しさん:2008/02/17(日) 18:51:22
は〜い、VBA→VB2005で〜す。

VBAとは呼び名が違ったり書き方が違ったりなどは慣れだと思います。
文法もオブジェクト指向も基本的に一緒なのでそれほど苦にはなりませんでしたが
扱えるクラスが広いしクラスの継承などは今も勉強中です。
901デフォルトの名無しさん:2008/02/17(日) 19:06:33
VBAでクラスモジュール扱ってんの見たことないのは俺の経験不足かしら。
まぁVBっぽい書き方出来るC#って考えた方が理解しやすいよね。

ちなみに俺は
C→C++→VB4→VB5→VBA→VC6→J2SE→VB6→VB.NET
なわけだからか、大した抵抗も何もなかったけど。

寧ろJavaやってたときのエディタの使い勝手の悪さの方が抵抗あったなー。
902デフォルトの名無しさん:2008/02/17(日) 19:21:46
現在My.Computer.FileSystem.CopyDirectoryを使用してフォルダ間のコピーを行っているのですが、
フォルダ内のファイルとフォルダ数が多いため多少時間がかかります。
なるべく時間を掛けずにコピーを行いたいのですが、早くコピーする方法ってありますか?

バージョンは2005です。
903896:2008/02/17(日) 21:08:12
レス有難うです
904デフォルトの名無しさん:2008/02/17(日) 21:21:24
>>902
回転数の速いHDDに換装する
905デフォルトの名無しさん:2008/02/17(日) 22:01:08
VBAしかやってなくて趣味ならJavaとかC#とかから入った方が
中途半端な知識が邪魔しなくて勉強しやすいかもね
906デフォルトの名無しさん:2008/02/18(月) 09:30:03
>>902
SAS6台でストライピング
907デフォルトの名無しさん:2008/02/18(月) 11:39:35
VC#2008を入れて遊んでるんですが、問題が
VC#で勝手についてくるVistaの新フォント「メイリオ」が使えません。
エラー内容はが
「これはtrue type フォントのみがサポートされています。これはtrue type フォントではありません」
フォントが壊れているのか、このXPが壊れてるのか、俺が手遅れなのかがわかりません

解決方法はありませんか?
908デフォルトの名無しさん:2008/02/18(月) 11:58:29
>true type フォントのみがサポートされています。これはtrue type フォントではありません
って書いてあるじゃん。
メイリオはtrue typeじゃないじゃん。
お前が手遅れじゃん。
909デフォルトの名無しさん:2008/02/18(月) 12:00:16
メイリオのフォントの種類ってところに「TrueType コレクション フォント ファイル」って書いてるけど
違うって事なのか・・・orz

納得したサンクスb
910908:2008/02/18(月) 12:12:50
>>909
[画面のプロパティ]-[デザイン]-[効果]
「次の方法でスクリーンフォントの縁を滑らかにする」にチェックを入れて,「ClearType」を選択
これで使えるようになったりしないかな…
911デフォルトの名無しさん:2008/02/18(月) 12:30:33
>>910
これは何回か試したんですが一緒でした、

いろいろやってみたんですが、OS再起で
10回に2,3回フォントの使用が許可される状態です

意味わかりませんね。。。
912デフォルトの名無しさん:2008/02/18(月) 15:38:39
>>909
ttcは中にOpenTypeを含められる。
と言っても、メイリオはTrueTypeだけど(OpenTypeヘッダをもっている可能性はあるが)。
913デフォルトの名無しさん:2008/02/18(月) 20:53:03
すごく抽象的な質問で申し訳ないのですが、

普通のフォームデザイナで作ったフォームのボタンを押したときって
ボタンのイベントが動き出すじゃないですか?
その動き出すイベントってのを自分のパソコンの中じゃなくて
サーバーで動くプログラムの中に書きたいんですがそういうことって可能でしょうか?

可能であれば、どういった用語で検索すればそれらしいヒントにたどりつけますか?
914デフォルトの名無しさん:2008/02/18(月) 20:54:13
とりあえず、md5とかSHAを晒して見れ。
915デフォルトの名無しさん:2008/02/18(月) 20:55:13
ASP.NETとか、NetRemotingとか、WCFとかかなー
916デフォルトの名無しさん:2008/02/18(月) 21:16:29
>>913
ボタンのイベントからサーバのメソッドを呼び出せばいい
.NETでやるんならWebサービスとかが簡単かもしれない
917デフォルトの名無しさん:2008/02/18(月) 21:34:45
>>916
すみません。
ボタンのイベントからサーバのメソッドを呼び出す方法で詰まっています。
Webサービスで検索してみましたが、結構わからない単語だらけでびっくりです。

地道に勉強していきます。
ありがとうございました。
918デフォルトの名無しさん:2008/02/18(月) 22:11:37
質問です。
VB.NETでexeファイルのショートカットを作りたいのですが
作業フォルダの設定の仕方がわかりません。
どうすればできますか?
919デフォルトの名無しさん:2008/02/18(月) 22:16:11
>>917
使ってるのはExpress?
ならWeb Developer Expressを落としてきてASP.NET Webサービスのプロジェクトを作る
XPProならIISをインストールできるから、Webサーバを立ち上げてlocalhostでそのプロジェクトが動くようにする
後はWindowアプリケーションからWeb参照という仕組みでメソッドを呼び出す
やってみせると簡単なんだけど、説明すると難しい
920デフォルトの名無しさん:2008/02/18(月) 22:21:27
>>918
IShellLink
921デフォルトの名無しさん:2008/02/19(火) 00:10:36
>920
ご親切にどうもありがとうございました
922デフォルトの名無しさん:2008/02/19(火) 21:45:10
>>919
ありがとうございます。
web参照というのができるのですね。
なんとなくわかった気がします。
IISについて勉強してみます。
923デフォルトの名無しさん:2008/02/19(火) 21:46:53
いや、普通にショートカットファイル操作するために使うんだけど・・・。
924デフォルトの名無しさん:2008/02/19(火) 22:48:13
質問です。初心者ですが基本といわれるバブルソートが出来ません。

Dim airData(8)
work = 0
j = 0

For idx = 0 to airData.GetLength(0) - 1
if airData(j) > airData(j+1)
  work = airData(j)
airData(j) = airData(j+1)
airData(j+1) = work
end if
next

上記のように打ち込んだら一番最初の2つの配列だけソートされた
だけで出力されました。簡単すぎるのか丁寧に解説してくれているサイトも見つからないので
どなたかコメント付きで分かりやすいコードを書いてくれないでしょうか。
お願いします。
925デフォルトの名無しさん:2008/02/19(火) 22:49:24
バブルソードは二重ループになってるはずだが
926デフォルトの名無しさん:2008/02/19(火) 22:50:01
j が 0 から全く動いてないように見えるが
927デフォルトの名無しさん:2008/02/19(火) 22:55:53
>>925
切れなさそうな名前ですね
928デフォルトの名無しさん:2008/02/19(火) 22:56:43
バブルソードは二層構造になってるはずだが
929デフォルトの名無しさん:2008/02/19(火) 22:58:02
j+1をendifの前に入れたら配列の境界外とかでエラーになってしまい、
二重ループでFor j = 0 to 3 ってやってみたけどエラーになってしまって。
変数はidxとj以外にもう1つ必要なんでしょうか?
930デフォルトの名無しさん:2008/02/19(火) 23:06:32
すみません。>>929はFor j = 0 to 8 の間違いです。
931デフォルトの名無しさん:2008/02/19(火) 23:08:17
お前にはまだ8要素は早い。
3要素で考えてみろ。
932デフォルトの名無しさん:2008/02/19(火) 23:24:05
わかりません。もう少しヒントもらえませんか?
他の人のサンプルプログラム見てもよく分からなくて困ってます。
933デフォルトの名無しさん:2008/02/19(火) 23:29:07
他の人のサンプル見てもわからないやつにどういうヒントをだせばいいんだ?
どこがわからないのかはっきり書かないと。
934デフォルトの名無しさん:2008/02/19(火) 23:34:51
>>924に手を加えるとしたら何かを教えて頂けるとありがたいのですが
935デフォルトの名無しさん:2008/02/19(火) 23:44:55
そりゃ j のループやがな。
936デフォルトの名無しさん:2008/02/19(火) 23:45:24
なんのためのカウンタだよ
937デフォルトの名無しさん:2008/02/19(火) 23:51:21
まず、何でバブルソートを使えばソートできるのか、
バブルソートは何をやっているのか、
そこを理解しないとあかんと思う。
938デフォルトの名無しさん:2008/02/19(火) 23:54:12
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/
こういう一発で出てくるのがあるんだし。

これでもまだ分かりにくいけどさ
939デフォルトの名無しさん:2008/02/19(火) 23:55:41
多分こうだろ

Sub Main()

    Dim data(8) As Integer

    '適当な値を入れる
    Dim r As New Random()
    For i As Integer = 0 To data.Length - 1
        data(i) = r.Next()
    Next

    Dim work As Integer

    'ソート開始
    For i As Integer = 0 To data.Length - 1
        For j As Integer = data.Length - 1 To i + 1 Step -1
            If data(j - 1) > data(j) Then
                work = data(j - 1)
                data(j - 1) = data(j)
                data(j) = work
            End If
        Next
    Next

    '結果出力
    For i As Integer = 0 To data.Length - 1
        Console.WriteLine(data(i).ToString())
    Next

End Sub
940デフォルトの名無しさん:2008/02/19(火) 23:56:58
つうか、こういうのバブルソートって言うのか
知らんかったw
941デフォルトの名無しさん:2008/02/19(火) 23:58:44
ソートの基本だわさ
942デフォルトの名無しさん:2008/02/20(水) 00:00:55
Dim airData(8)
work = 0
j = 0

For idx = 0 to airData.GetLength(0) - 1
 ※処理回数は配列数-1をループ
 For j = idx+1 to airData.GetLength(0) - 1
  ※jは処理回数(idx)と(idx+1)を比較していく 
if airData(j) > airData(j+1)
 ※ 隣の配列の数字を比較して
  work = airData(j)
airData(j) = airData(j+1)
airData(j+1) = work
 ※ひっくり返す
end if
next
next

あってます?まだ間違えてる?

943デフォルトの名無しさん:2008/02/20(水) 00:02:02
>>939
ありがとうございます!
944デフォルトの名無しさん:2008/02/20(水) 00:05:05
>>938
参考にさせてもらいます。

すみません、皆ありがとう。
945デフォルトの名無しさん:2008/02/20(水) 00:21:23
バブルソートってこういうのだっけ?
まあこんなの学生の宿題以外の需要がないからねえ
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim values As Single() = RetrieveNumbersFromTextBox1()

    While True
      Dim noSwap As Boolean = True
      For i As Integer = 0 To values.Length - 2
        If SwapWithNextItemIfGreater(values, i) Then
          noSwap = False
        End If
      Next
      If noSwap Then Exit While
    End While

    Dim texts As New List(Of String)
    For Each val As Single In values
      texts.Add(val.ToString)
    Next
    TextBox2.Text = String.Join(vbCrLf, texts.ToArray)
  End Sub
946デフォルトの名無しさん:2008/02/20(水) 00:22:33
945続き

  Private Function SwapWithNextItemIfGreater(ByVal values As Single(), ByVal index As Integer) As Boolean
    Dim thisVal As Single = values(index)
    Dim nextVal As Single = values(index + 1)
    If thisVal > nextVal Then
      values(index) = nextVal
      values(index + 1) = thisVal
      Return True
    Else
      Return False
    End If
  End Function

  Private Function RetrieveNumbersFromTextBox1() As Single()
    Dim nubmers As New List(Of Single)
    For Each line As String In TextBox1.Lines
      nubmers.Add(Single.Parse(line))
    Next
    Return nubmers.ToArray
  End Function
947デフォルトの名無しさん:2008/02/20(水) 00:41:53
どう見ても学校の宿題です

本(ry
948デフォルトの名無しさん:2008/02/20(水) 01:50:33
Do Until IsSorted(array)
 Shuffle(array)
Loop
949デフォルトの名無しさん:2008/02/20(水) 11:29:52
VB.netからPDFファイルを部数指定して印刷する方法って何かないでしょうか?
あったら教えてください

環境:VB.net2003・ADOBE READER8
950デフォルトの名無しさん:2008/02/20(水) 16:09:38
印刷ダイアログを操作する以外にないと思うよ
それぐらいなら繰り返し印刷するほうが。。。
951デフォルトの名無しさん:2008/02/20(水) 16:14:38
952デフォルトの名無しさん:2008/02/20(水) 16:54:44
acropdf.dllにそういうメソッドはないかの?
953デフォルトの名無しさん:2008/02/20(水) 20:11:58
ちょっと質問させてください。
ASP.NET 2.0(VB)でブラウザの戻るやページ内でバックスペースを押したときに

Web ページの有効期限が切れています

と表示されるページがありますが、あのように動作させるにはGlobal.asaxあたりに何か設定する必要があるのでしょうか?
それともIISに設定があったりするのでしょうか?
(その画面の時にF5などで更新を押すと 再送信しますか? と聞かれますがそのあたりも制御できるのでしょうか?)

今一歩そのあたりの深い部分が探しきれないので、ご存知の方がいらっしゃいましたらご教授いただければと思います。
954デフォルトの名無しさん:2008/02/20(水) 21:12:30
>>953
「あのように」がどのようになのかさっぱりわからん
とりあえず、まずはPOSTリクエストについて調べろ
955デフォルトの名無しさん:2008/02/20(水) 21:24:35
>>954
レスサンクスです。

動きとしては
ページ表示→遷移→戻るボタン(またはバックスペース)→Web ページの有効期限が切れていますと表示されているIEのエラーページ
この動作を実現させたいのです。

POSTリクエスト・・・とりあえずググってきます。
956デフォルトの名無しさん:2008/02/20(水) 21:34:36
Expiresヘッダをなんとかして出せばよろし。
957デフォルトの名無しさん:2008/02/20(水) 22:06:49
>>956
各ページのLoad時
Headerにこのようなものを出力するようにしてみました。

<meta http-equiv="Expires" content="0" />
<meta http-equiv="pragma" content="no-cache" />

実現方法は以下のとおりです。

Dim meta1 As New Web.UI.HtmlControls.HtmlMeta
meta1.HttpEquiv = "Expires"
meta1.Content = "0"
Me.Header.Controls.Add(meta1)

Dim meta2 As New Web.UI.HtmlControls.HtmlMeta
meta2.HttpEquiv = "pragma"
meta2.Content = "no-cache"
Me.Header.Controls.Add(meta2)

'キャッシュ制御は以下のようにGlobal.asaxでリクエスト時に必ず設定するようにしてみました。
With HttpContext.Current.Response
.Cache.SetCacheability(HttpCacheability.ServerAndNoCache)
.Cache.SetAllowResponseInBrowserHistory(False)
End With
これだとキャッシュは作成されず、何かの原因で作成されたとしても有効期限0になると思っているのですが・・・

正常にメタタグは出力されているのですが、どうにも思った動きになりません。
この設定が悪いのでしょうか?それとも何かほかに設定が・・・
958デフォルトの名無しさん:2008/02/21(木) 11:12:54
ツールストリップに動的にボタンを貼り付けたいと思い、下記のように
AddHandlerに渡すメニューイベントを引数にして関数を呼び出したいのですが
(1)でメニューイベントとして解釈させる方法がわかりません。
DirectCastしようにもXXXXXの部分がわかりません。
ご教授の程よろしくお願いいたします。


Public Sub SetButton(ByVal S As String, MenuEbvent As Object)
Dim item As New ToolStripButton

item.Text = S
AddHandler item.Click, AddressOf DirectCast(MenuEvent, XXXXX) ==>(1)
ToolStrip.Items.Add(item)

End Sub


SetButton("Menu1", ToolStripMenuItem1_Click)
SetButton("Menu2", ToolStripMenuItem2_Click)

959デフォルトの名無しさん:2008/02/21(木) 13:30:46
初心者ですみません><質問なのですが(ここであってるのかな^^;)
今VB2005でwebページを作成しているのですが、
そのなかでデザイナ側でGridViewのitemTemplateにCheckBoxを配置しているのですが
それをソースコード上で記述して再現したいのですが、どのようにすればいいのかご教授願えませんでしょうか?

例えばボタンをGridViewに追加の場合だと

Dim Button1 As ButtonField = New ButtonField
Button1.HeaderText = "選択"
Button1.Text = "選択"
Button1.ButtonType = ButtonType.Button
.Columns.Add(Button1) : Button1 = Nothing

といった感じででうまくいくのですが
TemplateでitemTemplateにCheckBoxを作成の場合ではどう記述すればいいのかわかりません

Dim TemplateF As TemplateField = New TemplateField
TemplateF.ItemTemplate = New ????
TemplateF.HeaderText = "ABC"
TemplateF.????
TemplateF.????
.Columns.Add(TemplateF) : TemplateF = Nothing
960デフォルトの名無しさん:2008/02/21(木) 13:33:09
あ、上げた方がいいのかな

いきなりの長文もうしわけないです
961至急求む:2008/02/21(木) 15:19:48
VS2005アカデミック、WindowsXpで以下のプログラムを
動かしたい。しかし
Imports System.Managementが参照できないのだが、どうしたらいい?

Imports System
Imports System.Management
Imports System.Windows.Forms
Namespace WMISample
Public Class MyWMIQuery
Public Overloads Shared Function Main() As Integer
Try
Dim searcher As New ManagementObjectSearcher( _
"root\WMI", _
"SELECT * FROM ProcessorPerformance")
For Each queryObj As ManagementObject In searcher.Get()
Console.WriteLine("-----------------------------------")
Console.WriteLine("ProcessorPerformance instance")
Console.WriteLine("-----------------------------------")
Console.WriteLine("Active: {0}", queryObj("Active"))
Next
Catch err As ManagementException
MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
End Try
End Function
End Class
End Namespace
962デフォルトの名無しさん:2008/02/21(木) 15:28:13
>>961
参照設定は済ませたか?
963至急求む:2008/02/21(木) 16:02:44
>962
 そそれがわからない。
 参照の追加のCOMとか色々みてもない。ない。

 あっといけた。いけた。よろこべ。でけた。

964デフォルトの名無しさん:2008/02/21(木) 16:13:33
まて、急いでるのはわかるが、後続のために具体的にどうしたのかは書け。
965959:2008/02/21(木) 16:17:30
すみません先程の>>959ですが
なんとか以下のプログラム記述でGridView内にCheckBoxを表示する段階まではもっていけたのですが
Public Class MyTemplate
Implements ITemplate
Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
Dim cb As New CheckBox
cb.ID = "CheckBoxABC"
container.Controls.Add(cb)
End Sub
End Class
---------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
With Me.GridView1
Dim tmpF As TemplateField = New TemplateField
tmpF.ItemTemplate = New MyTemplate()
tmpF.HeaderText = "あああ"
.Columns.Add(tmpF) : tmpF = Nothing
End With
End Sub
以下のような感じで生成したGridViewのチェックボックスにアクセスしようとすると
------
NullReferenceExceptionはユーザーコードによりハンドルされませんでした
オブジェクト参照がオブジェクト インスタンスに設定されていません
------
というエラーが発生してしまいます。
↑の通りNULLアクセスになっているようなのですが、CheckBox(?)の
インスタンスをどこでどうやって生成すればよいのでしょうか?今日一日ずっとこれやってますけどもうお手上げだーw
For i = 0 To Me.GridView1.Rows.Count - 1
CType(Me.GridView1.Rows(0).FindControl("CheckBoxShop"), CheckBox).Checked = True
Next
あと、名前つけ忘れてました、すみません
966959:2008/02/21(木) 17:11:16
うう・・返事がない
967デフォルトの名無しさん:2008/02/21(木) 17:20:57
そろそろ次立てる頃?
968デフォルトの名無しさん:2008/02/21(木) 17:42:40
>>958
C#だとそういう記述でできるけど、VBはC#とイベントの取り扱い方が違うからその方法では無理。

今から正解作るからちょっと待ってて
969968:2008/02/21(木) 18:34:53
VBで書こうとして気づいた。

C#だと簡単なのにVBだと書けないや。
RaiseEventだと自身のイベント以外は呼び出せないみたいだし。
イベントの取り扱い方に制限が掛かってて無理っぽいよ。
970デフォルトの名無しさん:2008/02/21(木) 18:37:26
New EventHandler(AddressOf メソッド名)
AddHandler イベント, DirectCast(obj, EventHandler)
971デフォルトの名無しさん:2008/02/21(木) 18:56:30
そんな説明じゃ968や958にはわからないと思うよ。
まあ要はデリゲートを勉強しろってことだけどさ。
972968:2008/02/21(木) 19:06:50
失礼、普通にできたな。
AddressOf演算子というものを使うわけだな。
下記のコードで、ButtonクリックでToolStripMenuItem1_Clickメソッドが呼び出されることが可能になった。


Public Class Form1

Public Sub SetButton(ByVal S As String, ByVal MenuEbvent As EventHandler)
Dim item As New Button()
item.Text = S
item.Dock = DockStyle.Fill
AddHandler item.Click, MenuEbvent
Me.Controls.Add(item)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SetButton("Menu1", AddressOf ToolStripMenuItem1_Click)
End Sub

Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
MessageBox.Show("OK")
End Sub
End Class
973デフォルトの名無しさん:2008/02/21(木) 19:33:01
AddreesOf知らないで今までどういう「イベントを使うコード」
書いてたんだろう968はw

というか、だから本当はデリゲートを理解してないのが問題なんだよ。
974968:2008/02/21(木) 20:13:25
>>973
あほかと・・・w
C#にAddressOfなんてないんだよ。
随分必死だなお前w

自作のユーザーコントロールにイベントデリゲートを宣言して、
自作イベントを外から扱ったりしてますけども。
C#と違ってVBだとデリゲートを直接呼び出すことができないことも
分かんないのかね君は
975958:2008/02/21(木) 20:15:31
皆さん、有り難うございました。
すっきりしました。
976デフォルトの名無しさん:2008/02/21(木) 21:10:48
>>974
統合失調症の人?
俺はエスパーじゃないから君がC#な人かどうかなんて知らない。
っていうか、ここどこ?w

ついでに言えば、
>C#と違ってVBだとデリゲートを直接呼び出すことができないことも
何これ意味がわからん。
977デフォルトの名無しさん:2008/02/21(木) 21:19:46
>>968-969みれば彼がC#な人間だということはわかるだろ。
でもなんでVB.NETのスレにいるのかはわからないけど。
978デフォルトの名無しさん:2008/02/21(木) 21:36:50
なんでC#そんなに好きなのにVBやってんの?
C#の方がいいんなら、そっちでやりゃいいじゃん?
979デフォルトの名無しさん:2008/02/21(木) 21:49:37
C#使ってる人は質問に回答してはイカンとですか。
980デフォルトの名無しさん:2008/02/21(木) 22:02:42
はっきりしてることはウザイから他所でやれと言うことだ
981デフォルトの名無しさん:2008/02/21(木) 22:09:42
少なくともC#では〜なんて回答は何の役にも立たんわけで
982デフォルトの名無しさん:2008/02/21(木) 22:16:26
まあちゃんと理解できてたらVB.NETもC#も一緒
983デフォルトの名無しさん:2008/02/21(木) 23:07:18
んだんだ
984デフォルトの名無しさん:2008/02/22(金) 02:42:17
MSDNを見るとカーソルキーでKeyDownを発生させるためにはIsInputKeyメソッドをオーバーライドする必要があり、
既定の動作は使えなくなります見たいなことが書いてあるけど
DataGridViewで試したらIsInputKeyをオーバーライドしなくてもKeyDownイベントが発生したし
既定の動作(フォーカスの移動)もしっかり生きてるんだけど、これ仕様なのかな?

XP VB2008
985968:2008/02/22(金) 02:51:25
>>976
自作クラスに自作イベントを宣言し、そのインスタンスをForm1で宣言しました。
Form1のButton1がクリックされたときに先のインスタンスの自作イベントが発生するようにしたい。
VBでどうやって書く?RaiseEventを使おうとしてもForm1のイベントじゃないから無理みたいだよ。
ちなみにC#だったらイベントデリゲートを直接呼び出すことが可能だから簡単。
VBでも当然できるんだよね?

Public Class Form1
WithEvents tmp As New EventTest()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'ここにコードを書いてください
End Sub
End Class
'ユーザー定義型
Public Class EventTest
'自作イベント
Public Event PropertyChanged(ByVal sender As Object, ByVal e As EventArgs)
'プロパティ
Private newPropertyValue As String
Public Property NewProperty() As String
Get
Return newPropertyValue
End Get
Set(ByVal value As String)
newPropertyValue = value
'PropertyChangedイベントを発生させる
RaiseEvent PropertyChanged(Me, Nothing)
End Set
End Property
End Class
986984:2008/02/22(金) 02:53:44
ごめん、寝ぼけていっしょにAlt押してたの忘れてた
987984:2008/02/22(金) 05:16:18
やっぱIsInputKeyをオーバーライドしなくてもカーソルキーだけでKeyDown発生した
なんでだー
988デフォルトの名無しさん:2008/02/22(金) 05:16:44
>>985
VBもC#も全然わかってない感じだ
989デフォルトの名無しさん:2008/02/22(金) 06:57:05
C#でもクラスの外部から直接イベントを起動するのは無理なんじゃないか?
むしろ出来てしまうといろいろまずいような。
直接DelegateをPublicでさらすなら可能だがそれならVBでも出来る。
990デフォルトの名無しさん:2008/02/22(金) 06:59:20
具体的に書かないと理解できないだろうからコードを示しておく
Delegate Sub TestCallback(A As Integer, B As Integer)
Class Test
 Public TestChanged As TestCallBack
 Public Sub DoTest
  If TestChanged <> Nothing Then
    TestChanged.Invoke(1, 2)
  End If
 End Sub
End Class
Module Startup
 Sub Main
   Dim Test1 As New Test
   Test1.TestChanged = AddressOf MyCallback
   Test1.DoTest()
   Test1.TestChanged.Invoke(10,20)
 End Sub
 Sub MyCallback(A As Integer, B As Integer)
  Console.WriteLine("{0} {1}", A, B)
 End Sub
End Module
991デフォルトの名無しさん:2008/02/22(金) 08:29:09
別にそんな面倒なことしなくてもUI部品のPerformClickみたいに「イベントを生成するメソッド」
を公開するだけのことでしょ。
992デフォルトの名無しさん:2008/02/22(金) 09:08:57
>>991
それなんてトートロジー?
993デフォルトの名無しさん:2008/02/22(金) 09:43:50
>>959に誰もレスしてないのワラタwww
ここの住人もたいしたことね〜なwwwww
994デフォルトの名無しさん:2008/02/22(金) 10:07:05
ここの住民と言うより、VBプログラマがたいした事ないんだろう
995デフォルトの名無しさん:2008/02/22(金) 10:12:51
まあそうカリカリすんなって
今誰かがかいてるから
996デフォルトの名無しさん:2008/02/22(金) 11:07:24
で、次スレまだ?w
997デフォルトの名無しさん:2008/02/22(金) 11:08:16
997
998デフォルトの名無しさん:2008/02/22(金) 11:10:53
10000000げっとぉ
999デフォルトの名無しさん:2008/02/22(金) 11:11:33
>>992
トートロジーって言葉、遣ってみたかったの?
1000デフォルトの名無しさん:2008/02/22(金) 11:11:39
1000は、こいつです。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。