VB.NET質問スレ (Part8) at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
04/12/08 22:34:28
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part7)
スレリンク(tech板)
VB.NET質問スレ (Part6)
スレリンク(tech板)
VB.NET質問スレ (Part5)
スレリンク(tech板)
VB.NET質問スレ (Part4)
スレリンク(tech板)
【老若】VB.net質問スレ【男女】 (Part3)
スレリンク(tech板)
【老若】VB.net質問スレ【男女】 (Part2)
URLリンク(pc2.2ch.net)
【老若】VB.net質問スレ【男女】
URLリンク(pc2.2ch.net)


2:デフォルトの名無しさん
04/12/08 22:35:10
どぼん!のVB道のトップページとTipsページ
URLリンク(dobon.net)
URLリンク(dobon.net)
Microsoftクイック スタート チュートリアル
URLリンク(ja.gotdotnet.com)
リソースセンター> .NET関連リンク
URLリンク(www.atmarkit.co.jp)
Insider.NET
URLリンク(www.atmarkit.co.jp)
@IT: 連載 VB.NETプログラミング
URLリンク(www.atmarkit.co.jp)
@IT:連載 改訂版 C#入門
URLリンク(www.atmarkit.co.jp)
C#プログラミングTips
URLリンク(www.atmarkit.co.jp)

3:デフォルトの名無しさん
04/12/08 22:35:36
宇宙仮面の C# プログラミング / C# Programming
URLリンク(ukamen.hp.infoseek.co.jp)
VB.NETとC#でデザインパターン
URLリンク(hccweb1.bai.ne.jp)
ConvertCSharp2VB
URLリンク(www.kamalpatel.net)
WisdomSoft 〜Developers Network〜
URLリンク(black.sakura.ne.jp)
CodeProject
URLリンク(www.codeproject.com)
the GotDotNet Home Page
URLリンク(www.gotdotnet.com)
KEN's .NET
URLリンク(www5b.biglobe.ne.jp)
ソース置き場.NET
URLリンク(do.sakura.ne.jp)
Cetus Links: 19,498 Links on Objects and Components / .NET
URLリンク(www.cetus-links.org)

4:デフォルトの名無しさん
04/12/08 22:36:23
関連スレ
VisualStudio.NET(MSDN Deluxe) Part13
スレリンク(tech板)
ふらっとC♯(Part5)
スレリンク(tech板)
C♯相談室 Part18
スレリンク(tech板)
managed C++ やろうぜ!!
スレリンク(tech板)
フリーの.NET統合開発環境「SharpDevelop」
スレリンク(tech板)
消しゴムじゃない方のMONOを使ってみるスレ
スレリンク(tech板)
♯♯♯Shared Source CLI ♯♯♯
スレリンク(tech板)
VBプログラマ質問スレ(6.0以前) Part38
スレリンク(tech板)

5:デフォルトの名無しさん
04/12/08 22:38:14
.NET TIPS
URLリンク(www.atmarkit.co.jp)
緑のバイク ★ 初めてのC# プログラム全般
URLリンク(homepage3.nifty.com)


MSDN
言語仕様などのリファレンス
URLリンク(www.microsoft.com)
サンプルコード
URLリンク(www.microsoft.com)
.NET Framework を使用したプログラミング
URLリンク(www.microsoft.com)
.NET Framework リファレンス
URLリンク(www.microsoft.com)

6:デフォルトの名無しさん
04/12/08 22:39:44
.NET Framework のランタイム テクノロジに関するパフォーマンス上の注意事項
URLリンク(www.microsoft.com)

Microsoft .NET Framework の Windows フォームを使用したペインティング テクニック
URLリンク(www.gotdotnet.com)

ガベージコレクション入門: Microsoft .NET Framework の自動メモリ管理 Part I
URLリンク(www.microsoft.com)

C# プログラミング言語の将来の機能
URLリンク(www.microsoft.com)

適当に選んだ資料。


URLリンク(www.ne.jp)
URLリンク(www.atmarkit.co.jp)

JScript .NETはこちらで:
ECMAScript デス 2
スレリンク(tech板)l50


7:デフォルトの名無しさん
04/12/08 22:43:45
テンプレ以上

8:デフォルトの名無しさん
04/12/08 22:46:58


9:デフォルトの名無しさん
04/12/08 23:08:52
乙鰈

10:デフォルトの名無しさん
04/12/09 03:23:42
教えてください
SHELLで起動されたプログラム(.EXE)が起動元のプログラム名を判定するには
どうしたら良いのでしょうか?

例 A→B で Bが自分を起動したプログラムがAなら正常、
  A以外なら異常を判定したい
  (Aはログイン&実行権限チェックプログラムという設定で、
   認証にかかわる処理を一手に引き受けている。
   Bはファイル名を指定して実行等、チェックプログラムを経由せずに
   起動される不正を防ぎたい)  

11:デフォルトの名無しさん
04/12/09 04:12:25
Microsoft Visual C++ .NET2003でCのコンソールアプリつくっているのですが、
gprofのような解析ありますか?

12:11
04/12/09 04:13:07
誤爆・・・。ここはVBです。

13:デフォルトの名無しさん
04/12/09 05:56:53
>10
プログラム名とは?
プログラム名がないと起動できないと思ってる?

14:デフォルトの名無しさん
04/12/09 07:27:28
>13
当然です。

15:デフォルトの名無しさん
04/12/09 08:09:45
VBで質問なんですが、
開始押したら、いきなりフリーズする原因不明におちいりました。
やっぱ最初からやり直し?

16:デフォルトの名無しさん
04/12/09 10:25:49
VB.NETで同じLAN内でファイル転送について色々調べましたがやっぱりわかりません。良いサンプルコードないでしょうか?

17:デフォルトの名無しさん
04/12/09 11:36:41
Imports System.IO    'コード先頭

File.Copy("hoge.txt", "\\MachineName\FolderName\hoge.txt")

18:デフォルトの名無しさん
04/12/09 11:44:24
ありがとyございます。 やってみます

19:デフォルトの名無しさん
04/12/09 14:02:49
クリレポでリストに縦の罫線を書いてるんだが
ページの終わりを



└──────────────
のようにしたいんだけど




──────────────
のように空白が出来てしまう
グルーピングは同じ地域(郵便番号)で1種類のみ
レポートフッターとグループフッターには集計はないので高さはゼロ
最下部の罫線の横棒はページフッターに設定してある

良い知恵キボンヌ

20:デフォルトの名無しさん
04/12/09 14:03:22
画面の項目を、日本語と英語で切り替えるために、
外部にxmlで設定できたと思うんですが具体的にはどうやるんでしょうか?

21:デフォルトの名無しさん
04/12/09 15:46:11
>19
クリレポってなーに?

22:フナ太郎
04/12/09 15:57:43
>>10
方法はないと思うよ。ダサダサなやりかたなら、以下のような
のが考えられるけど。

  ・Aからコマンドライン付きで呼び出し、Bはそのコマンドラインから判断する。

  ・外部ファイルを作ってチェックする。

  ・レジストリのスイッチを設ける。

など。

23:デフォルトの名無しさん
04/12/09 16:32:42
うちも>>15と同じ現象が。実行→フリーズする

24:デフォルトの名無しさん
04/12/09 16:47:20
>10
B単独で起動できないようにすればいいだけだよな。何でShellでやるの?
意味分からん。

25:デフォルトの名無しさん
04/12/09 21:55:00
VB6から.NETへの移行を考え、勉強中の者です。
2つ質問させていただきます。

VB6では、COM EXEを使ってアウトプロセスのサーバを作成できました。
.NETでは、このようなものは作れないのでしょうか。(マネージコードで)
それとも、従来の COM を使う必要があるのでしょうか。
(プロセス間通信を主な目的としているので、インプロセスは除外とします)

また、.NET コンポーネントで COM の CreateObject のような、実行時バインディングは
できるのでしょうか。

以上、どうかご教授願います。

26:デフォルトの名無しさん
04/12/10 01:14:31
>>23
つか、行ごとの実行で原因を突き止めるのが定番でそ。
しょっぱなからフリーズするなら、よっぽど妙なコード書いてる
っぽいし。

27:デフォルトの名無しさん
04/12/10 10:38:21
教えてください。
フォームのウィンドウハンドルだけわかっている状態で
そのフォームに貼り付けられているテキストボックスの
ウィンドウハンドルを取得するにはどのようにすればよいでしょうか?
よろしくお願いします。

28:デフォルトの名無しさん
04/12/10 10:44:59
>>27
EnumChildWindows()

29:デフォルトの名無しさん
04/12/10 11:04:45
>>28
さんくすくす。

30:デフォルトの名無しさん
04/12/10 13:52:06
VB6から.NETへの移行したばかりの初心者です。

移行後、いきなり壁にぶち当たってしまったのでお知恵を貸してください。

フォームの上に配置した二つのPictureBoxに、透過情報をもった画像をセットします。
背景色をTransparentで透過指定します。
PictureBoxを重ねると、背面の画像が、透過されている所も含めて隠れてしまいます。

調べたところ、親コントロールの情報を描画しているので、
前面にあるPictureBoxをControls.Addを使い、
背面にあるPictureBoxの子ににしてしまえば良い所までわかりました。

しかしコントロールは常に重なっているわけではないので、この方法だと使えません。
Regionを使ったやり方だと、単純な図形や文字は何とかできても、画像となるとあまり現実的とは思えません。

VB6のimageコントロールのように、背面にある画像を表示させる方法はないものでしょうか?

31:デフォルトの名無しさん
04/12/10 15:27:07
単純なタイピングゲームを作っています。
テキストに文字列(ローマ字)を表示させる。
フォームがアクティブな時に入力すると、ラベルがOKとNGを表示する。

ここまではできました。
後は、文字列のどこまで入力したかをわかりやすくしたいのですが、
何かいい方法はありませんか?
次に打つ文字を、選択した状態にしようとしてselectstartとlengthを使おうとしたのですが、
なぜか選択されませんでした。

できれば打った文字までのところの色を変えたいのですが、何かいい手はありまんか?

32:デフォルトの名無しさん
04/12/10 15:50:15
>>31
コントロールを二つ用意して、mid使ってやる方法はダメなん?

33:デフォルトの名無しさん
04/12/10 15:52:55
RichTextBoxを使ってよりグラフィカルなのにするのも一興。

34:31
04/12/10 15:54:26
すいません。選択することはできました。
enabledをtrueと、tabstopをtrueにすると選択することはできました。

しかし、これだとテキストボックスが選択された状態になり、
フォームのkeypressが反応しません。

打った文字までの色を変える方法があれば教えてください。

何かと説明不足でわかりづらいかも・・・

35:デフォルトの名無しさん
04/12/10 16:02:36
なんでkeypreviewを使わんの?

36:10
04/12/10 16:14:27
>24
10です
shell起動は客先の要望です(正確に言うとファーストベンダ要求)
なので、この部分は変えられません。
起動元のAと起動先のBが会話できれば多分解決できると思いますが
(Aのインスタンス情報をBが参照できれば。。。)
どのようにすればいいのか分からないでいます。
VB.Netではプロセス間通信のコーディングはどのようにすれば
よいのでしょうか?(VB6.0だとDDEが使えたという話も。。。)
ご存知の方、教えてプリーズ!!!

37:31
04/12/10 16:23:20
回答ありがとうございますm(_ _)m
>>32さん
すいません。midの使い方わかりません。
検索してもさっぱりでした。詳しくは調べてないけど。。。すいません。
>>33さん
さらにわかりません。textでいっぱいいっぱいです。

>>35
ありがとうございます。何とかできました。フォームに渡せるようになってるのですね。
ちょっと怪しい動きをしましたが、何とか改良はできそうです。

すぃかすぃ、できれば色を変える方法を・・・

38:デフォルトの名無しさん
04/12/10 16:47:16
>>37
Dim temp As String = "abcdefghijklmn"
Dim j As Long = Len(temp)
Dim a, b, c As String
a = Mid(temp, 1, 1) 'return a
b = Mid(temp, 1, j) 'retun abcdefghijklmn
c = Mid(temp, 3, 1)'return c


色はデザイン上から変更していいんじゃね?

label1.ForeColor = Color.Red

リッチテキストボックスならSelectionColor

39:デフォルトの名無しさん
04/12/10 16:59:26
>>36
URLリンク(d.hatena.ne.jp)
.NET標準のリモート処理ではTCPのポートを使用するのでアンチウィルスソフトとかに引っかかるかも。PC内でポートを使う分には問題ないはずだけど。
WellKnownObjectModeはSingletonの方が良いのか。
AがBを起動時にカウンタを一つインクリメント>Bが起動した時にデクリメントしてマイナスでなかったらOK、とか。
マルチスレッドに耐えられるようにInterlocked使って(イン|デ)クリメントするとか。

まあ内部で秘密の引数をつけて起動、それをチェックすればいいだけの話だけれど。

Bが一方的にAを知る手段はないだろう。

40:デフォルトの名無しさん
04/12/10 17:05:59
 VBで、起動時の引数ってとれるの?


41:デフォルトの名無しさん
04/12/10 17:12:23
とれなかったらびっくりだ。
Mainメソッドの引数としてでもSystem.Environment.GetCommandLineArgsメソッドでも楽勝でとれる。

42:デフォルトの名無しさん
04/12/10 18:08:38
10はアホ。頭固すぎ。ソフトウェア技術者の資格なし。

43:デフォルトの名無しさん
04/12/10 18:33:02
>>42
アンカーつけろアホ

44:27
04/12/10 18:39:16
.netらしく
System.Windows.Forms.Control.FromChildHandle
を使ってみたのですが他のプロセスのウィンドウだと
取得できません。
権限とかあるのでしょうか?


45:デフォルトの名無しさん
04/12/10 18:48:25
普通にEnumWindowとかGetWindowとかSendMessageTimeoutとか使った方がいいんじゃない?

他スレッドのコントロールへのアクセスでさえ Invoke が要求される .Net の Control では、
なんとかしてControl が取得できたところで何も出来ないと思うし。

46:27
04/12/10 18:49:49
>>45
そうですか。助かりました。さんくすくす。

47:デフォルトの名無しさん
04/12/10 19:47:07
>41
初めて知った。ダイレクトにコマンドラインからプログラム名を
入れたりすることあまりないでしょ。引数って必要なことある?



48:デフォルトの名無しさん
04/12/10 20:06:51
大抵のアプリケーションは起動時の引数で挙動が変わったりするもんだが。
IEだってurlを引数にすれば自動的にそのページを開けてくれる。

49:デフォルトの名無しさん
04/12/10 23:03:28
ping >>47

50:デフォルトの名無しさん
04/12/10 23:28:53
>48
挙動は立ち上げてから変えたら? わざわざDOSなんか使うことないでしょ。



51:デフォルトの名無しさん
04/12/10 23:49:33
>50
どこにDOSなんて書いてある?

52:デフォルトの名無しさん
04/12/10 23:54:16
コマンドラインで
iexplore.exe -k

53:デフォルトの名無しさん
04/12/10 23:56:45
>52
どれへのレスだ?

54:31
04/12/11 04:24:01
>>38さん
レスありがとうございます。
学校でしか出来ないので、月曜までできませぬ。

midの使い方は何とかなりそうですが、後ろのreturnってなんだろう??
えっと、デザイン上ってのはどういうものなんでしょうか?
タイピングソフトのような感じなので、テキストボックスの文字色を
正確に打てた分だけ色をかえたいのです。
テキストボックスには打つ例文をいれています。
途中までの文字を取り出してそこまでの色を変えることは可能でしょうか?

月曜まで時間があるので自分でもしらべてみます。


55:デフォルトの名無しさん
04/12/11 16:56:30
returnは戻り値。
そーいうレスが返ってくるって事は、ヘルプとか見てないだろ。

なにがしたいかわからんし。
一つのコントロール内で文字色を複数使いたいなら、リッチテキストかPictureBoxを使いな。


56:デフォルトの名無しさん
04/12/12 06:50:32
基本的な質問を2つもすいません
formを2つ作って、片方をhideで隠してる時にもう片方を×で閉じると、
隠してる方のが閉じられてるみたいでプロレスに残るんですが、どうすれば消せるようになるんでしょうか?
もう1つはformの初期位置?の設定のやり方・・・
2つform表示させると片方が隠れて、少しずらしたいんです
ほんと初歩的なことですいませんorz

57:56
04/12/12 08:32:14
すいません自己解決
ほんと超簡単すぎてもう。。orz

58:デフォルトの名無しさん
04/12/12 09:47:43
>57
そういうこともあるさ

59:デフォルトの名無しさん
04/12/12 11:43:04
VB6からの移行、VS2003環境です

恥ずかしながらVB6の時から、拾ってきたDLLを使って楽をさせてもらっていました
VS2003の方からも同じDLLを利用したいのですが、うまく参照設定できません
もしかして.netからは既存のDLLは参照できないのでしょうか?

60:デフォルトの名無しさん
04/12/12 11:55:20
どう上手くできないのか良くワカランが
COMだったらほぼ間違いなく参照できるはずだが


61:超初心者でスマソです
04/12/12 12:08:15
VB.NETという言葉は聞いた事あるんですが
「VBが進化したもの」と考えていいんでしょうか?
あと、VB言語でプログラムを組む場合
なにか市販のソフトが必要なのでしょうか?
トンチンカンな質問かもしれませんがお願いしますm(__)m


62:デフォルトの名無しさん
04/12/12 12:17:58
>>61
マジレスしてみようか。

>  VB.NETという言葉は聞いた事あるんですが
>  「VBが進化したもの」と考えていいんでしょうか?

VBを.NET Frameworkという環境に適応させたもの。
.NETがオブジェクト指向を要求するので、それに併せてVBを本格的っぽいオブジェクト指向言語にしてみた。

>  あと、VB言語でプログラムを組む場合
>  なにか市販のソフトが必要なのでしょうか?

少なくともVB.NETに関しては、実行環境にコンパイラとライブラリが含まれるので、一通りは無料で可能。
ただしビジュアライズされた統合開発環境(VisualBasic.NET2003)は当然有料。学生なら随分安く買えるが。
今なら次期.NETの統合開発環境のベータ版がMSからフリーでダウンロードできるので、それで雰囲気を味わってみるのも良いかも知れない。

63:デフォルトの名無しさん
04/12/12 12:23:17
つまりVB.NETは何の役にも立たないってことですね

64:デフォルトの名無しさん
04/12/12 12:23:33
>>61
>>62の適切な解説で理解できないなら、不明な単語から全部ぐぐれ。
おまいさんの質問は「パソコン使いたいんだけど、マウスって何です
か? どうやって操作するんですか?」って感じだ。

65:デフォルトの名無しさん
04/12/12 12:32:20
ミエミエのネタにいちいち相手するやつもはっきり言って同罪。

別に掲示板で馴れ合って戯れること自体が悪いとは言わんが、
TPOってもんがあるだろう。
つまりそういうことしたいならもっとそれに相応しい板に行ってやってくれ。

66:デフォルトの名無しさん
04/12/12 12:37:55
まあ普通なら質問する前に過去ログ読んで、場の雰囲気を察してから
発言する罠。

67:超初心者でスマソです
04/12/12 15:06:58
>>62
どうも答えてくれてありがとうです
早速ダウンロードしてみます

68:デフォルトの名無しさん
04/12/12 17:04:01
>>19
アクティブレポートしか使って無いけど、参考になれば

ページフッターは、ページの下を基準に位置が決められる。
乱暴なやり方でいいなら、ページフッターの高さを広げて丁度いい位置にする。

別の方法だと、グループフッターを使ってページが変わったら出力するとか。
そんなプロパティがあったような気がする。無かったらゴメン。




69:デフォルトの名無しさん
04/12/12 17:50:50
Private Declare Function FindWindowA Lib "user32" (ByVal cnm As String, ByVal cap As String) As Long
Msgbox(FindWindowA(vbNullString, "とあるウィンドウのタイトル"))

これを実行してやると、同じウィンドウハンドルが取得できるはずが
VB6 246750
VB.net 68961369294375470
と、なんかもう凄く桁とか違うんです

なんで?

70:デフォルトの名無しさん
04/12/12 17:52:40
VBのLong > 32bit
VB.NETのLong = .NETのInt64 > 64bit

71:69
04/12/12 17:54:13
OK、そういうことは先に言ってくれマイクロソフト

リファレンス読まない俺が悪いのは言うまでもない

72:デフォルトの名無しさん
04/12/12 18:07:56
>>71
しかたない慣れろ

73:デフォルトの名無しさん
04/12/12 18:24:03
>>68
Thx
調べてみます

クリレポの市販の参考文献って2冊程度しか出て無くって
しかも初歩的内容しか書いてない
ちょっと込んだことやろうとするとすぐに躓いてしまいます・・・

74:デフォルトの名無しさん
04/12/12 18:28:25
>71
1つ賢くなったってことにしよう。

75:斉藤 ◆kvYxWFRquQ
04/12/13 03:52:28
質問です。


76:デフォルトの名無しさん
04/12/13 05:27:03
どうぞ

77:デフォルトの名無しさん
04/12/13 05:27:51
まーだー?

78:デフォルトの名無しさん
04/12/13 16:20:57
失問です。

79:デフォルトの名無しさん
04/12/13 19:26:39
てっきり、バカには見えない質問だと思ってたよ。
‥‥見えないのは俺だけじゃないよな? な?

80:デフォルトの名無しさん
04/12/13 20:52:43
>79
え?

81:デフォルトの名無しさん
04/12/13 22:11:42
>>79が見えない

82:デフォルトの名無しさん
04/12/13 22:22:26
>81
ユーザ登録しないと見れないよ。

83:デフォルトの名無しさん
04/12/13 23:25:35
複数のボタンを動的にコントロールしたいんだけど、6.0であった
コントロール配列は無くなったんだよね。

どのボタンを押しても「Handlesを集約したひとつのプロシージャ」
で一括処理、区別はsenderからプロパティを取得するってのは調べ
てわかったんだけど、コード側からボタンに働きかけたいんよ。

やっぱりボタンを配列に入れて、ループ処理するしかないのかな?
変数の変化にあわせて、いくつかのボタン.enabledを切り替えたい
んだけど、以前みたいに添字で直接制御できたのは楽だったよなぁ。

84:デフォルトの名無しさん
04/12/13 23:36:11
>>83
ボタンオブジェクトの配列を自前で宣言して、初期化処理でその配列
ひとつひとつにデザイン済みのボタンを代入すればOK
MyButton(3).Enabled=true
なんて記述は普通にできる。俺も以前の方がラクだとは思うけどね。

85:83
04/12/13 23:46:54
>>84
ここの2番目みたいな記述でやるってことだよね。
URLリンク(dobon.net)

やっぱそうだよなぁ‥‥この手段で詰めてみます。
さんくす。

86:デフォルトの名無しさん
04/12/14 09:02:14
1,2,3,4,5だけをランダムに出力するプログラムをRandam関数を使ってつくりたいんですけど数学的に難しいです。お願いします。

87:デフォルトの名無しさん
04/12/14 09:09:46
ランダム値生成関数を自作するんじゃなくて、既存のランダム値生成関数を使って実装するってことだよな。
折角.NETになったのだから、.NETのクラスライブラリを使えば楽勝。
RandomクラスのNextメソッドには下限と上限(ただし、この数値「以下」ではなくこの数値「より小さい」)を指定してIntegerを返すオーバーロードがある。

88:デフォルトの名無しさん
04/12/14 10:27:22
C++ でいうところの dynamic_cast <*class> に相当するものってVB.NETにはありますか?

プロシージャ内で sender を Button だとか、Labelだとかに明示的に型変換したいのですが。

89:88
04/12/14 10:31:59
あ、VB.NET のヘルプを「型変換」で検索して自己解決しますた。

CType(変数,クラス)

ですね。よく調べもせずに、クソくだらない質問すみませんでした。

90:デフォルトの名無しさん
04/12/14 10:40:47
123456という入力を12-3456と変換する処理を考えています。
数値でFormat関数で00-0000とすればなるのですが、
入力が123の場合は12-3、1だけなら1_-(アンダーバーはスペース)としたいのです。
Format関数では値が右寄せになってしまうため無理と判断して、
StringクラスのFormatで("{0,-2:G}-{1,-4:G}","12","3456")とすればいいという事まではわかったのですが・・・

これを自作のテキストボックスのプロパティとして実装するにはどうしたらよいでしょうか?
第1引き数をそのまま設定するようにしようかと思いましたが、
区切りの数が毎回違うかも知れないし、そうすると後ろの引き数の数も変わってくるし。
なにかいい方法はありませんか?

91:デフォルトの名無しさん
04/12/14 10:48:29
文字数が2より大きいかどうかで分けたら良いんじゃない?
12-3456-7890-1234なんてことも考えるならそういうわけにも行かないけど、12-345678901234なら。

92:90
04/12/14 11:12:23
>>91
レス感謝です。
今回だけというのであれば確かにその方法でもいけるのですが、
自作のコントロールにプロパティとして実装しようとしているので、
なんとか他の書式にも対応できないかと悩んでいます。

93:デフォルトの名無しさん
04/12/14 11:37:06
>>92
ボックスを数値しか入力できないようにして、Lenで調べるやり方とかは?

94:デフォルトの名無しさん
04/12/14 12:24:20
トリップを出力するプログラムはどんなカンジ?

95:デフォルトの名無しさん
04/12/14 12:31:08
>>92
こんなマニアックなのに汎用性があるとも思えないが……。
他の書式ってことは、"{0,-2:G}-{1,-4:G}" を(あるいはその一部を)プロパティにするなりして変更可能にするってこと?
どのくらいの汎化を考えてるんだろう。

96:90
04/12/14 13:25:11
>>95
そうです、その引き数ごと設定するようなプロパティを考えています。
どのくらいの汎化と言われると・・・できるだけやりたいなと。
もちろん>>91の12-3456-7890-1234とかも。ちなみに数字だけに入力を絞るってのはできてます。

12-3456と12-34-56を考えると、
第2引き数以降が違うわけで、当然渡された123456を区切る数も長さも違う事になる。
この区切る回数と長さの特定に方法が見つからんのです。

97:デフォルトの名無しさん
04/12/14 14:00:08
>96
データとしては1234567890で、表示形式をxxx-xxxやxx-xxxx-xxにするだけじゃないの?
ハイフン含めたデータで持つなら、DELキーとかの制御がすごい面倒そうだけど。

98:デフォルトの名無しさん
04/12/14 15:34:17
質問ですがVB.netでチェックボックスでドライブを選択して実行ボタンを押したら、
自動に再起動しチェックディスクを実行する機能を作りたいんですが教えてください。

99:90
04/12/14 16:25:20
>>97
現在内部ではそのようにしてますが、xxx-xxxやxx-xxxx-xxにする方法がわからんのです。

100:デフォルトの名無しさん
04/12/14 16:50:07
VB.NETってOpenFileDialogを使ってファイルを開くとき、文字コード指定ってできないんだっけ?


101:100
04/12/14 16:51:55
ミス・・・

文字コード指定を自分で選択できる?メモ帳みたいに

102:デフォルトの名無しさん
04/12/14 17:00:34
>99
num.ToString("##-###-##")
こんなのは?

103:90
04/12/14 18:13:31
>>102
フル桁入力されれば大丈夫なのですが、1234だけの入力だと-12-34と右詰になってしまいます。
これを12-34-と左詰で返すような書式の設定の仕方を探しています。

104:デフォルトの名無しさん
04/12/14 18:18:26
正規表現で|あたりを使ってやったら?

105:デフォルトの名無しさん
04/12/14 18:23:20
整形済み文字列をTextBox自身が扱わないなら、整形は呼出側が処理すべきだよ。


書式指定文字列からstring.Formatの引数の配列を無理矢理作ってしまって整形させるコード。

Imports System.Text.RegularExpressions 'コードの先頭で宣言

Private Function DoFormat(ByVal txt As string, ByVal fmt As string) As String
  Dim i As Integer, match As Match, txts As New ArrayList(), digit As Integer = 0
  Dim matches As MatchCollection = Regex.Matches(fmt, "{\d+,-?(?<len>\d+)(:.|)}")
  For i = 0 To matches.Count - 1
    If txt.Length < digit Then
      txts.Add("")
    Else
      Dim length As Integer = Integer.Parse(matches(i).Groups("len").Value)
      If txt.length < (digit + length) Or i = matches.Count - 1 Then
        txts.Add(txt.Substring(digit))
      Else
        txts.Add(txt.Substring(digit, length))
      End If
      digit += length
    End If
  Next
  Return string.Format(fmt, txts.ToArray())
End Function

106:90
04/12/14 18:43:58
>>105
俺が実現したい事をあっさりと・・・orz
本当にありがとうございます。正規表現に行き着き勉強を始めたところでした。
ソース解析させていただきます。

107:84
04/12/14 23:02:54
>>83=>>85
ちゃうちゃう。そのページに書いてる例では自分でボタンの
インスタンス化やらプロパティの設定やらやっててメンド臭いでしょ。
デザイナでフツーにボタン(仮にButton1)を作っておいて、
フォームの初期化時に
  testButtons(1) = Button1
って風に代入しちゃうの。この方が作るのはラク。

108:デフォルトの名無しさん
04/12/14 23:31:21
>>107
デザイナで作って出来たソースをコピペしたほうが。。。。

109:83
04/12/14 23:41:35
>>107
ああ、そのページはサンプルが3種類あるんで、その2番目って
意味で書いてたんですよ。事前に作ったボタンをForm1_Loadで
配列にひとつずつ読み込んでるやつ。

いまのところ問題なく動いているようなんで、この方法で続けて
みます。

もうひとつ難点がでたんですが、.NETではForm1_Loadは使わず
にコンストラクタでやりなさいって言われたんだけど、用意して
ある初期化ボタンを押すために、Buttonの名前_PerformeClickっ
て記述しても動作してないっぽいんですよ。変数クリアしかやっ
てないんで、宣言時に規定値を明示してお茶を濁してますけど。

110:107
04/12/14 23:47:59
>>109
すまん、よく見てなかった。。。ま、いっかw
おいらは客先指定で VB.net をにわかに使ってるだけなんで専門で
やってるヒトに見せれば >>108 さんみたくご指摘の点は多いかも。
どーもMSの開発環境って、デザイナが吐いたコードをいじると
壊れるイメージがあるもんで。。。動いてるものはいじりたくないんで。。。

もうひとつのモンダイについてだけれど、とりあえず動いてれば
おっけーな考えなんで、なにも答えられないっす。。。

111:デフォルトの名無しさん
04/12/14 23:59:13
>109
 Handlesを調べてみよ。
 このプロシージャは、「どのオブジェクトのどのイベントで呼び出すのだ」と
言う宣言(関連付け)をしないとイベントプロシージャにならないからね。

 VB6.0以前やAccess VBAに慣れていると踏む地雷の典型だが。

112:デフォルトの名無しさん
04/12/15 00:03:42
 いや、意味が違ったのねスマン。(111はNG)

 コンストラクタでやるべき事と、Form_Loadでやるべき事は
異なりますね。
 変数の初期化は通常コンストラクタですが。

>110
 デザイナが書いたコードを弄ると壊れるのは意味を理解しないで
弄るから。(他人が書いたコードでも同じことが言えるでしょう?)

113:デフォルトの名無しさん
04/12/15 00:23:19
VB.NETで印刷時にプリンタの用紙サイズをソフト開発者側から
はがきサイズに設定しておくにはどうすればいいんでしょうか?
どなたか教えていただけないでしょうか?よろしくお願いします。

114:デフォルトの名無しさん
04/12/15 11:02:39
メインフォームをメニュー画面にして、選択するとメニューは最小化し、
新たにフォームを表示することは出来るのですが、そのフォームを閉じる際に
メニューのフォームを最大化するための記述がわかりません。

Dim f As New Menu
f.WindowState = FormWindowState.Maximized

Me.Close()
では駄目でした。初心者な質問ですいません(;_;)

115:デフォルトの名無しさん
04/12/15 11:12:25
System.Web.Mail.SmtpMailクラスを使わずに
ソケットでメール送信したい。
どこかサンプルとか参考になるサイトがあったら
教えてください。

116:デフォルトの名無しさん
04/12/15 14:15:16
>>113
やったこと無いから勘で答えてみる。
『System.Drawing.Printing.PaperSize』

>>114
よくわかりません。
なにがしたいのか、なにがやりたいのか・・・・

DoEventsあたりを使えば出来そうな気もしますが。

>>115
『BATファイル』『SHELL』『DOSコマンド』
がんばれ。

117:デフォルトの名無しさん
04/12/15 14:55:11
114の問題は、既にあるメインフォームではなく、もう一つ新しいメインフォームを作ってしまってる事だと思われる。
//しかしMenuってクラス名はわかりにくいな。

118:114
04/12/15 15:04:02
すいません。書き方がおかしいですね;w;

メニューのフォームと給料というフォームがあって、実行すると
最初にメニューのフォームが表れそのメニューのフォームから給料というボタンを押すと
給料フォームが開くようにするイベントなのですが、

その際、メニューのフォームは最小化し、EnabledにはFalseに設定して選択できないようにしたいのです。
そして、給料のフォームを閉じる際には最初のメニューのフォームのEnabledにTrueを設定し、下のように表示したいのです。

モーダルフォームにすれば似たようなことができるのですが、できればメニューは表示させずにタクスバーに格納したいのです。
よろしくお願いします;w;

119:デフォルトの名無しさん
04/12/15 15:38:36
メニュー画面
ボタンクリックイベント内

  frm給与.Owner = Me '(親フォームをメニューフォームにする)
  frm給与.Show '(給与フォーム表示)
  Me.WindowState = FormWindowState.Minimized '(メニューを最小化にする)


一方、給与画面

フォームのClosedイベント内で
Private Sub frm給与_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
  Me.Owner.WindowState = FormWindowState.Normal() '(メニューフォーム表示)
End Sub

簡単に言うと開く先のフォームで親フォームを表示させてるだけ


120:デフォルトの名無しさん
04/12/15 15:39:35
>>118
俺にはその説明でもわからんのだが?

AとBという二つのフォームがあって
AからBというフォームを起動させた時、Aのフォームを最小化してイベントを受け付けなくさせ
Bというフォームを閉じた時、Aというフォームを最大化してイベントを受け付けるようにするってだけか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim B As New B_Form
Me.WindowState = FormWindowState.Minimized
B.WindowState = FormWindowState.Maximized
B.TopMost = True
B.ShowDialog()
Me.WindowState = FormWindowState.Maximized
Me.Activate()
End Sub

つまり、これじゃダメだってことだよな?

121:120
04/12/15 15:47:08
俺って頭悪いな。
「TopMost = True」より、BringToFront()の方がマシじゃん・・・_| ̄|○

122:114
04/12/15 16:08:49
>>199さん200さんありがとうございます♪
200さんのように説明すればよかったですね(*д*)

199さんのようにA(メニュー)のフォームをB(給料)の親フォームとしてするのはナイスですね♪
自分はプログラム初心者なので200さんの記述の分でできるかどうか分からないのですけど、
Bというフォームを閉じたときにAのフォームのWindowStateにMaximizedを設定できるのでしょうか?

自分が試したときは(200さんのような記述ではないのですけど)できなかったもので・・・
今職場で空いた時間に掲示板見ているので帰って試してみますね♪

123:114
04/12/15 16:09:45
200さんじゃなくて120さんですね;w;
すいませんm(_ _)m

124:114
04/12/15 16:44:34
またまたすいません;w;
実際に試せたので199さんを参考に試しで作ってみました。

Aのフォーム
Private Sub btn1_Click(略)
Dim f As New A '宣言
f.Owner = Me   '親フォーム宣言
Me.WindowState = FormWindowState.Minimized  'アクティブなフォームのサイズを最小にする
Me.Enabled = False              'ユーザーの受付を不可にする
f.Show()                   'フォームBを表示する
End Sub

Bのフォーム
Private Sub btn2_Click(略)

Me.Owner.WindowState = FormWindowState.Normal  '親フォームのサイズを通常に戻す
Me.Owner.Enabled = True             'ユーザーの受付を可能にする
Me.Close()                    'フォームを閉じる
End Sub

のように記述したのですけれど、子フォームから親フォームに移るとき(Bを閉じてAを通常サイズに戻す)は
成功したのですが、Aのフォームを最小化してBのフォームを表示させるときに
Bのフォームは表示できるのですが、最小化された状態で出てきます。

Bのフォームロードイベントに通常サイズに戻すように記述してもうまくいきませんでした。
よい方法ないでしょうか?聞いてばかりですいません;w;

125:デフォルトの名無しさん
04/12/15 18:17:22
>>114
落ち着け。

126:100
04/12/15 18:58:13
リッチテキストのテキスト開始点の座標って取得できますか?
| ←これの座標です

もしくは開始点の隣の文字座標でもいいんですが・・・


127:デフォルトの名無しさん
04/12/15 19:23:53
>>126
SelStartってリッチテキストでも使えたような。

128:100
04/12/15 19:43:52
>>127
それでできました。
ありがとうございます

129:デフォルトの名無しさん
04/12/16 09:05:38
>>124
その問いかけに対する答えはすでに出ている。

130:114
04/12/16 09:46:01
色々試してみてBのフォームを開けるときにAのフォームで処理せずに、
BのB_Loadプロシージャ内でAのフォームのサイズをNomalにするとうまくいきました^^

みなさんありがとうございました♪

131:デフォルトの名無しさん
04/12/16 23:18:40
入力支援のようなものを作っているんですが、、

フォーム上にリッチテキストを配置して下部にDock
リッチテキストを親としたリストボックスを配置
「<」が入力された時にリストをその行の1つ下の行に表示

上記の場合、下部の行にきたときリストが見づらいので、その場合は上に表示
したいと思っているですが、なかなかうまくいきません。

つまりフォーム内にリストが必ず見える状態にしたいんですが、何かいい方法はありませんか?



132:デフォルトの名無しさん
04/12/16 23:31:11
>>131
質問の仕方に問題ないか?何を聞きたいのかサッパリ理解できない。
何をやりたいかよりも何を聞きたいかを書こう。
読み手の立場に立って、読み手に理解されるかどうかを意識しながら
文書を推敲しよう。

って、こういうことは中学卒業までにマスターしておくべきだろう。。

133:デフォルトの名無しさん
04/12/16 23:35:20
>>131
DesktopBounds とかで位置関係を判定しつつリストボックスの位置を変えればいいんじゃない?

134:デフォルトの名無しさん
04/12/16 23:47:51
>>130
アクティブの時にBringToFrontで前面に出した方が、、、と思わなくもない。

>>131
「<」はキーが押された時にってなら、KeyPressあたりだろうなー。

135:デフォルトの名無しさん
04/12/17 17:03:06
REALBasicってどうなのよ?
キャンペーンで半額らしいので良けりゃ買ってみようかと思うんだが



・REALbasic 5.5 Standard for Windows 日本語版ライセンス
URLリンク(secure.domain.ne.jp)

・REALbasic 5.5 Professional for Windows 日本語版ライセンス
URLリンク(secure.domain.ne.jp)



136:デフォルトの名無しさん
04/12/17 18:04:47
なぜ此処で聞く

137:デフォルトの名無しさん
04/12/18 12:44:34
>って、こういうことは中学卒業までにマスターしておくべきだろう。

読解力の方もね。

138:デフォルトの名無しさん
04/12/18 14:13:08
>>137
そんな逃げ道残したようなすかしっ屁みたいな言い方しか出来ないのか。
チキンなお方。いやチキンというより頭悪いのな。

間違ってると思うなら堂々と反論したら?
ま、君の知能じゃ無理だよねえ。

139:デフォルトの名無しさん
04/12/18 14:13:57
インターネット上の情報を取り込んで、
それをACCESSに登録する、というものを作りたいのですが、
「インターネット上の情報を取り込む」やり方がわかりません。
調べる上でのとっかかりになるキーワードでもいいので教えてください。

140:デフォルトの名無しさん
04/12/18 14:28:16
System.Net名前空間

141:デフォルトの名無しさん
04/12/18 14:36:25
>>140
ありがとうございます。調べてみます。

142:139
04/12/18 17:33:06
もしかしてWindows XP Home Editionではできないですか?


143:デフォルトの名無しさん
04/12/18 17:37:14
それはSystem.Web名前空間の一部(ASP.NETに関わる部分)。

144:デフォルトの名無しさん
04/12/18 17:40:42
>>142
インターネットのどの系統の情報かさっぱり。

URLリンク(dobon.net)
この辺で、自分で調べて勉強しなおして来い。

145:デフォルトの名無しさん
04/12/18 17:56:03
>>142
HomeじゃIISうごかんのじゃないかね?

146:139
04/12/18 18:25:42
取得したいのは、ホームページに記載されている情報です。

勉強して出直してきます。
ありがとうございました。

147:noname
04/12/18 19:08:09
VB.NETのADO.NETでmdbとかに複数ユーザがアクセスする際、
エラーが出ないようにする方法を知りたいのですが、
質問はここでよろしいのでしょうか。データベース板には
ADO.NETスレがなかったので。。。汗

以下の手順を踏んでもエラーがでないようにしたいです。
1.ユーザAがプログラムを起動し、サーバのデータを参照する。
2.ユーザBがプログラムを起動し、サーバのデータを参照する。
3.ユーザBがデータを書き換え、更新する。
4.ユーザAがデータを書き換え、更新する。

4の時、Aが更新を行おうとする際、サーバのデータが
1で読み込んだのと異なっているのが原因でエラーが起きて
しまいます。。
後で更新処理を行ったデータが最新のものになるように
したい(ユーザAのデータ更新)のですが、どうしたら
よろしいでしょうか。よろしくお願いいたします。

148:デフォルトの名無しさん
04/12/18 19:14:27
BeginTransaction

149:100
04/12/18 19:22:51
リッチテキストで指定行の先頭文字ってどーやったら取得できますか?

150:デフォルトの名無しさん
04/12/18 19:28:10
RichTextBox1.Lines(index).Chars(0)

151:デフォルトの名無しさん
04/12/18 22:06:28
すべてのユーザー名を取得したくて
Public Const FILTER_NORMAL_ACCOUNT = &H2&
Public Structure USER_INFO_0
Dim usri0_name As Integer
End Structure
Public Declare Function NetUserEnum Lib "Netapi32.dll" (ByVal servername As String, ByVal level As Integer, _
ByVal filter As Integer, ByVal bufptr As Object, ByVal prefmaxlen As Integer, ByVal entriesread As Integer, ByVal totalentries As Integer, ByVal resume_handle As Integer) As Integer

とModuleで宣言して

Dim lngEntriesRead As Integer
Dim lngTotalEntries As Integer
Dim pUserInfo As Integer
Dim typUserInfo() As USER_INFO_0
Dim bytBuf() As Byte
Dim strUser As String

lngRet = NetUserEnum(vbNullString, 0, FILTER_NORMAL_ACCOUNT, _
pUserInfo, 10240, lngEntriesRead, lngTotalEntries, 0)

としてみたところ'System.NullReferenceException' のハンドルされていない例外が発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。

というエラーがでました。誰かどうすればいいか分かる方教えてください

152:デフォルトの名無しさん
04/12/18 22:15:46
PictureBox1.imageを何も表示しない(PB1の背景色だけが見える)ように設定するにはどうすればいいのでしょうか。

153:デフォルトの名無しさん
04/12/18 22:16:57
>>152
PictureBox1.image = nothing

154:152
04/12/18 22:19:56
>>153
即答ありがとうございます!

155:デフォルトの名無しさん
04/12/18 22:59:09
>>151
WMIで取得するというのはどうか。

'参照の追加でSystem.Management.dllを追加
Imports System.Management

Dim mc As New ManagementClass("Win32_UserAccount")
Dim mo As ManagementObject, prop As PropertyData
For Each mo In mc.GetInstances()
    Console.WriteLine(mo.Item("Name"))
Next

156:デフォルトの名無しさん
04/12/19 12:37:18
>>155
できた!できました。
本当にありがとうございます

157:デフォルトの名無しさん
04/12/19 18:58:24
リストビューのサブアイテムに文字入れてやりたいのですがどうすればいいのでしょうか。

158:デフォルトの名無しさん
04/12/19 19:24:14
ヘルプに載ってる。

159:デフォルトの名無しさん
04/12/19 20:05:05
>>158
載ってました。
すみません。

160:デフォルトの名無しさん
04/12/19 20:32:20
>159
どんまい

161:フナ太郎
04/12/19 20:52:40
.NET tipsとか行ったら、C#のtipsしかなくてムカついた、ってこと
ないですか?

162:デフォルトの名無しさん
04/12/19 21:06:17
これ使え

URLリンク(authors.aspalliance.com)

163:デフォルトの名無しさん
04/12/19 21:56:24
テキストボックスを拡張して、フォーカスが移ると境界線が変わるものを作成しています。
以下のようなイベントにすると、テキストボックス内でTabを押したときに、フォーカスが次のコントロールに移りません。
Private Sub MyTextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter
Me.BorderStyle = BorderStyle.Fixed3D
End Sub
Private Sub MyTextBox_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Leave
Me.BorderStyle = BorderStyle.FixedSingle
End Sub

ところが、境界線を変更する命令をなくすと、Tabでフォーカスが移ります。
Private Sub MyTextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter
Me.BorderStyle = BorderStyle.Fixed3D
End Sub
Private Sub MyTextBox_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Leave
' Me.BorderStyle = BorderStyle.FixedSingle
End Sub

境界線を変更しつつTabでフォーカスを移すには、どうしたらいいでしょうか。


164:ケン
04/12/19 22:37:36
directdrawのように、裏画面で背景やキャラクターを合成して、表画面に転送するといったようなことをdirectdrawを参照しないで、GDI+だけで作成することはできますか?








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

4820日前に更新/258 KB
担当:undef