VB.NET質問スレ (Part12 ..
561:デフォルトの名無しさん
05/10/05 22:19:34
vb.netでsusieプラグイン使うのは可能でしょうか?(事前バインドでなくて動的に)
どぼんだとinvoke.dllがあれば出来るとありましたが、コンパイル出来なかったのと
配布のこと考えるとちと無理かなと
他の方法があればいいのですが…
562:デフォルトの名無しさん
05/10/05 22:29:29
まっとうにVB.NETだけでアンマネージドをレイトバインディングするには.NET 2.0が必要だね。
Managed C++を使えるのならそれでラップしてやれば簡単に作れるけど。
563:561
05/10/05 23:58:23
やっぱ無理すか…
ついでにもう一つ質問
ホバーってホバーと見なす時間ってどこで指定するんでしょう
つーか、本当はホバーじゃなくて、「マウスオーバーで選択はしないが
3秒間ポイントしたら実行」ってのがやりたいんだけど(リストビュー)
564:デフォルトの名無しさん
05/10/06 00:13:16
.NETの範囲内じゃ不可能だね。
Hoverの時間間隔を取得するのも.NET 2.0でようやく追加された。
//System.Windows.Forms名前空間SystemInformationクラスのMouseHoverTime静的プロパティ。取得のみ。
変更するのはWin32APIのTrackMouseEvent関数。とは言えこれの使い方は微妙かも。
それくらいなら、MouseMoveイベントとタイマを駆使すればなんとかなるかな?
565:デフォルトの名無しさん
05/10/06 00:49:29
質問させてください。
フォームの×や_ボタンを消して、
しかもフォームを動かせないようにするにはどのようにすればよいのでしょうか?
566:デフォルトの名無しさん
05/10/06 00:57:46
タイトルバーごと消して良いの?
タイトルバーがあるのに動かせないのはユーザへの嫌がらせにしかならないけど。
567:デフォルトの名無しさん
05/10/06 08:52:21
>>565
Form.ControlBox=False
Load時にLocationの値を覚えておいて、
Moveイベントが発生するたびに、覚えていたLocation値に置き換える。
でいけるんじゃね。
568:デフォルトの名無しさん
05/10/06 10:15:37
.NETって、標準のグラフコンポーネントとかないですか?
VB6.0のころはあったんですが、いくら調べても見つからないですよね。
クリレポについているみたいなんですけど、帳票じゃないやつではないですか?
ご存知だったらお教えください。
よろしくお願いします。
569:じゃんぬねっと
05/10/06 12:28:35
>>565
ControlBox プロパティを False にするか、
Maximize, Minimize プロパティを False にします。
移動は、API の DeleteMenu で消してしまえば OK です。
570:デフォルトの名無しさん
05/10/06 15:43:52
VB.Netで以下のようなINIファイルのデータを
タグ名のAAAAA、キーワードのbbで値の123が取得できる
関数とかありませんでしょうか?
XXXX.ini
-----
[AAAAA]
bb=123
571:デフォルトの名無しさん
05/10/06 16:17:40
>>570
.NET Frameworkにはありません。
APIを使うかStreamReaderなんかで手動で読み取りましょう。
っていうか、XMLファイルを何故使わないんですか?
使いましょう!
572:デフォルトの名無しさん
05/10/06 16:27:59
>>571
APIを使うことにします。GetprivateProFileStringでしょうか。
教えていただきありがとうございました。
573:563
05/10/06 21:50:32
>>564
mouseenterで大麻をイネーブル、mousemoveでディセーブル&イネーブルで
何とかなりました
つか、タイマのリセットってこれでやり方合ってるんでしょか?
574:デフォルトの名無しさん
05/10/06 21:56:01
ドキュメントには何も書いて無いのな。
まあちゃんと動いてるのならそれで良いでしょ。
575:デフォルトの名無しさん
05/10/06 23:37:53
エディタを自作するにはどうしたらいいですか?
改行マークやらを表示したいのです
576:デフォルトの名無しさん
05/10/07 00:02:25
>>573
通報しますた
577:デフォルトの名無しさん
05/10/07 13:45:16
VB.NetでOracle9iにDB接続、切断する方法を
教えて下さい、よろしくお願いします。
(OracleClient.OracleConnectionを使う?)
578:デフォルトの名無しさん
05/10/07 14:40:29
またぐぐれば数分のことを・・・。
ORACLE VB.net 入門でぐぐれば、本関係以外で最初に@ITが出てくる。
579:デフォルトの名無しさん
05/10/07 16:21:07
>>578
ぐぐってみました。
VB.NetでDB接続、切断するには
ODP.NETをインストールしないとダメなんですか?
もしくはした方がよいのですか?
何度もすいません。
580:デフォルトの名無しさん
05/10/07 16:33:16
>>579
つうか、その回答も@ITの別の記事で書かれてるはずだが。
OleDBとか選択肢あるから、必要条件を自分で決めて選択してくれ。
581:デフォルトの名無しさん
05/10/07 16:45:44
>>580
回答ありがとうございました。
(ODP.NETを選択しました。)
582:デフォルトの名無しさん
05/10/08 00:28:16
初歩的な質問ですみません
SHELLでカレントを変えたい時は呼び出す前に自分のカレント変えて、
呼び出して、また戻して、ってやるしか無いのですか
583:デフォルトの名無しさん
05/10/08 00:42:05
いつまでもShellなんてレガシ使ってないで
System.Diagnostics名前空間Processクラス使えという啓示。
584:デフォルトの名無しさん
05/10/08 14:24:27
かなり、初心者な質問なんですが、 これを2行にわける時は
どう書けば、いいのでしょうか?
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
585:デフォルトの名無しさん
05/10/08 14:28:08
>>584
Dim cmd As SqlClient.SqlCommand = _
SqlConnection1.CreateCommand()
586:デフォルトの名無しさん
05/10/08 14:54:12
>>585
レスありがとうございます。
質問の仕方がまずかったみたいです。
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
これを = で繋がないで2行に分けたいのですが、
Dim cmd As SqlClient.SqlCommand
cmd =
なんかこんな感じで書けないかなぁと思ったのですが。。
よろしくおねがいします。
587:デフォルトの名無しさん
05/10/08 15:12:15
Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()
じゃないの?え、ちがう?すまぬ。VB.NETはちょっとかじっただけ
588:デフォルトの名無しさん
05/10/08 15:14:13
>>586
VB.NETを使ったことの無い俺が言うのもアレだけど、
Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()
じゃダメなん?
589:デフォルトの名無しさん
05/10/08 15:52:14
>>587
>>588
ありがとうございます。。
590:デフォルトの名無しさん
05/10/08 18:50:28
変数とインスタンス(実体)の違いを理解できてないってことですね。
.netというかまあ基礎から勉強しましょう。
591:デフォルトの名無しさん
05/10/08 20:16:49
他フォームへの移動なのですが、
下記のような記述でよろしいのでしょうか?
Dim frmC As FormC = New FormC
If A = B then
frmC.Show()
Me.Hide()
Else
xxxxx
End If
592:デフォルトの名無しさん
05/10/08 20:28:12
何をもって良しとするかも判らんのにどうしろと。
自分の思い通り動いてるならいいんじゃないんですか?
593:デフォルトの名無しさん
05/10/09 09:31:22
うちの猫をVBライクからC#ライクにしたいのですが
どうしたらいいですか?
VBから卒業させてやりたいんでちゅ
594:デフォルトの名無しさん
05/10/09 21:08:25
まずはカッコつけさせることだな。
595:デフォルトの名無しさん
05/10/10 00:07:00
コーディングの常識かもしれないんですが
If chkVisible.Checked = True Then
mblnVisible = True
Else
mblnVisible = False
End If
というコードを参考書で見るけれども
mblnVisible = chkVisible.Checked
では問題があるのでしょうか。
可読性の問題?
596:デフォルトの名無しさん
05/10/10 00:10:32
別に問題ないな。
私も後者の表記をするし。
597:デフォルトの名無しさん
05/10/10 08:10:31
私だと例えばそのIFブロックにもう1つ処理足したくなったときに下だと直しが面倒なので
IFブロックは極力上の書き方してます
598:デフォルトの名無しさん
05/10/10 08:42:49
直しが面倒なのはイヤなのに初めて書くときに面倒なのは許容するのか
理解できんな
599:595
05/10/10 09:26:23
上とはちょっと違うんだけど、以前外注したベンダは画面上のコントロールの値をわざわざ
変数に突っ込んで、
mblnVisible = chkVisible.Checked
If mblnVisible = True Then
処理1
Else
処理2
End If
という処理を書いていた。mblnVisibleを他で使うでもなく。
結構大手ベンダだったので、画面上のコントロールの値を直接つかわないとかなんとか、
俺のしらないコーディング作法があるのかなぁ、と思っていたりして。
600:デフォルトの名無しさん
05/10/10 10:10:19
>>599
そのフラグを使う回数によるけど。
オブジェクト参照のスピードと変数参照のスピードの違いがあるから。
ループの中で死ぬほどのそのフラグで分岐するならば、変数にコピーして使うべき。
601:595
05/10/10 10:47:09
>>600
いや、それならわかるんだけど、使うのも一回だけ。
それも画面上の全コントロールの値を全部変数に代入してた。
単に駄目コーディングなのか・・・
602:デフォルトの名無しさん
05/10/10 10:54:35
>>600を考慮した習慣ではないかと。
603:デフォルトの名無しさん
05/10/10 11:08:23
hotmail用のメーラーを作りたいんですが、
どこか参考になるサイトをご存知の方がいらしたら
教えていただけないでしょうか?
604:デフォルトの名無しさん
05/10/10 11:09:50
どっちかってーと、
>>600を考慮した結果何でもかんでもそれにしちゃえという安直な発想の元根付いてしまった習慣、かな。
605:デフォルトの名無しさん
05/10/10 11:14:52
いや、後の拡張など考えた場合は機械的にやるのもありだとは思う。
ただ、MVCがきちんと分離できてれば、そのチェックボックスを引っ張るなんてありえないけどね。
606:デフォルトの名無しさん
05/10/10 11:28:03
MVCなんて知らなくて良いから、各位仕様変更に耐えうるコードとは何かを考えてほしいす。
どのフォームがアクティブかでで引数決定したり、入力部品を計算処理から直接参照して計算とかカンベンシテクレと。
氏ね中国外注・・・
607:デフォルトの名無しさん
05/10/10 11:36:29
chkVisible.CheckedはmblnVisibleの1条件と見るべき、たまたま条件が1つだっただけ。
従って、mblnVisible = chkVisible.Checked は良くないな。
608:595
05/10/10 11:41:55
んー、なんとなく了解しました。
まあ俺の作法が駄目ということではなさそうなので安心。
可読性と速度と保守性と一貫性を考慮してればいいよってことだよね。
MVC初めて知ったので、これから勉強。でもVB.netのユーザー入力部分だけ
のコーディングにMVCもくそもないかw
分離できてるってことか。
相手してくれた方々、ありがとう。
609:デフォルトの名無しさん
05/10/10 12:00:15
>>608
例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
関数化して、I/Oをきちんとすること、そこから始まりだよ。
イベント関数はそれらを呼ぶだけにする。
610:デフォルトの名無しさん
05/10/10 12:12:28
言葉遣いが偉そうな奴ってなんで例外なく無能なんだろう。。
>例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
>関数化して、I/Oをきちんとすること、そこから始まりだよ。
>イベント関数はそれらを呼ぶだけにする。
もう馬鹿丸出し。そんなの程度問題でしょ。
611:デフォルトの名無しさん
05/10/10 12:18:44
>>610
出来もしない奴がよく言う言い訳だね。
612:デフォルトの名無しさん
05/10/10 13:22:18
>>606
それは設計規約、コーディング規約、設計書等の記述が甘いからです。
中国人プログラマー相手であればコーディングの1行がこうなると設計書の記述から100%読めない限りダメです。
その為ブリッジSEの単価は跳ね上がるのです。
SEで来てるんなら、そいつはSEじゃなくてPGだという事で単価交渉しろ
613:デフォルトの名無しさん
05/10/10 17:03:51
複数選択する時にマウスでドラッグして選択する場合がありますが、その時の「四角い枠で
選択中」ってイベントはどうやって知ればいいのでしょう
つーか複数選択解除しただけで何でselecteditemchangeが選択してたアイテム数回
発生しやがるんでしょうね
614:613
05/10/10 17:06:13
間違えました
selectedindexchangedでした
615:デフォルトの名無しさん
05/10/10 17:10:01
MouseMoveでe.Buttonのチェックでもすれば?
616:デフォルトの名無しさん
05/10/10 20:02:26
ソース修正後に追加した覚えのない存在しないコントロール「_label4」など
が参照できないためコンパイル不可に陥るのは、vb.netの仕様ですか?
617:613
05/10/10 20:52:01
>>615
この間のイベント
mousemove
:
mousemove
mousedown
ドラッグ開始
selectecindexchanged
:
selectecindexchanged
ドラッグ終了
mouseup
mousemove
:
mousemove
ドラッグの間はmousemoveが発生しないし、mousedownの時点ではこれからドラッグ
するのか分からない、
要はselectecindexchangedが連続して発生しているものなら最初の1回以外無視
したいのです
618:デフォルトの名無しさん
05/10/10 21:27:58
必然性の良く分からない要求だなぁ……。
派生クラスを作る。
フラグを用意。
OnSelectedIndexChangedで、
・フラグが立ってれば返る。
・Control.MouseButtonsがMouseButtons.Noneでないのなら、フラグを立てて返る。
・どちらでもないのなら基底クラスのOnSelectedIndexChangedを呼ぶ
(SelectedIndexChangedイベントに登録されたハンドラを処理する)。
OnMouseUpで、
・フラグが立ってれば、フラグをおろし、
必要ならOnSelectedIndexChangedを呼ぶことでSelectedIndexChangedを処理させる
とかどう?
619:613
05/10/11 00:11:46
ちょっと複雑に考えすぎてた
要はmousedownで右クリ、Ctrl、Shiftでスキップ用のフラグ立てるだけで良かった
んでselectedindexchangedの中で処理回避してフラグ立てて、mouseupで解除する、と
要は、選択したファイルのサイズとか作成日とか表示してるのだけど、複数選択
してもどうせ最初の1つしか表示しないので、最初の1回しか表示ルーチンに
回さないようにしたかったってこと
(実際チラチラして見辛かったし時間も僅かとは言え食ってたから)
620:デフォルトの名無しさん
05/10/11 04:20:25
文法エラー(青色の波状の下線)の場所にマウスカーソルをあてても、
何か設定を弄ったのか、エラー内容が出なくなりました。
「ツール」→「オプション」や、説明書を確認してみても分かりませんでした。
アホな質問ですみませんが、どこの設定を確認してみればいいのでしょうか。
621:デフォルトの名無しさん
05/10/11 09:40:12
ASP.net、VB.NETにてウェブアプリケーションを作製しています。
DataGridコントロールのテンプレート(TextBox)に配列の内容を表示したいのですが、
以下の様に書くとエラーがでてしまいます。
なにか方法があるのでしょうか。
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="名前">
<ItemTemplate>
<asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Public a() As String = {"あああああ", "いいいいい", "ううううう"}
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGrid1.DataSource = a
DataGrid1.DataBind()
End Sub
622:デフォルトの名無しさん
05/10/11 09:55:01
取りあえずエラーの内容ぐらい書こうよ
623:621
05/10/11 10:00:32
すいません。
以下のようなエラーが出ています。
例外の詳細: System.Web.HttpException: 'TextBox' に型 'DataBoundLiteralControl' の子を指定することはできません。
TextBoxのところをLabelに変更するとエラーもなく動きましたが、TextBoxだと動きません。
624:デフォルトの名無しさん
05/10/11 10:52:47
すいません。自己解決しました。
TextBox部分を以下のように変えたら動きました。
<asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox>
↓
<asp:TextBox Runat="server" Text="<%# Container.DataItem %>"></asp:TextBox>
625:デフォルトの名無しさん
05/10/11 16:51:08
Fromを最大化、最小化した際のWidth, Heightプロパティの値を取得すると、
最大、最小化時の値が取得されますが、
そのままの状態で、Normal時に戻したときのWidth,Heightの値を取得する方法はありますか?
Form終了時に、Width,Heightの値を設定ファイルに記憶したいのですが、
最大、最小化時に終了した際に、最後の時点のNormal時の値を書き込みたいのです。
(次回起動時に反映させたい為)
626:デフォルトの名無しさん
05/10/11 17:07:29
ResizeイベントでWindowStateがNormalの時にフィールドに保存。
627:デフォルトの名無しさん
05/10/11 17:14:25
>>626
ありがとうございます。
やってみます。
628:デフォルトの名無しさん
05/10/11 23:35:18
構造体の初期化はどうやって行うのでしょうか?
Constraction DATA
dim A as integer
dim B as string
end Constraction
dim tData as DATA
Redim tDatata ←これもだめ
Erase tData ←これもだめ
教えてください。
629:デフォルトの名無しさん
05/10/11 23:38:39
Structure
630:デフォルトの名無しさん
05/10/11 23:38:51
Dim dData As Data
dData = New Data()
'むしろDim dData As Data = New Data()
ところでConstractionってなんだ
631:デフォルトの名無しさん
05/10/11 23:46:16
wordのスペルチェック機能を
vb.netで作ったテキストエディタで利用したいんだけど(もちろんwordが既にインストールされている状態
どうすればいいの?
632:デフォルトの名無しさん
05/10/11 23:46:21
ストラクチャでコンストラクタ書けばいいんでねーけ?
633:628
05/10/12 01:41:03
>>629 >>630 >>632
ありがとうございました。Newキーワードについて調べてみます。
Structureですね、初心者なので間違えました。
634:デフォルトの名無しさん
05/10/12 09:51:17
ODBC接続をするアプリケーションを作成しているのですが、
接続情報が顧客によってちがいます。OdbcConnectionクラスで
接続していますが、どんなDBでも対応できるようにできますでしょうか?
VC++6.0で作成したプログラムを見たことがあるのですが、
ODBC接続情報を入力する標準のダイアログが出てきました。
こういうものは、VB.NETにはないでしょうか?
どなたかお聞かせ下さい。
よろしくお願いします。
635:デフォルトの名無しさん
05/10/12 11:03:35
>>634
なぜにODBC?
接続情報は当然顧客毎に違うでしょうね。
DBMS差を吸収するのがODBCだと思いますが。
ユーザー名等は設定ファイルなどで記述して、接続先はインストール時に作るか手順書では?
まあ、.netっぽくやるのであればOLEDBに移行すべきだと思う。
636:デフォルトの名無しさん
05/10/12 14:02:16
中国人のブリッジSEがODBCにしろというんですよね。
彼が言う標準のODBCダイアログというのは、どうやら、「SQL Serverログイン」のことのようですね。
ODBCデータソースアドミニストレータで、システムDSNにある特定の名前を入れるんだけど、
アクセスだとパスワードの入力要求はされないが、SQLServerでSQLServer認証を使うと、
パスワードが入力要求されるんです。
中国人BSEが言う「ODBC用の標準的な接続ダイアログ」なんて、本当にあるんですか?
よろしくお聞かせ下さい。
637:デフォルトの名無しさん
05/10/12 14:04:12
その中国人BSEに聞いたらあかんの?
638:デフォルトの名無しさん
05/10/12 14:43:54
ACCESSで出るダイアログと同じものが出るはず
VB6ではお世話になったが.NETでは使わなくなったから検証できず
639:デフォルトの名無しさん
05/10/12 15:54:30
>>637
中国人BSEも、遠い記憶を基にして言っているので、ソースが定かではない。
結局、中国人の思いつきを、おれが調査しなくてはならない。
>>638
VB6では、どんなダイアログか分かりますか?
教えて下さい。
お願いします。
640:デフォルトの名無しさん
05/10/12 16:06:54
>>639
接続先データソース名
ID
パスワード
の入力ダイアログが出る(はず
641:デフォルトの名無しさん
05/10/12 16:56:38
>>640
どんなコントロールですか?
コントロール名とか分かりますか?
642:デフォルトの名無しさん
05/10/12 17:04:58
>>620ですが、
fixでOS(XP)を再起動したら回復しました。
よく見たら、他のソフトも表示されておらず、
どうやらポップアップがウィンドウの背後に出ているようでした。
(些細な事で、数時間無駄にしてしまいました)
3週間位連続して使っていたのですが、まれにこんなことがあるんでしょうかね。
643:デフォルトの名無しさん
05/10/12 17:57:30
>>636
それはODBC ドライバ マネージャが表示するもので、
RDOでOpenConnectionするとき、DSNが無かったり接続情報が不完全な場合に出てた。
もっぱら開発時やデバッグ用の機能で、通常のアプリケーションではDNS情報が不完全な場合は
rdDriverNoPromptを指定してプロンプトを出さずにエラーにしてプログラムで処理する。
ADO.NETはもちろんADO以降そんな機能はない。
第一バックグランドで動くかもしれないプログラムが勝手に妙なプロンプトを出したらユーザーが困る。
System.Data.OdbcはOLEDBや専用の.NET Driver(SQLServerやOracle)が無い場合にやむなく使う機能。
もしプロンプトを出したいだけの理由でODBCを使いたいといってるなら却下だな。
644:デフォルトの名無しさん
05/10/12 19:17:05
sub とか function の内部でローカル宣言した const に2040バイトほどの
文字列を入れるとコンパイル時にVisualStudioごと落ちるんですが、これは
仕様なんでしょうか?
645:デフォルトの名無しさん
05/10/13 00:02:03
TcpClientについて質問です。
現在、DataAvailableのプロパティで、読み取りデータがあるかないかを調べ、
データがある場合はデータを読み込み、無い場合はスルー
という感じで、受信待ちの形(Do Loop)にしているのですが、
WinsockのDataArrivalイベントのように、データを受信した場合にイベントなどで知リたいと思うのですが、何か良い手立ては無いでしょうか?
646:デフォルトの名無しさん
05/10/13 01:06:22
BeginRead使うとか?
なぜそうしたいのか分かれば代替案も出せるかも知れないけど
647:デフォルトの名無しさん
05/10/13 02:04:29
基本的なことで恐縮です。
タイマーについての質問です。
Form上にTimer1とTimer2の2つを実装したとします。
仮に
Timer1 Interval 500ms Tickイベント時の処理時間100ms
Timer2 Interval 150ms Tickイベント時の処理時間10ms
とし、正確な処理時間はさほど必要ないとします。
このとき、Timer1のTickイベント処理中にTimer2の処理のタイミングが重なった場合の
動作は、処理を割り込んでくるのでしょうか?それともTimer2は待機しているのでしょうか?
要は、割り込んでほしくないときは、Timer2を止めるなどの処理が必要なのかどうかです。
逆に、Timer2の処理を優先したいときなどはどのようにすればいいのでしょうか?
648:デフォルトの名無しさん
05/10/13 02:16:26
>>647
System.Windows.Forms.Timer なら割り込んでこない。
649:デフォルトの名無しさん
05/10/13 02:34:16
>>648
レスサンクス。
ということは、System.Windows.Forms.Timer を使用していると
割り込んでくるな処理は不要ということですね。
逆に割り込ませたいときは、System.Timers.Timerとかかな?
もう少し調べてみます。ありがとうございました。
650:デフォルトの名無しさん
05/10/13 05:48:27
>>644
VisualStudioのバージョンと言語、落ちるソースを出さないと誰も相手にしないよ。
651:デフォルトの名無しさん
05/10/13 08:19:07
>>649
「割り込む」とかいう言葉遣いの人が
安易にSystem.Timers.Timerとか使うと危険。
危険ってのは別に煽って言ってるわけじゃなく、本当に危険だよ。
652:デフォルトの名無しさん
05/10/13 09:22:52
WindowsでのTimerって、メッセージキューにTimerイベントが置かれるだけですよ。
それを理解すれば答えは出ると思うんだが。
まあ、メッセージループを知らずに、メッセージも知らずにプログラム書けるのも一長一短だな。
653:デフォルトの名無しさん
05/10/13 09:31:08
>>650
ここはVB.NETスレでしょ?
なんで言語を書く必要が?
654:デフォルトの名無しさん
05/10/13 10:30:46
>>653 揚げ足取っておもしろいか?
655:デフォルトの名無しさん
05/10/13 10:38:09
>>652
System.Windows.Forms.Timerはその通りだが、全てのタイマがそうというわけではないぞ。
656:デフォルトの名無しさん
05/10/13 10:43:41
>>655
その程度のこと元質問を読めば自明。
657:デフォルトの名無しさん
05/10/13 10:59:50
System.Timers.TimerとSystem.Windows.Forms.Timerは何が違うんディスカ?
658:デフォルトの名無しさん
05/10/13 11:40:20
>>654
じゃあちゃんと書くから追試よろしく。
Visual Studio .NET 2003でVB.NETを使用し、以下のコードをコンパイル。
Public Class Test
Privete Sub TestMethod()
'↓改行記号で連結した2040バイトの文字列定数(長くなるので省略)
Const TestConst As String = _
"abcdef ..... xyz" & _
....
End Sub
End Class
これだけでコンパイル完了前にVisual Studioが突然死する。
659:デフォルトの名無しさん
05/10/13 12:15:03
>>658
2036バイトまでなら通った。
2037バイトの文字列にすると落ちた。
660:デフォルトの名無しさん
05/10/13 12:42:19
しかし.NETってバグフィックスがちっとも出ないのはなんでかね?
これ以外にも小さな(?)バグって山ほどあるよな
発売以来二年以上経過してるのにフレームワークのSP1がでてそれきり。
661:デフォルトの名無しさん
05/10/13 14:39:12
DataGridに列を追加し、さらに列名(列見出し)を表示させるには
どうしたらよいのでしょうか?
画面の何かのプロパティで追加できるのでしょうか?
手順を教えてください、よろしくお願いします。
662:デフォルトの名無しさん
05/10/13 15:39:02
>>661
入門書を買うか、入門HPを嫁。
663:デフォルトの名無しさん
05/10/13 17:30:34
>>660
バグではありません,それは仕様です,,なのでは?
664:デフォルトの名無しさん
05/10/13 17:31:29
>>661
'Test Data 作成
ds = New DataSet("testDs")
Dim dt As DataTable = ds.Tables.Add("testTable1")
dt.Columns.Add("id", Type.GetType("System.Int32"))
dt.Columns.Add("value", Type.GetType("System.String"))
dt.Columns.Add("date", Type.GetType("System.DateTime"))
Dim row As DataRow
For i As Integer = 1 To 100
row = dt.NewRow()
row.Item("id") = i
row.Item("value") = "Test" & i.ToString
row.Item("date") = Now
dt.Rows.Add(row)
Next
'DataGrid.DataSourceにDataTableを設定
Me.DataGrid1.DataSource = dt
'Columnを1つ追加(この時点でDataGridにはColumnが追加されている)
dt.Columns.Add("addCol", Type.GetType("System.Int32"))
'Columnのキャプション設定(この時点で追加されたColumnのキャプションが変わる)
dt.Columns("addCol").ColumnName = "Add Column"
665:デフォルトの名無しさん
05/10/13 19:07:06
新しいフォームを作ってそれを呼び出し元のフォームより後ろに表示したい
んですが、何とか実現する方法ってないですか?
666:デフォルトの名無しさん
05/10/13 20:02:40
>>665
アブフレックス
667:デフォルトの名無しさん
05/10/14 18:28:18
>>664 さん
661です、サンプル例ありがとうございました。
おかげでできました、助かりました。どもです。
668:647
05/10/15 12:44:49
レスサンクスです。
最近プログラミングの基本を勉強する必要を痛感していただけに・・
System.Timers.Timer・・・いまんとこはやめときます orz
669:デフォルトの名無しさん
05/10/15 15:49:25
クラス内変数なのですが、
private SqlConnection sqlConnection = null ;
と C# で書かれていたものをVB.NETで書く場合はどう書けばよろしいのでしょうか?
670:デフォルトの名無しさん
05/10/15 16:05:55
番号 データ
1 10
2 12
3 10
のようなテーブルを作ってDataGridに表示していて、
ボタンを押すと、
4 13
などとデータが追加されていきます。
どんどん追加していくと、追加した行が見えなくなってしまいますが、
追加した行にフォーカスを移して、その行が見えるようにする方法を教えてください。
DataGrid1.Select(dataTable1.Rows.Count - 1)
だと選択されるだけで、見えるようにはなりませんでした。
671:670
05/10/15 16:16:23
DataGrid1.CurrentCell = New DataGridCell(dataTable1.Rows.Count - 1, 1)
でした。
672:デフォルトの名無しさん
05/10/15 16:18:15
>>669
君はどの部分が変換できないの?
あと「クラス内変数」って表現は「フィールド」と言った方が良いよ。
673:デフォルトの名無しさん
05/10/15 16:33:27
>>672
レスありがとうございます。
private SqlConnection sqlConnection = null ;
と、C#で書かれているものを
VBNETで書くとこんな感じかなと思ったのですが、これだとエラーになってしまいます。
Private sqlConnection As SqlConnection = New SqlConnection
sqlConnection = null
よろしくお願い致します。
674:デフォルトの名無しさん
05/10/15 16:42:28
>>673
Private sqlConnection As SqlConnection = Nothing
または
Private sqlConnection As SqlConnection
参照無しの状態になるのを明示して欲しいから、上の書き方が良いかな?
意図的にインスタンス生成してませんよって。
675:デフォルトの名無しさん
05/10/15 17:23:56
自分もC#のソースVBで書き換えたいのですが、
If color = Color.Empty Then
と書きたい時に、
Color.Empty が color.Empty に(大文字が小文字に)
強制的に代えられてしまうのは何故でしょうか?
知ってる方お願いします。
676:デフォルトの名無しさん
05/10/15 17:28:44
すみません、color は
Dim color As Colorです。
677:デフォルトの名無しさん
05/10/15 18:16:28
VBは大文字小文字が区別されないから。
C#なら大小の区別で別物になるがVB.NETではそうもいかないので、できれば別のネーミングにすることを薦める。
678:デフォルトの名無しさん
05/10/15 20:49:19
>>677
大文字と小文字の区別が無い事は全然知りませんでした。
どうもありがとうございます。
679:673
05/10/15 21:37:36
>>674
大変参考になりました。。
ありがとうございます。
680:デフォルトの名無しさん
05/10/15 23:27:36
でも Dim color As Color ってつい書いちゃうんだよな。
大文字小文字の区別はないけど、
クラス名とインスタンス名はいちおうちゃんと別物として扱われるんで。
681:デフォルトの名無しさん
05/10/16 03:15:24
int, str, bol, tbx, lbx, objとか出来るだけ接頭子付けているが
color は col だとフィールド関係と間違えそうだし、clr かな?
682:デフォルトの名無しさん
05/10/16 07:55:17
ハンガリアンは捨てたのさ。
683:デフォルトの名無しさん
05/10/16 13:58:11
webbrowserコントロールでエクセルファイル表示するとおもむろにエクセル立ち上がるのって
どうにか出来ないでしょうか?(せめて最小化とか)
そして閉じてもエクセルやワードのプロセスが残ってるのも何とかしたいんです
684:デフォルトの名無しさん
05/10/16 15:53:06
Webブラウザコントロールを使って表示しなければいいんじゃないか?
これってたぶんだけどIEで表示してるのと同じだよね。
関連付けで開いた相手のプロセスはIEの監視下?
レガシーなOLE連携でCreateObjectでやった場合でもプロセスは起動するのはやむなしだな。
でもプロセスは残らない。
単純にファイルの関連付けで開いた場合、プロセスの終了は使用者任せだね。
そうじゃなければ、市販コントロールであると思うよ。
685:デフォルトの名無しさん
05/10/16 18:02:04
>>684
それ言っちゃうと身も蓋も無いんだけどねw
フリーソフト作るのに市販コントロール買ってまでするってのも…
ヘルプ見ようとしても出てこんし
諦めた方がいいかな
686:デフォルトの名無しさん
05/10/16 20:29:09
>>681
その調子で一度すべてのクラスに識別可能なプレフィックスを付けながら
コーディングしてみ?プレフィックスが変数名より長くなるか、
プレフィックスを覚えきれなくなるのが落ち。まともなOOの環境で
コーディングしたことあるやつなら、プレフィックスを付けることの
無理にとっくに気がついている。だから最近はプレフィックスを付けないのが主流。
687:デフォルトの名無しさん
05/10/16 22:59:06
>>685
それを言うならば、フリーソフトでEXCELマクロでもないアプリなのに、要EXCELってのも・・・。
企画原案を変えるべきでは?
688:デフォルトの名無しさん
05/10/17 00:57:28
>>660
Javaやってりゃ分かるが細かいバグもチョコチョコ直されると激しく迷惑
689:デフォルトの名無しさん
05/10/17 13:31:05
IPメッセンジャーのようなメッセージ配信機能を電話オペレータの操作画面の一部にテロップのような形式で配信したいと考えています。
また、配信する人は一部の管理者を想定しているのですが、この管理者の権限でメッセージ表示を削除する機能も付加したいと考えています。
VB.NETのWindowsアプリケーション開発で技術的に可能でしょうか?教えてください。お願いします。
690:デフォルトの名無しさん
05/10/17 13:46:13
可能です
691:デフォルトの名無しさん
05/10/17 13:50:39
すいません、具体的なヒントとか頂けたら嬉しいです。。
692:デフォルトの名無しさん
05/10/17 15:20:36
690じゃないが、具体的じゃない質問に対して具体的なヒントって?
まず、何が疑問なのか。
693:デフォルトの名無しさん
05/10/17 16:18:35
特定のURLから内容を表示するプログラムを造ってますが、ウェブページ上の表形式のデータを取得する場合、
便利な方法は何かないでしょうか。Ezcelのウェブクエリを高速化したかったのですがwebtableのような概念が
見つけられないもので。VB.NETは質問からも分かるように初心者です。本2冊買ってHELPもあたったのですが・・
Imports System.Net
Imports System.Text
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = ""’URLを入力
TextBox2.Text = ""
End Sub
694:デフォルトの名無しさん
05/10/17 16:19:08
693の続き
Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim wreq As HttpWebRequest
Dim wres As HttpWebResponse
'ウェブリクエストでテキスト1の内容表示、エンコード
wreq = HttpWebRequest.Create(TextBox1.Text)
wres = wreq.GetResponse()
Dim enc As System.Text.Encoding = _
System.Text.Encoding.GetEncoding("euc-jp")
Dim s As IO.Stream = wres.GetResponseStream()
Dim sr As New IO.StreamReader(s, enc)
'コンテンツ内容をテキスト2に表示
Dim Textline As String = sr.ReadToEnd()
TextBox2.AppendText(Textline)
sr.Close()
s.Close()
End Sub
End Class
695:デフォルトの名無しさん
05/10/17 21:24:43
>>689
まずはTCP/IPの勉強をして来なさい
696:デフォルトの名無しさん
05/10/17 21:38:51
>>693
整形式XML(のフラグメント)になりうるんであればXmlReaderとかが使えるけど、HTMLだと難しい場合も多いだろうね。
素直なのは、正規表現(System.Text.RegularExpressions名前空間のRegexを中心とする各クラス)を使って整形するとか。
mshtmlを使って解析させるって手もあるけど……。
697:デフォルトの名無しさん
05/10/17 23:41:11
タスクバーを扱うには、どのあたりのクラスを使えばいいんでしょうか。
シンプルにクイックラウンチをON/OFFしたいだけなんですが。
698:デフォルトの名無しさん
05/10/17 23:51:21
他のプロセスのコントロールをいじるってのは.NETのクラスライブラリでは無理。
Win32APIを駆使することになる。
Shell_TrayWnd の ReBarWindow32 に
RB_GETBANDINFO で ToolbarWindow32 のハンドルと一致するの探して
RB_SHOWBAND で操作、かねぇ。
構造体ポインタのやりとりとなるとVirtualAllocExとかCreateFileMappingとか使う必要もあるね。
699:デフォルトの名無しさん
05/10/17 23:54:41
トレイアイコンのこと?
notifyiconをフォームにドロップするだけ
でフォームのresizeとnotifyiconのmousedownあたりにゴニョゴニョ書けばok
700:デフォルトの名無しさん
05/10/18 00:13:55
>>698
あ、サンキューです。
そのあたりの情報までは見つけていたけど、「.NETならもっと簡単なんじゃねぇの?」と
思ったんですが、できないというのがわかればがんばってAPI叩きます。助かりました。
>>699
いえ、>>698に書いてあるあたりです。
701:デフォルトの名無しさん
05/10/18 00:59:19
>>696
調べを進めていく上でのキーワードがいただけました。ありがとうございます。
(実は何を書いてあるのか殆ど分かりませんがw XMLは聞いたことがあるので、ググリまくります。)
702:デフォルトの名無しさん
05/10/18 02:38:28
>>698
あくまで他スレッドがコントロールを直接操作できないだけ
他スレッドがよんだ自スレッドのメソッドがコントロールをそうさするのはok
703:デフォルトの名無しさん
05/10/18 02:42:19
>>702
?
いつスレッドの話になった?
704:デフォルトの名無しさん
05/10/18 03:46:05
XMLをQueueメモリに保存し、適時取り出して再度Xmlとし、処理していきたい
と考えています。
次のようなコードでQueueに書き込む分にははエラーは出ませんが、
Dim WriteQueue As Queue = New Queue
Dim xmlDoc As New System.Xml.XmlDocument
(ここにXMLを構築するコードを書き込んでいます)
WriteQueue.Enqueue(xmlDoc)
DequeueメソッドでXMLに書き戻すのがうまくいきません。Queueに書き込んだ
ものとソックリ同じ物を、新しく作成したXmlDocumentとしたい(つまり、コピー
を作る)んですが・・・・・
705:デフォルトの名無しさん
05/10/18 05:52:26
>>702
話がずれてる上に間違ってる。
>他スレッドがよんだ自スレッドのメソッドがコントロールをそうさするのはok
okじゃないから Control.Invoke / BeginInvoke を使おうな。
706:デフォルトの名無しさん
05/10/18 06:31:27
>>704
インスタンスとか参照とか理解してなさそうだが……。
取りあえずClonseメソッド。
707:デフォルトの名無しさん
05/10/20 07:09:58
.netではDDE通信が推奨されていないらしいですが
代わりにどのような方法が推奨されているでしょうか?
708:最凶VB厨房
05/10/20 07:12:12
リモチン?
709:デフォルトの名無しさん
05/10/20 09:34:36
>>707
.net Remoting
情報少ないけど、ほぼ唯一でてるオレンジの本見れば、DDE程度はOK。
ただ、自アプリ同士の連携の場合だからね。
昔のOfficeとかがDDEを提供していた(?)のと同じように、OfficeとかがRemoteオブジェクトを提供してるわけじゃないので。
(.netの弱点ってネイティブでOffice連携が無いことなように思える)
710:デフォルトの名無しさん
05/10/20 10:11:43
>>708, 709
thx.調べてみます。
代わりにソケット通信っていうのはありでしょうか?
711:デフォルトの名無しさん
05/10/20 12:13:24
>>710
.NET RemotingはTCP/HTTPをベースにしてる(内部で利用している)。
712:デフォルトの名無しさん
05/10/20 12:46:14
>>711
さんくす。じゃ、簡単にソケット通信でやっちゃおうかな
713:デフォルトの名無しさん
05/10/20 13:01:00
ソケットは単なる文字列の送受信。
リモーティングはシリアル化されたオブジェクトのやり取り。
目的が全く違います。
714:デフォルトの名無しさん
05/10/20 13:27:10
質問です。
スタートアップに指定したフォームを判断することはできますか?
if Form1 = Application.StartupForm then
みたいなことをしたいんですがー。。
715:デフォルトの名無しさん
05/10/20 14:00:22
画面から『閉じる(×)』ボタンを非表示にしたいです。
最大化・最小化は残したいので、ControlBoxでは実現できませんでした。
何かいい方法はないでしょうか
716:デフォルトの名無しさん
05/10/20 14:54:17
Visual Studio の操作?に関してになるのですが、
C# の場合 メソッドのオーバーライドを行なう際は
Protected Override とタイプすると、インテリセンスが開き、
その中からオーバーライド可能なメソッドを選択すると自動的に
シグネチャ含めてコードが追加されるのですが、VB.NET の場合は
Protected Overrides とタイプしてもインテリセンスが開きません。
VB.NET の場合は、エディタの左上から (overrides) を選択し、
その右からオーバーライドしたいメソッドを選択する、といったように
マウスでカチカチやるのが一般的なのでしょうか?
717:デフォルトの名無しさん
05/10/20 18:28:22
>>715
無効化なら
URLリンク(www.atmarkit.co.jp)
だが、さて非表示にはできたかねぇ……。
718:デフォルトの名無しさん
05/10/20 19:06:49
>>714
プログラマがどれで起動したか把握できないってのはどうよ?
719:デフォルトの名無しさん
05/10/20 19:44:58
ASP.NET、VB.NETで開発しております。
ログをテキストファイルに出力するような共通関数を作成したいのですが
どうにも行き詰って困っております。
wwwroot下にフォルダを作成し、その下に動的にログファイルを作成したいのですが
何かいい方法ありますでしょうか?
よろしくお願いします。
720:デフォルトの名無しさん
05/10/20 19:46:50
どこで行き詰まったの?
721:デフォルトの名無しさん
05/10/20 23:03:31
>ソケットは単なる文字列の送受信。
やはりそういうことか!
722:デフォルトの名無しさん
05/10/21 09:28:57
でも簡単なやり取りだけならソケット通信でもいいよね?
723:デフォルトの名無しさん
05/10/21 09:51:56
>>722
だから自分で目的を考えてでしょ。
単なる非同期・同期での通信ならばソケットでコマンドで十分。
イベント+情報の送受信ならばリモーティング。
724:デフォルトの名無しさん
05/10/21 13:32:37
VB.NETの勉強としてTextBoxクラスを継承して
書式チェック機能を持ったTextBoxを作成しようとしています。
Validatingイベント内で、書式チェックエラーとなった場合に
フォーカスの移動をさせないようにしたのですが
Formの閉じるボタンを押しても同イベントが発生して
閉じるボタンが無効になってしまいます。
イベント内でイベントをキャンセルしているので当然なのですが
チェックを行ってエラー時はフォーカスを移動させないが
特定の処理(画面を閉じるなど)の場合はチェックしない
という機能を作ろうとした場合、どのようにすればいいでしょうか?
先人達の知恵を貸してください。
725:デフォルトの名無しさん
05/10/21 20:28:20
>>724
>閉じるボタンが無効になってしまいます。
普通そんな事にはならないと思うけど。
閉じるボタンってウィンドウの右上のXのことだよねえ?
フォーム上にフォームを閉じるためのコマンドボタンが用意してあって、
それをクリックしようとしてもクリックできない、なんてオチだったりして。
726:デフォルトの名無しさん
05/10/22 08:06:42
>何かいい方法ありますでしょうか?
log4net
EntLib/LoggingAB
727:デフォルトの名無しさん
05/10/22 16:45:43
TextBox1 - TextBox10 の .Text にすべて"*"を表示させたいのですが、
それぞれに
TextBox1.Text = "*"
TextBox2.Text = "*"
:
:
;
TextBox10.Text = "*"
より頭のいい方法を教えていただきたいのですが、
728:デフォルトの名無しさん
05/10/22 17:03:24
>>727
TextBox配列にいったん格納してからループで値セット、ってあまり手間は変わらんか。
729:最凶VB厨房
05/10/22 17:14:01
TextBox型のものに"*"をFor Eachでセットしていくとか。
730:デフォルトの名無しさん
05/10/22 18:00:23
>>728, >>729
727ですが、私は初心者ですので、
具体的にお願いできますでしょうか?
教えていただいてるのにすみません。。。
731:デフォルトの名無しさん
05/10/22 18:09:10
初心者ならまずは地道にやっとけってこった
732:デフォルトの名無しさん
05/10/22 18:54:52
>>727
URLリンク(dobon.net)
↑のようなことをやりたいってわけじゃないってこと?
733:最凶VB厨房
05/10/22 20:51:25
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Const kome As String = "*"
Dim c As Control
For Each c In Me.Controls'フォームのコントロール全部に対して
If c.GetType() Is GetType(TextBox) Then'テキストボックス型のものなら
Dim t As TextBox
t = CType(c, TextBox)'コントロールをテキストボックスとして扱って
t.Text = kome'テキストプロパティに*をセット
End If
Next'していく
End Sub'とかネ
734:デフォルトの名無しさん
05/10/22 21:00:24
>>733
ControlにTextがあるんだからCType(c, TextBox)は必要ないぜ。
それより「結果を表示するTextBox11まで*になってしまいましたどうしたらいいですか」とか返されそうだな。
735:デフォルトの名無しさん
05/10/22 21:01:41
あ、それと型判定は
If TypeOf c Is TextBox Then
な。
736:最凶VB厨房
05/10/22 21:06:09
具体的な指摘どもども。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Const kome As String = "*"
Dim c As Control
For Each c In Me.Controls 'フォームのコントロール全部に対して
If TypeOf c Is TextBox Then 'テキストボックス型のものなら
c.Text = kome 'テキストプロパティに*をセット
End If
Next 'していく
End Sub 'とか
737:デフォルトの名無しさん
05/10/22 21:07:10
>>733
そんな気張って答えるような質問とも思えんが。。
>>734
突っ込む奴が馬鹿だと萎えるなw
738:最凶VB厨房
05/10/22 21:09:46
>>737
最近コードを書いてなかったので
ちょっとしたリハビリや。
739:デフォルトの名無しさん
05/10/22 21:15:06
第一さ、そういうの「頭のいい方法」って呼んでよいものかどうか。。
サンプルコードとしてもあまり良質と思えないし。
俺がサンプルかくならせめて、
(1) Nameが"TextBox*"に一致するTextBoxのコレクションを作る関数を示す
(2) Nameが"TextBox*"に一致するTextBoxのコレクションを内部的に作って、それを
操作するクラスを示す
このぐらいするよ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4705日前に更新/282 KB
担当:undef