VB.NET質問スレ (Part12 ..
877:デフォルトの名無しさん
05/11/03 02:51:32
起動時に解像度の変更をしたくて、
Imports Microsoft.DirectX
Imports Microsoft.DirectX.DirectDraw
Dim device As New Device
Dim Width As Integer
Dim Hight As Integer
Width = 800
Hight = 600
Me.FormBorderStyle = FormBorderStyle.None
device.SetCooperativeLevel(Me, CooperativeLevelFlags.Exclusive Or CooperativeLevelFlags.Fullscreen)
device.SetDisplayMode(Width, Hight, 16, 0, False)
フォームロードにこんなコードを書いてみたのですが、実行すると数秒で解像度等々元に戻ってしまいます。
ずっと設定の解像度を保持してるには、どうしたらよいのでしょうか?
望む動作としては、ゲームにあるような解像度を変えつつ、フルスクリーン表示という感じです
878:デフォルトの名無しさん
05/11/04 14:23:53
WB.NET+ASP.NETで開発をしております。
ボタンを押された時にメッセージボックスを出すような処理を作ったのですが
メッセージ表示時に何故か画面がリロードされてしまうのです。
ネットのサンプル等を見るとリロードせずに普通にメッセージが出ているのですが
何が原因なのかわかりません。詳しい方教えてください。
Response.Write("<script language=JavaScript>window.alert('aaa')</script>")
これだけなんですが・・・
879:デフォルトの名無しさん
05/11/04 21:15:04
>>878
runat="server"になってないか?
880:デフォルトの名無しさん
05/11/06 13:22:33
質問です。
delegateとeventは、いったい、何が違うのでしょうか?
調べれば、調べるほど、「????」と、なってしまいます・・・。
eventは、handles句で、静的に関連付けができるとかなのか・・・。
881:デフォルトの名無しさん
05/11/06 13:48:55
>>880
@ITのVB.net入門にその記述があったような無かったような。
882:デフォルトの名無しさん
05/11/06 13:50:07
delegateは型。
eventはdelegateのインスタンスに対するプロパティ的存在。
883:デフォルトの名無しさん
05/11/06 17:00:12
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Integer, ByVal hObject As Integer) As Integer
hDC = GetDC(Picture1.Handle.ToInt32)
hbmp = CreateCompatibleBitmap(hDC, ImgX, ImgY)
hSelObj = SelectObject(hDC, hbmp)
とした時にエラーコード126(モジュールが見つからない)が返るんですけど何故なんでしょう
hDCとhbmpには値が返っています(hSelObjは0)
884:デフォルトの名無しさん
05/11/06 17:40:25
再現しないな
関係ないがハンドルはIntPtr型で宣言すれ
885:デフォルトの名無しさん
05/11/06 20:14:52
エラーコード126ってそれ。。
886:デフォルトの名無しさん
05/11/07 01:20:21
すみません。
どなたか暇つぶしに教えてくださいませ<m(__)m>
1)ドイツ語単語(などの外国語単語)をテキストファイルに
1行1単語ずつバーッと書いてあるものを用意する。
2)単語ごとにURLリンク(www5.mediagalaxy.co.jp)
(←ドイツ語の場合)のような辞書サイトに検索させる。
3)1単語につき1ブラウザ開くようにする
(だから300単語とかになるとひどいことになるけど……)
3’)もしくは検索結果のみを1ファイルに書き込む。
……というようなことをVB.NETをつかってやりたいのですが
(EXCEL VBAとかでもいい)、具体的にどうすればいいのか、
いまから自分で調べたりしてると時間がないので、
お知恵をお借りしたく、投稿させていただきました。
887:デフォルトの名無しさん
05/11/07 02:45:02
URLリンク(www.ringolab.com)
をみてWebサービスで翻訳する
888:デフォルトの名無しさん
05/11/07 07:43:30
時々セーブデータで
[configre]
a1 =50
a2 =90
みたいな書式のデータ見るんだけど、あれって何使って出力すればいいの?
889:デフォルトの名無しさん
05/11/07 07:55:12
ストリームライターで、ってことじゃ無くて?
890:デフォルトの名無しさん
05/11/07 09:37:21
PanelをFixed3Dに設定した場合凹んで見えるのがデフォルトみたいですが
逆に見えるようにするにはどうすればいいですか?
891:デフォルトの名無しさん
05/11/07 10:16:53
PocketPC用のソフト作ってます。
compact framework で使えるグリッドコンポーネントってないでしょうか?
セルの色さえ指定できればいいんですが。
グレープシティのを見かけたけど、抱き合わせ販売で高すぎ。。
892:デフォルトの名無しさん
05/11/07 11:23:53
今考えているのですか、ちょっとしたポータルサイトを作ろうとした場合
.netとsql serverがあればつくれますか?
登録されたアドレス等をsqlに溜め込んでHP上でselectしてあげれば
いい気がするのですが、普通にできますかね?
893:デフォルトの名無しさん
05/11/07 15:21:54
>>888
Win32APIのGetPrivateProfileString、
WritePrivateProfileStringをMSDNなりぐぐるなりで調べてみるといい
894:デフォルトの名無しさん
05/11/07 18:41:06
>>886
"URLリンク(www5.mediagalaxy.co.jp)"
この文字列の末尾に、調べたい単語を連結したURLにアクセスすればいい。
以下のリンクをクリックすると"ich"の検索結果が出る。
URLリンク(www5.mediagalaxy.co.jp)
895:デフォルトの名無しさん
05/11/07 19:05:17
>>888
>>893の言う通りMSDNで調べて、使えそうだと思ったら以下の使ってみるといい。
ヌル文字、ヌルポインタなどのC言語の知識が少し必要になるけどね。
もし使いたければ以下のAPI宣言文を使ってくれ。
Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Public Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Integer
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
896:デフォルトの名無しさん
05/11/07 19:26:22
そんな面倒なことしてまでWin32API使うことないんでないの?
自分で書いたってたいしたことないと思うんだけど。
作るときはフツーにテキストファイルに書くだけ。
読むときは一行ごと読んで“=”ぶったぎってアイテムと値を分けるだけ。
何も難しくないじゃん。
897:デフォルトの名無しさん
05/11/07 19:31:23
XmlSerializerやらSoapFormatterやらなら考える必要もほとんど無いが。
898:デフォルトの名無しさん
05/11/07 20:09:39
>>896
コメントやらセクションやらを考えるとメンドクセ
おっと、それなりの大きさの規模のアプリケーションを作った事の無い人でしたか。
毎回ご自分でその位実装してくださいね。
899:デフォルトの名無しさん
05/11/07 21:07:21
>>898
馬鹿じゃないの。
キミ、自分でそういうコード書いたことないでしょw
Win32API使えば面倒じゃないとでも思ってるのかね。
シリアライズ/デシリアライズしてくれるわけでもなく、結局アイテムを
一つずつ書き出し/読み出ししなきゃならないわけで、そんなものの
いったいどこにメリットがあるのか。
リストみたいなものも保存できないしね。
自分でスルスクラッチすればどうってことないのに。
セクション?
そんなもの実装するのわけないだろ普通。
900:895
05/11/07 21:34:31
偉そうに書いてしまった>>895の宣言文は一部間違ってたわ。
As Anyは.NETではエラーになる。スマン。
以下を参照してくれ。
URLリンク(www5b.biglobe.ne.jp)
901:デフォルトの名無しさん
05/11/07 21:58:21
APIコールすんのが面倒臭いから同じ処理を自力で書くのか?
結果が同じなら先人の資産を活用する方が楽に決まってるだろ。
APIをコールするやり方知らないだけじゃん m9(^Д^)プギャー
セクションを実装しないiniファイル? ハァ( ゚Д゚)? それiniじゃねーだろwww
スルスクラッチってどこの世界の単語なんだよwww
902:デフォルトの名無しさん
05/11/08 01:26:31
なにこの必死な奴が多いスレ
903:デフォルトの名無しさん
05/11/08 02:25:07
>>899
設定ファイルにコメントが書けるのってのは非常に重要だし、設定ファイルの更新をしたときに元のファイルの体裁が残っている事も重要。それを真面目に実装すると結構な手間になる
904:デフォルトの名無しさん
05/11/08 09:40:18
お世話になります
VB.netでタイマーを3つ用意し、1つをプログラム起動時に停止(仮称A)、1つをAからの差を取り
カウントダウンタイマーとし(仮称B)、1つをBが0カウントになった時点で起動(仮称C)
というものを作っていますが
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Timer1.Stop()
timers1 = (Now)
Label1.Text = timers1
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
REM 時間の演算
' 時間計算の問題を解決すること
' 1 キャスト問題を解決すること
' 2 タイマー2つの時差をとること
timers2 = (Now)
Label2.Text = CDate(CDate(timers2) - CDate(timers1)) REM この演算を入れると死ぬ
' キャストが悪さしてるみたい
どうやってもうまくキャストできません
どなたか妙案があったら御教授願います
905:デフォルトの名無しさん
05/11/08 09:53:06
>>904
秒単位の精度でいいなら、DateDiff関数でいいんでは?
906:デフォルトの名無しさん
05/11/08 10:20:24
つか減算よりも比較演算の方が良くないか?
907:デフォルトの名無しさん
05/11/08 12:01:22
Panelの凹凸は逆に出来ないんでしょうか?
908:デフォルトの名無しさん
05/11/08 12:35:43
>>904
キャストが悪さしてるみたい、ってそれ確認したの?
本当にそれが原因か確認する方法を考えた?
っていうか、エラーの内容は?
んなことやってると永遠に三流PGでっせ。
MSDN見るとVBの日付型の正体はDateTime構造体だとわかる。
DateTimeに対して‘-’演算子は定義されているんだろうか。
909:904
05/11/08 12:43:28
>>905,906
ありがとうございます
とりあえずカウンタをすべて動かすところまではいけました
またお願いします
>>908
ありがとうございます
三流だなんてとんでもない 中途入社のVB暦1週間のペーペーです
またお願いします
910:デフォルトの名無しさん
05/11/08 12:51:58
>>907
自分で派生クラスを再定義すればいけるかもしれんね。
そんな手間かけるくらいなら、画像ファイルを用意してピクチャ貼り
した上にコントロール配置したほうが楽かも。
911:デフォルトの名無しさん
05/11/08 13:03:40
ここで聞くもんかわからんが
VBCommenterっていうコメント書きアドインツールがあるんだが
米サイトからDL出来なくなってる(エラーになる)
どこかミラーでおいてあるところ無い?
912:デフォルトの名無しさん
05/11/08 14:46:34
今までVB 6で開発してましたが、遅まきながら.NETに移行しようと思います。
そこでちょっと調べたのですが、.NET用の市販ライブラリがあまり見つかりません。
今まではVB 6の標準コントロールが貧弱ということもあり、ほとんどのコントロールは
購入したライブラリのものを使用していました。
皆さんは、.NET用の市販ライブラリはどのようなモノを使っていますか?
グレープシティやWindows Developerマガジンを調べてみたのですが、
他にもどこかで紹介されているサイトがありましたら、お教えいただきたく。
それとも、使う必要の無いほど.NETのライブラリは高機能なんでしょうか。
913:デフォルトの名無しさん
05/11/08 14:58:21
>>912
まず、どんなライブラリが必要か列挙したほうがいんじゃまいか?
914:デフォルトの名無しさん
05/11/08 15:20:19
親クラスが overridable されているかどうかを調べる方法は
ありますか?
例えばグレープシティの InputMan の EditMode を
overrides したかったのですが EditMode が overrides できなかった
ので、overridable されているかを調べたくなりました。
方法があれば知りたいのでよろしくお願いします。
915:デフォルトの名無しさん
05/11/08 15:21:33
普通はリファレンスに書いてるんじゃね?
916:デフォルトの名無しさん
05/11/08 15:27:16
それが書いてないんですよね。
例えば
Public Property ControlEffect As GrapeCity.Win.Input.ControlEffect
は overrides できて、
Public Property EditMode As GrapeCity.Win.Input.EditMode
はできない。
リファレンスじゃわからないんですよね。
というか、リファレンスを見るしか方法ないんですかね?
917:デフォルトの名無しさん
05/11/08 17:21:56
VB6の「debug.print」は、vb.netでは「system.Diagnostics.Debug.WriteLine」ということですが
VB6のイミディエイトウインドウのようなものは、visual studioに無いのでしょうか?
918:デフォルトの名無しさん
05/11/08 17:41:18
ある
ほとんど同じ使い方が出来る
つか、ヘルプ見(ry
919:917
05/11/08 18:08:28
Microsoft Script Debugger でしょうか?
表示メニューでは選択できませんが、どうやって表示するのでしょうか?
920:912
05/11/08 18:17:02
>>913 あ、すいません。カテゴリーを示すことにしますが、そうすると次に
「どんな仕様なら良いんだ?」とさらに質問が来そうなので、今使っている
コントロールを示すことにします。
入力系:グレープシティ InputMan
グリッド系:グレープシティ SPREAD
グリッド系:グレープシティ VS-FlexGrid
フォーム系:グレープシティ Active 3D Plus
フォーム系:グレープシティ VS-Resizer
グラフ系:グレープシティ True WinChart
ヘルプ系:グレープシティ True Help
インストール系:グレープシティ InstallStudio
帳票系:H.O.S シーオーリポーツ
グレープシティのものが多いですが、これは文化オリエント時代のVBXから
使っているというだけで、気に入ってるわけではありません。
ですから、.NET用はグレープシティのものではなく、他社のモノも
使ってみたいと思います。
921:デフォルトの名無しさん
05/11/08 18:35:05
>>919
コマンドウインドウというのがそれにあたる
> ←これが出てるから
immedと入力するとデバッグ中に変数の中身表示させたり出来る
922:917
05/11/08 18:48:47
>>921
どうもありがとう。助かりました。
「表示」の「その他ウインドウ」に気づきませんでした。
923:デフォルトの名無しさん
05/11/08 18:49:02
Debug.Print は Console.WriteLine で置き換え
出力のウインドウで確認
924:デフォルトの名無しさん
05/11/08 18:59:38
C# から VB.NET に移行してきました。
コントロールのイベントの追加の方法を知りたいのですが、
C#はコントロールを選択してプロパティの画面から追加するイベントを
選択してコードを書いていくのですがVB.NETの場合はコード画面の
上のほうにあるコンボボックスの左側からコントロールを選択し、
その右のコンボからコードを追加したいイベントを選択するという方法
になるのでしょうか?
これ以外のイベントの追加の方法がありましたら教えてください。
あと、複数のコントロールで発生したイベントで処理する内容が同じ場合、
Handles のうしろに、そのイベントで処理したいコントロールを
手書きで追加していくっていうやり方であっていますか?
これもC#の場合はプロパティの部分でイベントを開くと既に存在する
関数が一覧で表示されそこから選択する事ができたので、
VB.NET でも同じように IDE で処理する方法があれば教えてください。
925:デフォルトの名無しさん
05/11/08 19:00:31
なんでそんな移行するんだろう
926:917
05/11/08 19:31:29
>924
>その右のコンボからコードを追加したいイベントを選択するという方法
>になるのでしょうか?
そうです。
>これ以外のイベントの追加の方法がありましたら教えてください。
私にはわかりませんので、レスを待ってください。
>あと、複数のコントロールで発生したイベントで処理する内容が同じ場合、
>Handles のうしろに、そのイベントで処理したいコントロールを
>手書きで追加していくっていうやり方であっていますか?
あってます。
927:デフォルトの名無しさん
05/11/08 21:17:35
ラベル コンボボックス ピクチャボックス
これら全てを表示はさせつつ、
一つのチェックボックスがチェックされていないと構えないようにしたいんだけど、
どうしたらいいですかね?
visible=falseは消えちまうからイクナイ
928:デフォルトの名無しさん
05/11/08 21:28:55
C#でいうところの using() {} のように 自動でIDisposable させる為の
構文はVB.NETにありますか?
929:デフォルトの名無しさん
05/11/08 21:30:07
enabled=false
つーかラベルをどういじるの?
930:デフォルトの名無しさん
05/11/08 21:32:31
なんつうか、グレー表示にならんかな
931:デフォルトの名無しさん
05/11/08 21:33:09
>>929
えーと、これチェックしたらコレ使えるで、みたいな雰囲気を出しときたい
932:デフォルトの名無しさん
05/11/08 21:37:23
自分でコントロール作ればいいんだよ。
ラベルなりなんなり継承して。
そんなの三分もあれば出来るよマジで。
933:デフォルトの名無しさん
05/11/08 21:47:14
windows.formsなアプリで、起動直後に設定ファイルの有無の判断を行ない、
設定ファイルがある場合フォーム(A)を表示、なければ設定用のフォーム(B)
を表示といったアプリケーションを作りたいと思っています。
この時、A.exeを起動して設定ファイルのチェックをし A.exe のフォームを
表示せずにB.DLLを表示させられなくてつまづいています。
A.exeのフォームが必ずでてしまいます。
A.exe を起動しつつ、A.exeのフォームを表示したくない場合には
どのようにすべきでしょう?
934:デフォルトの名無しさん
05/11/08 21:51:38
>>928
現在無し。2005から。
935:デフォルトの名無しさん
05/11/08 22:02:53
モジュール作ってプログラムのプロパティのスタートアップの設定で
そのモジュールにする
で、そのモジュール(のmain)でApplication.Run(_form1)の前にForm2.Showdialogかな?
936:デフォルトの名無しさん
05/11/08 22:03:34
>>933
適当なクラスにMainって共有メソッドを作って
そいつをプロジェクトのスタートアップにすべし。
っていうか、こんなのドトネトのTips紹介してるサイトをちょっと巡れば
調べがつくでしょ。
937:933
05/11/08 22:06:53
ありがとうございます。
自分で Main メソッドを作ればいけるんですね。
助かりました。
938:デフォルトの名無しさん
05/11/08 23:16:16
オプション画面を作る時、左側のツリー選択で右側の画面を切り替える場合は、新しいフォームのインスタンスを作って右側だけに呼び出すという形でいいのでしょうか?
それとも、もっと一般的な形があるんでしょうか?
939:デフォルトの名無しさん
05/11/09 00:08:57
>>938
Formを普通のコントロールにして右にLoad
TopLevelだっけかな?
940:デフォルトの名無しさん
05/11/09 00:10:23
ナンノコチャw
941:デフォルトの名無しさん
05/11/09 00:15:10
TopLevel = FalseにしないとForm内にFormを追加できねぇ
942:904
05/11/09 12:10:31
1つのソースで完結する(ビルドできる)ソースファイル2つを
1つの実行ファイルにまとめたい(ソース1でソース2に記述したクラスを
呼び出す?)のですがMSDN見てもやり方がまったくわかりません
実際こういうことは不可能でソース2を解体してソース1に組み込まないとだめなのでしょうか?
943:904
05/11/09 14:10:58
>>942は解決できました
ありがとうございました
944:デフォルトの名無しさん
05/11/09 16:21:38
今日VB.NET始めたばっかですが質問させてください
テキストボックスに入力した値を変数xに入れて
別の変数nを10のx乗させて変数yに格納したいんですが
Dim y As Double = n * E(x)
これだとだめでした
どうしたらいいんでしょうか^^;
945:デフォルトの名無しさん
05/11/09 17:03:23
べき乗するなら
^
を使う
10^2 は 10の2乗^^
946:デフォルトの名無しさん
05/11/09 17:15:50
E(x)って書くと、「xを引数として関数Eをコールする」か「配列Eのインデックスx番の値」って意味になっちゃう。
階乗演算子は ^
10のx乗は 10^x
変数nを10のx乗するってのは意味がわからんけど、察するに以下のようにすればいいと思う。
Dim y As Double = n * (10^x)
947:944
05/11/09 17:44:30
>>945-946
できました!
ありがとうございます^^
948:デフォルトの名無しさん
05/11/09 19:56:38
ファイル→新規作成→プロジェクト→新しいプロジェクト→OK
とすると「オブジェクトでサポートされていないプロパティまたはメソッドです。」
と出て、新しく始める事ができません。
どうか、解決策を教えてください。
949:デフォルトの名無しさん
05/11/09 20:16:06
開発環境を入れ直せ。
950:デフォルトの名無しさん
05/11/09 20:37:23
>>949
ありがとうございます。さっそく、やってみます。
951:デフォルトの名無しさん
05/11/09 20:47:01
>>938
PanelかUserControlを派生させて、そこにそれぞれの画面を作る。
Formにそれぞれを重なるように配置して、表示するのを変えるにはそのコントロールをBringToFrontする。
952:948
05/11/09 21:23:14
探したのですが、どこで開発環境の変更をするかわかりません。
誰か、教えてください。
953:デフォルトの名無しさん
05/11/09 21:26:12
変更って何?
954:948
05/11/09 21:28:43
間違えました。入れ直す、でした。
955:デフォルトの名無しさん
05/11/09 22:33:41
vb.net で作成した DLL(Windows.Forms) を、参照設定する事なく、
インスタンスの生成を行ないたいのですが(フォームの表示をさせたい)
実現させる方法はありますか?
956:デフォルトの名無しさん
05/11/09 22:38:20
System.Reflection.Assembly.LoadFromでアセンブリをロードして、
そのAssemblyでGetTypeして型情報を取得、
System.Activator.CreateInstanceでその型のインスタンスを作成。
957:デフォルトの名無しさん
05/11/09 23:02:51
ありがとうございます。
GetType する時にクラス名がわかっていないといけないようですが、
クラス名がわからなくてもアセンブリのインスタンスを生成する
なんて事はできないでしょうか?
958:デフォルトの名無しさん
05/11/09 23:11:48
型名も分からないのにインスタンスを作るってのもなかなか有り得ないと思うが……。
Assembly.GetTypesでType配列を取得して、それぞれBaseTypeを遡っていって調べてみるとか。
> アセンブリのインスタンスを生成する
これは意味不明だ。
959:デフォルトの名無しさん
05/11/10 07:48:54
>>952
VisualStudioをアンインストールして
もう一度インストールする
960:デフォルトの名無しさん
05/11/10 09:38:57
あるDBのマスタテーブルからデータを読み込む(書き込む機能は不要)クラスを作るとした時。
このデータの読み込むタイミングは以下のどちらが一般的でしょうか?
・コンストラクタでマスタのCodeを渡して読み込む
・コンストラクタでは何もせず、DataRead(Code)のようなメソッドを持ちそこで読み込む
上司に「コンストラクタは初期化なんだから何もせず、読み込むメソッドを持った方がいい」と指摘をうけたのですがどうなんでしょう。
なんか「初期化」の意味を取り違えてるような気がしないでもないのですが・・・
作る側としては読み込むメソッドを持つと、使う側で呼び忘れてエラーの元になってしまうと思ったので
コンストラクタで読み込んでしまうような作り方をしていました。
961:デフォルトの名無しさん
05/11/10 09:45:39
一般的にはその上司の言が正しい。
特に処理が重くなる場合はコンストラクタに実装するのは避けるべき。
962:デフォルトの名無しさん
05/11/10 12:27:53
ケースバイケースだろうけど俺は>>960の設計の方をむしろ推すね。
要するに読み込みを非同期にすりゃいいだけでしょ?
客から注文もらってから問屋に注文だすような店なら最初からイラネ。
963:デフォルトの名無しさん
05/11/10 12:58:49
コンストラクタではまず重い処理はやるべきではない。
次に、どっちにも対応すればいいんだから・・・。
上司コンストラクタ − インスタンス生成だけ
>>960コンストラクタ − 生成して検索関数呼ぶ
検索ぱぶりっく関数 − 検索実行
面子潰さず、自分の意見通しつつ。
964:デフォルトの名無しさん
05/11/10 16:32:06
textboxコントロールがフォーカスを受け取った時にコントロールの
背景色を変えようと思っているのですが、
フォーカスを受け取ったイベントとして、
Enter を使うべきか、GotFocus を使うべきか、どちらを
使うべきでしょうか?
965:デフォルトの名無しさん
05/11/10 16:39:18
Enterを使うべきだとあちこちに書かれてると思うんだが。
GotFocus使ったらフォームをアクティブにしたときも発生したりするぞ。
966:デフォルトの名無しさん
05/11/10 17:09:41
VB.NETのIF文で最初の条件がFALSEの場合2番目以降の比較は行なわないように
記述する方法はありますか?
dim x as boolean = false
dim y as boolean = true
if(x and y = nothing) then
の場合、xがFALSEなのでyの値が何であっても条件に該当しないので
このように最初の条件がFALSEになった場合、それ以降の条件判断を
して欲しくないのですが。IF文を2つにわけるしかないでしょうか?
よろしくお願いします。
967:デフォルトの名無しさん
05/11/10 17:15:09
AndAlso
ちょっとはリファレンス見ようぜ
968:960
05/11/10 17:48:52
>>961
>>962
>>963
レス感謝です。
「コンストラクタには重い処理を書くべきではない」ってのを今日まで知りませんでした。
1万件のレコードを、960に書いた2通りの方法でそれぞれ試してみましたが時間的な差は無かったです。
なにか実感できるようなサンプルってありますか?
969:デフォルトの名無しさん
05/11/10 18:02:03
厳密にはデバッグできなくなるって理由でないの?>コンストラクタに書かない
970:デフォルトの名無しさん
05/11/10 18:29:26
>>968
>「コンストラクタには重い処理を書くべきではない」ってのを今日まで知りませんでした
単に961の俺様ルールだと思うよそれ。
だってそんなルールに何の合理性のないじゃん。
すくなくとも無条件にいつでも合理的とはいえないよ。
というか、重いなら単に非同期で処理すればいいだけの話で
どうせ必須の引数なら最初から受け取っておく、必須の処理なら最初からやっておく
これが普通の考え方でしょう。
もちろん「特に理由がない限りにおいては」ね。
971:デフォルトの名無しさん
05/11/10 18:35:08
つ コンストラクタの使用方法のガイドライン
972:デフォルトの名無しさん
05/11/11 01:03:50
Cで作った xxx.dll 中の
typedef struct {
int a;
int b[50];
} X;
int test(X *z) {}
な関数を、VBで、
Structure X
Dim a As Integer
Dim b(50) As Integer
End Structure
Declare Function test Lib "xxx.dll" (ByRef z As X) As Integer
として使おうとしたのですが、VBでは構造体に固定長配列が使えないらしく、
エラーが出てしまいます。
構造体の中では b() だけ宣言して後でReDim b(50) しても、
アドレス的に a に連続しないのか、test を呼び出したときに落ちます。
どうしたらいいでしょうか。
973:デフォルトの名無しさん
05/11/11 03:50:01
C#.NETでは書けて、VB.NETで書けないものってありますか?
974:デフォルトの名無しさん
05/11/11 04:40:09
>>972
Imports System.Runtime.InteropServices 'コードの先頭で宣言
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=50)> _
Dim b() As Integer
>>973
VB2005で可能になるけど、カスタムイベント、演算子のオーバーロード、XMLドキュメントあたり。
975:デフォルトの名無しさん
05/11/11 09:27:36
つうか、コンストラクタで非同期処理なんてしてほしくないよな。
976:デフォルトの名無しさん
05/11/11 12:58:19
>>973
unsafe コード
977:デフォルトの名無しさん
05/11/11 15:05:20
質問です。
データグリッドで、1つのセルに文字を打ったとき、
打たれた文字を判別することはできますか?
データベースと連携させていて、aと打たれたらaから始まるコード(商品コードなど)を
そのセルの部分でコンボボックスで表示させたいのですが。
978:デフォルトの名無しさん
05/11/11 22:33:10
>>973
using
979:デフォルトの名無しさん
05/11/11 22:54:59
>>977
データグリッドの編集中のセルの正体はTextBoxだから
そのTextBoxへの参照を取得すればなんでもできるんじゃない?
TextBoxへの参照を取得する方法は・・・忘れたけど別に難しくないというか
裏技的なものは何もなく、なにかのオブジェクトのプロパティで明示的だったと思う。
ていうかデータグリッドの使い方紹介してるサイトなんていっぱいあるでしょ。
こんなところで質問しなくても。
980:デフォルトの名無しさん
05/11/11 23:19:59
>>968
常に全件を抱え込むオブジェクトならどっちで実装しても差は無いと思う。
けれど、Formで使用するマスタデータを管理するクラスなんかだと常に全件が必要なわけ
でもないからメソッドやプロパティが呼び出された時に初めて実際にDBへアクセスするとい
うProxyパターンを適用するのも一つのやり方。
Formを開くたびにマスタ読み込みで数秒待たされるというのはUIの設計としてもマズイ。
981:最凶VB厨房
05/11/12 09:38:46
次のスレッドはこちら
VB.NET質問スレ (Part13)
スレリンク(tech板)
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4704日前に更新/282 KB
担当:undef