ここは、質問者に説教するスレではありません。 ここは、質問者のプログラミングセンスを測るスレではありません。 ここは、質問者のプログラマ適性を診断するスレではありません。 ここは、質問者の精神病・神経症を診断するスレではありません。
ここは、質問者が質問をするスレです ここは、質問者が質問をROM者に見せるためだけのスレです ここは、VB.NETプログラミング言語のためのスレです ここにはVB.NETの質問以外載せてはなりません (回答や誘導、その他質問ではないものも禁止です)
7 :
デフォルトの名無しさん :2007/03/05(月) 12:48:01
テンプレ乙 質問だがKeyDuplication(キー重複)エラーの時 ある程度ピンポイントでキャッチできる奴ない? 例えば同時実行エラーならDBConcurrencyException って感じで
残りのテンプレ ,===,====、 _.||___|_____||_ .. ∧_∧ /||___|^ ∧_∧ .. (・ω・`)//|| |口| |ω・` ) . ./(^(^ .//||...|| |口| |c ) ..... ∧_∧/ // ||...|| |口| ||し ....... (・ω・`) //.... ||...|| |口| || 楽しく使ってね /(^(^ // .... .||...|| |口| || 仲良く使ってね "" :::'' |/ |/ '' " ::: ⌒ :: ⌒⌒⌒ :: "" ` :: ,, ::::: ,, ; ̄ ̄ ̄ "、 :::: " ,, , ::: " :: " ::::
むしろこういうスレは殺伐としているべきだと思うんだ
ボコボコボコボコボコボコボコボコボコボコボコボコボコボコ コボコボコボコボコボコボコボコボコボコボコボコボコボコボコ ボコボコボコボコ∧_∧ ∧_∧∧_∧ボコボコボコボコ ボコボコ∧_∧´・ω・)(´・ω・`)・ω・`∧_∧ボコボコ ホコボコ(´・ω・)∧_,∧lll ∪)∧_∧・ω・`)ボコボコ ボコボコ∧_∧ ´・ω∧∪∧(・ω・∧_∧⊂)ボコボコ コボコ(´・ω・)≡つ);;)ω(;;(⊂≡(・ω・`)___\ボコボコ ボコボ(っ つ=つ(っ ⊂)⊂=⊂≡ ⊂) \ )ボコボコ ボコボコ/∧_∧∧ ↑質問者 ∧∧_∧\ボコボコ ボコボ( ( ´・ω)( ´・)( )` )(ω・` ) )ボコボコ コボコ(っ つ/ )( ) \ ⊂)ボコボコ ボコボ/ )`u-u'. バ∪ ̄∪バ`u-u' \ボコボコ 楽しく使ってね ボコ( / ̄∪ボコボコボコボコボコボコボコ∪ ̄\ )ボコボコ 仲良く使ってね ボコボコボコボコボコボコボコボコボコボコボコボコボコボコ コボコボコボコボコボコボコボコボコボコボコボコボコボコボコ こうか?
そうそう、そんな感じで
なるほど。ずれたらいいわけですね
13 :
デフォルトの名無しさん :2007/03/05(月) 20:41:49
マイクロソフトが出してるVB.NET本(黄色いやつで上級とか初級とか中級とかとにかくたくさんあるやつ)で、
ウラにかかれてる項目の中の「ネットワーク」の項がアクティブになってる本がほしいんだけど
一度もみたことありません。持ってる人、タイトルおしえてくださいませ
>>8 某さいたまなところで滑り降りるところだけが盗まれまくったらしいね
盗んだ奴の顔がみてみたい
str.replace("a","b") とするとすべてのaがbに置き換わりますが 最初のaだけがbに置き換わるreplaceはないでしょうか?
Regex で "^a" を "b"に置換
Regex.Replace なら最大回数を指定できるオーバーロードがあるな
そういやregexってのがあったな
VB.NET から C#.NET への移行はさほど難しい話ではないようですが、 前スレではちらほら、「C# は Java に近い ・ むしろ C++ にも見える」という書き込みを見かけました これは C#.NET から Java もしくは C++ をあくまでも文法的に習得するのが容易だという意味でとらえてもよろしいでしょうか よっちゃんいか
文法なんて習得する程も無いよ(C++はともかく) 一番の違いはライブラリで、そして C# と VB.NET/VB2005 はそれが共通。
よっちゃんいかに釣られていいか?
22 :
デフォルトの名無しさん :2007/03/06(火) 06:54:32
XMLDataSourceを使ってGridViewにバインドしたいと考えており 以下の単純なXMLファイルを作成したところ問題なくGridViewにバインドされます。 <ファイル管理> <ファイル ID="A" ファイル名="AAAファイル" /> <ファイル ID="B" ファイル名="BBBファイル" /> <ファイル ID="C" ファイル名="CCCファイル" /> </ファイル管理> このXMLファイルには他の定義も必要になるため、もう1階層要素を追加しました。 <どっとねっと> <ファイル管理> <ファイル ID="A" ファイル名="AAAファイル" /> <ファイル ID="B" ファイル名="BBBファイル" /> <ファイル ID="C" ファイル名="CCCファイル" /> </ファイル管理> <別の階層> <システム ID="AAA" /> <システム ID="BBB" /> <システム ID="CCC" /> </別の階層> 今回必要なのはファイル管理以下の一覧なのでXPath式を /どっとねっと/ファイル管理 としたところ画面には何も表示されなくなりました。 どのようにしてファイル管理以下の一覧を取得するのでしょうか? プログラムでDataGridにバインドする前にXMLデータの加工をしてしまえば できると思うのですが、デザイナ画面で実装イメージが確認したいので そのようにしたくはありません。
tga扱えるようになるライブラリありませんか? ネット探しても有料のしか見つかりませんでした。
24 :
デフォルトの名無しさん :2007/03/06(火) 21:31:47
ちょっと質問! プライマリディスプレイのデスクトップに置かれたショートカットからプログラムを起動させる時 サブディスプレイを検出したらサブディスプレイのほうに最大化させてプログラムを表示させたいのですが・・・・ ディスプレイの数や、サイズは取得可能なようですが、そこから2代目のモニタに表示させて最大化 という部分が今一歩思いつかない状態です。 なにかいい案とかないですか? あくまでサブディスプレイはミラーリングのタイプは使用しない という縛りは可能です。 もう、メインディスプレイの右側の領域にくっつくという考え方でいいんでしょうか? 例えば800X600のメインディスプレイに1024X768のサブディスプレイがくっついてたとして 800より大きい値であればサブディスプレイという考え方です。 なんとなくスマートじゃねぇ・・・・orz
25 :
デフォルトの名無しさん :2007/03/06(火) 22:22:48
>>24 かなり冗長でテストもしてないけどこんなのは?
Private Sub VewSubDisplay()
Dim monitor() As System.Windows.Forms.Screen
monitor = System.Windows.Forms.Screen.AllScreens()
Dim length As Integer = monitor.Length
If length > 0 Then
For i As Integer = 0 To monitor.Length
If monitor(i).Equals(System.Windows.Forms.Screen.PrimaryScreen) = False Then
Dim rect As Rectangle = monitor(i).WorkingArea
Me.Bounds = rect
End If
Next
End If
End Sub
26 :
25 :2007/03/06(火) 22:24:23
とりあえずコメントぐらいつけろよな俺・・・
27 :
デフォルトの名無しさん :2007/03/06(火) 22:42:59
>>25 レストンクス!
コメントなくても無問題
みっけたモニタの中で最大の添え字のディスプレイの作業領域で表示させるって事ですね
最大化は必須なのでこれちょこっといじって、まんま使わせてもらうことにしました。
PS.
For i As Integer = 0 To monitor.Length - 1
じゃないと範囲超えちゃいます。
28 :
デフォルトの名無しさん :2007/03/06(火) 22:49:05
最後にはちゃんと御礼書けよ 俺orz
>>25-26 すません、ちょっと色々テンパってたので助かりました。
>>28 しかもしっかり間違いも指摘している
これは間違いなく…感じ悪い
( ゚д゚ )
> Dim rect As Rectangle = monitor(i).WorkingArea > Me.Bounds = rect これでさぶスクリーンに表示できるんだ。 外野だけど勉強になったよ。
31 :
デフォルトの名無しさん :2007/03/06(火) 22:58:10
>>29 orz
ごめんよ・・・ごめんよ
>>25 でも、マジでいいアイデアだとオモタ
.Net Framework 1.1、VB2003で VisibleがfalseのControlを画像にキャプチャする方法ってありませんか? 知ってるかたいましたらお願いします。
34 :
25 :2007/03/06(火) 23:03:29
>>27-29 > 最大の添え字のディスプレイ
というかメインディスプレイかどうかチェックかけて
メインディスプレイじゃない場合、そこに書けという処理。
というわけでモニタが二つ以上のときは
上のだと条件追加してやらいないといけない予感。
あと指摘のミス
実務のほうで・・やべ・・変な汗出てきた
撮影直前に表示じゃダメなん?
>>35 キャプチャするためだけに一瞬表示するのはダメっすね
そのコントロールのコードいじれるならいくらでも じゃなきゃVista以外はむりぽ
>>37 コードはいじれます
.Net2.0のControl.DrawToBitmapの動きを.NET1.1でさせたいんです。
んじゃ、 GraphicsオブジェクトつくってOnPaintに食わせれば描いてくれるよ
DrawToBitmapの実装を真似すればいいと思うんだが
42 :
デフォルトの名無しさん :2007/03/07(水) 16:41:50
.net2.0なんですが Webbrowserでページを読み込んで その中のHtmlElementをInvokeMember("Click")でクリックできることはわかったのですが objectタグで埋め込まれているFlashをクリックできないのでしょうか? 特に複雑なことをしたいのではなくて、yahooのトップにあるようなバナーをクリックしたいだけなんですけど objectのelementから辿ってクリックとかしたいんですけど
すいません、質問させてください。 例えば「AAA BBB」という値が入ったテキストボックスがあるとして、 この時デフォルトではBBB付近でダブルクリックするとBBBのみが選択状態になります。 これを全選択にしたいと思い、ダブルクリックのイベントにSelectAllを書いたのですが、一度BBBが選択されたあと、全体が選択状態になる、といった動きになりました。 ダブルクリックのイベントを無効にしたのち、SelectAllすればいいのかな・・・?と思うのですが、無効の仕方がわかりません。 どなたか、方法を伝授していただけたら幸いです。 宜しくお願いします。
ダブルクリックのイベントを無効にしたら SelectAllすらできないんじゃ…
時間測ってクリック2回を捕まえてみるとか
>>44 言葉足らずでした。
例えばKeyDownなら、e.Handled = trueでイベントが処理された、とみなされますが、
そんな感じでダブルクリックの時も出来ないかな〜、というわけです。
>>46 TextBox継承して
こんな感じじゃダメ?
Public Class hoge
Inherits TextBox
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case &H203
Me.SelectAll()
Case Else
MyBase.WndProc(m)
End Select
End Sub
End Class
>>47 継承というのをはじめてやったのでてこずりましたが、無事できました。
ありがとうございました。
49 :
デフォルトの名無しさん :2007/03/08(木) 19:01:17
VB.NETでフォームアプリケーション作ってて 継承が初めてってことはありえない
51 :
デフォルトの名無しさん :2007/03/08(木) 20:05:27
スポーツ少女に処女膜が無いようなもんだな
それ違う。とても違う。
54 :
デフォルトの名無しさん :2007/03/08(木) 23:35:50
へやにいるからいおまぃらこいよwwwwww
クラスを自分で一つも定義せずにフォームアプリケーションを作るのは 一応可能みたいだな
ADO.NETの話です。 ExecuteNonQuery メソッドを用いてUPDATE文を実行して、その返り値が0 だった時は、それが他ユーザによる更新が原因であるのか、 ネットワークやハードウェアの障害によるエラーであるのかのチェックは 出来ない。ということなのでしょうか。 あえてチェックをする場合は、再度SELECT文を使って接続してみるしか ないのでしょうか。
>>56 そういう場合は0ではなくて例外が起きる。
>>57 質問前に、msdnを読んだつもりだったのですが、例外の欄に書いてありましたね。
すみません。
InvalidOperationException(接続が存在しません。 または、接続が開いていません)
となると、以下のような解釈でいいということですよね?
例外が戻ってきた:ネットなど接続のエラー
0が戻ってきた:開いている間に他のユーザがデータを書き換えるなどしたため、
updateで更新されなかった。
P2Pのshareの逃げるバージョン情報のウィンドウを作りたい。 MouseEnterイベントでやるのかな? 意外と難しい。
Point lastPos; private void timer1_Tick(object sender, EventArgs e){ Point current = System.Windows.Forms.Cursor.Position; if (this.Bounds.Contains(p)){ int dx = current.X - lastPos.X; int dy = current.Y - lastPos.Y; Point loc = this.Location; loc.Offset((int)((float)dx * 1.0f), (int)((float)dy * 1.0f)); this.Location = loc; } lastPos = current; this.Refresh(); } こんな感じ?C#だけど
61 :
60 :2007/03/09(金) 17:28:57
ゴミが残ってた 7行目はloc.Offset(dx , dy);でいい
>>60 ほほう。どうもありがとうございます。
参考にさせてもらいます。
チラウラなんだが、Vistaに標準で.NET3.0&コンソールコンパイラが入っているね。 某家電屋の店頭のVistaPCでHello,Worldを実行できたよ。
だんだんMSもOSを触る環境から使う環境へと意識転換してきてるんだな
使う環境にコンパイラいらんだろ
.NET のクラスライブラリには CodeDOM 関連のものも含まれていてだな
実行時にソースコードをコンパイルしてスクリプトみたいに実行できたりしてだな
Hello Worldとかありきたりだな もっと個性ある今風の言葉にしようぜ。
こんにちは、世界
WellCome DeathMarch
Goodbye World
うわっつまんねー^^
自演乙
>>73 かわいそうに。
VB厨はipdわからないから、ID丸見えなのに
誰が自演かわからないんだろうねw
すいません 文字列のピクセル長を知るためにはどうすればよいのでしょうか? よろしくお願いします。
Graphicsのメンバをよく眺めてみ
>>76 その質問では意味がわからんが、漏れがエスパーするに、文字列を描画するのに必要な領域の幅を知りたいというんだな?
TextRenderer.MeasureText() か Graphics.MeasureString() を使え。
79 :
76 :2007/03/10(土) 21:21:07
80 :
デフォルトの名無しさん :2007/03/11(日) 08:57:05
Visual Studioのツールボックスみたいなコントロールは標準であるのでしょうか? TreeViewコントロールのプロパティをいじって似たものを作ってみたのですが、 動作的にはOKでも、ノード別に見た目の文字位置とか色とかの調整ができない?ので 今ひとつでした。 よろしくお願いします。
81 :
デフォルトの名無しさん :2007/03/11(日) 23:32:35
>>80 ピンポイントでは、そのようなコントロールはないと思う
CodeProjectで
>>80 が求めるものを見た記憶があるなぁ・・・
日本のサイトではあの手のサンプルないんじゃないかな?
あそこで多分検索したらあると思うよ
C#かVBかは忘れちゃったけどw
82 :
80 :2007/03/12(月) 08:19:57
>81 標準ではないですか。。。 codeproject探してみます。 もしくはやったことないけどオーナードローを検討してみます。 ありがとうございました。
DataGridでマウスでドラッグして行を選択するのだけど、mousemoveイベントの 間隔が遅すぎてまだらにしか選択されないんです(ゆっくりなら全部選択される) この間隔ってどこかで設定とか出来る?
もう一つDataGrid そうやってドラッグして選択していった時に、ドラッグしたまま下にはみ出すと スクロールしながら次々選択されてくってのは何イベント使えばいい? mouseleaveだと上に抜けたか下に抜けたか分からないし…
それ本当にDataGridか?
どぼん参考にアクセスのlistboxみたいな動作するようにしてるけど (rowheader無しで1行全部選択される)それ以外は普通のdatagridだけど
小出しにされてもなあ・・なぞなぞじゃないんだし とりあえず手元に現物が無いから、そっちで原因を洗うしかないんじゃないか?
>>86 DataGridViewをフォームに貼り付けて
こんな感じはダメ?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As New DataTable("test")
a.Columns.Add(New DataColumn("1"))
a.Columns.Add(New DataColumn("2"))
a.Columns.Add(New DataColumn("3"))
a.Columns.Add(New DataColumn("4"))
For i As Integer = 0 To 49
Dim r1 As DataRow = a.NewRow
r1(0) = "a"
r1(1) = "b"
r1(2) = "c"
r1(3) = "d"
a.Rows.Add(r1)
Next
DataGridView1.DataSource = a
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End Sub
89 :
デフォルトの名無しさん :2007/03/13(火) 10:58:06
質問があります。 ActiveXのレジストリ登録についてなのですが、 ActiveXを使うには、DLLをレジストリ登録すると思います。 そのとき、 C:\test01\hoge.dll C:\test02\hoge.dll とテストバージョンを2つ作ったとして、両方ともレジストリ登録したとしたら、 どちらが適用されるのでしょうか? regsvr32 /s C:\test01\hoge.dll regsvr32 /s C:\test02\hoge.dll ↓ piyo.exe また、regeditでいちいち検索せずに、hoge.dllが今どういう登録がされているのか を調べるとしたら、どうすれば良いのでしょうか?
>>89 VB.NETで作ったCOMならregsvr32ではなく、regasmを使え。
普通のActiveXの話ならすれ違いっぽいが一応答えておこう。
基本は後勝ち。OleView.exeで調べる。
>>90 「後勝ち」
確認しました。ありがとうございます。
regsvr32 /s C:\test01\hoge.dll
↓
regsvr32 /s C:\test02\hoge.dll
とやったら、C:\test01\hoge.dll が C:\test02\hoge.dll で上書きされる
ようですね。
確か1とか2とか憑かなかったっけ?
COMはGUIDとか使ってそれなりに複雑な固体識別してたはずだよね。 っていうか、上書きって意味わからんw
全く同じCLSID, ProgID持ってるんだろ
95 :
デフォルトの名無しさん :2007/03/14(水) 11:00:29
質問です! 下のようなCSVファイルがあるとします。だいたい1000行くらいのログです。 aaa,a,aaa,01,01 bbb,b,bbb,01,02 ccc,c,ccc,02,01 ccc,c,ccc,02,02 ・・・・・ このCSVにおいて例えば左から4番目のカラムが04のレコードのレコード数を取得したいのです。 既存アプリが吐くログなのでカラム名もないしSQLが使えるかも不明です。 VBSかVB.net2003で上記プログラムを作成したいのですが適切なロジックが浮かびません。 Do〜Loopで一行ずつ読み込んでカンマでセパレートして配列変数に代入し、 検索条件にヒットしたらカウンタを1UPしていく方法くらいしか思い浮かばないのですが、 ほかにもっとシンプルな方法をご存知の方は教えてください。
>>95 その方法でいいじゃん。正規表現とか覚えてる間に作れちゃうよ。
97 :
デフォルトの名無しさん :2007/03/14(水) 12:59:59
DataSetに展開してSELECTする手もあるな
98 :
デフォルトの名無しさん :2007/03/14(水) 13:00:32
>>95 ADO.NETでCSV読ませれば?
そんでSQLでやるべし
ODBC Text DriverはMDACにまだ入ってるのかな?そろそろレガシーな気もする。 ReadLineしてString.Splitで十分な気もするが、 VB.NET的にはMicrosoft.VisualBasic.FileIO.TextFieldParserを使うのが推奨だろう。
101 :
デフォルトの名無しさん :2007/03/14(水) 14:34:24
VB.NETの型付データセットでデータ取得する時にNULLを扱いたいがエラーにはしたくない Nothing返すようにしてるけど・・・なんとなく外道なのかな? 2005ならNullable.型 で返すんだけど2003だと如何するのがオヌヌメなんだろう・・・
1000行程度なら、オレならエクセルで読み込んで処理するが…どうしてもVBなの?
103 :
デフォルトの名無しさん :2007/03/14(水) 16:11:53
すみませんが、こちらでもよろしければ教えてください。よろしくです。 Windows.Form上で使うControlクラスを継承して新しいコントロールを作成し、 そのBaseクラスのプロパティすべてを、一回の属性設定だけでプロパティウインドウに 表示されなくすることは可能でしょうか。 目的はアプリケーションに関係のない項目はプロパティウインドウに表示させず、 関係のあるごく少わずかの項目だけを表示させたいからですが、このためには 一つ一つのプロパティを継承作成して全部そこにAttribuetes設定しないといけないでしょうか? できれば、既存の項目は全部まとめて表示させないようにしてから、自分で追加した プロパティだけを表示させるようにしたいのですが、こうしたことは可能でしょうか? (本件はC#スレッドでもお聞きしていましたがお答えがほしくこちらでも質問させて 戴きました、すみませんよろしくお願いします)
104 :
95 :2007/03/14(水) 16:50:45
VB.NETをまだ勉強していないのですが、よろしければ質問させてください 現在C、C++、WIN32APIを用いてウィンドウアプリを作成しているのですが VB.NETでUIを作成し、Cでイベントハンドラのソースを書くことは可能なのでしょうか? また、その場合CとWIN32のみで作成した場合と処理速度に差がでるのでしょうか? (現在作っているプログラムはリアルタイム処理なため、処理速度が重要) 理由はデータベース関連の書籍やサイトがほとんどVB、C#、perl、JAVAなどのため MFCでUIとデータベースを実装するよりも、VB.NETに移行した方がいいのかと思ったからです C++/CLIなるものがあるようなのですが、何分C以外の言語はほとんど無知なため よろしければご教授願います
>>95 set n=0
for /f "delims=, tokens=4" %%0 in (hoge.csv) do if %%0=04 set /a n+=1
echo %n%
>>105 結局ナニが知りたいのかよく読み取れないが、
とりあえずPInvokeでググってみたらどうかな
cで作ったdll内の関数を呼び出せるか、という意味ならそれは可能。
108 :
105 :2007/03/14(水) 19:31:17
>>107 わかりにくい文章ですいません
VBを使ってウィンドウを作成し、自分でCで作った関数を呼び出して使えるのか
ということが知りたかったんです
どうやら可能なようですね
PInvokeもかなり参考になりました
ありがとうございました
よろしければ、VBでCを呼び出した場合と、WIN32+Cの場合で処理速度に
差がでるか教えていただければ幸いです
wikipediaのVBの概要に
「ただし、実行速度はC/C++で記述したネイティブプログラムに比べ
10倍から20倍遅いと言われている。」
と書いてあったもので、あまりにも処理速度に差がでるならば使えないので・・・
これはCで書いた関数をVBで書き直した場合、これほどの差がでるということなのでしょうか?
>>106 if %%0=04
↓
if %%0==04
>>108 日本のwikipediaなんか話半分に聞いとかなきゃダメでしょw
それたぶんVB6以前の話だと思うし。
VB6だってメモリを直接操作できないことによるオーバーラップがネックになるような
ごく一部の処理(特定の文字列操作)以外はそんな遅くなる理由がないし。
っていうか、あんたの用途に適合的かどうかはあんた自身で試すしかないでしょ。
111 :
105 :2007/03/14(水) 20:39:37
>>108 wikipediaを信頼しすぎたようですね
大丈夫なようで安心しました
時間はかかると思いますが、自分で試して頑張ってみることにします
ありがとうございました
113 :
デフォルトの名無しさん :2007/03/14(水) 21:47:44
10万行くらいあるテキストファイル(1行100文字前後)の最後の100行を 読みたいのだけれどもっとも高速な方法を教えてくれ。
頭から読むしかない。 文字列配列を要素100個分用意して放り込んでいき、 最後まで埋まったら頭から上書きしていく。
115 :
デフォルトの名無しさん :2007/03/14(水) 22:07:49
>114 >頭から読むしかない。 げげ、ほんまかいな。困った。 じゃあ、逆にファイルを書き出すときに末尾に追加するのではなくて、 先頭に行を追加することはできるかい?それが出来れば 読むときは頭から100行読めばいいので。どう?
そんな馬鹿なw 天然無脳(つまり114のことだが)だって1万ページある本の最後の1000行を 書き出すのに巻頭から全部目を通さないだろう
117 :
デフォルトの名無しさん :2007/03/14(水) 22:21:19
>116 その方法を教えてくれ。たのむ。
ケツからファイルポインタをデクリメントしていって1000個目の改行コード探すだけじゃん。 そこから先は普通にテキストとして読めばいい。
119 :
デフォルトの名無しさん :2007/03/14(水) 22:32:41
>118 サンプルコードを教えてくれ。たのむ。俺は、ファイルポインタなんて 使った経験がない。 StreamReaderでファイルを開いてReadLine() で一行ずつなら読める。
氏ねよ
121 :
デフォルトの名無しさん :2007/03/14(水) 22:39:37
>>119 FileStreamクラスを使うんじゃよ
>>113 >>119 ってもしかしてテキストファイルなら、TextBox系でLoadFileしておいてTextを
String変数に代入してLength目から逆追いするってのと同じじゃないだろうか。
それなら直ぐ書けるのじゃないだろうか。
って俺はとてもヒマないからやってはあげはしないがw
あ、ただTextBoxBaseは最大文字数に制限あったっけ??
プログラム始めてから数ヶ月の俺にも出来たぜw
126 :
デフォルトの名無しさん :2007/03/14(水) 23:24:16
>125 それを俺に教えてくれ。たのむ。
>>126 Dim a As New IO.FileStream("C:\a.txt", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
Dim count As Integer
Dim Bytes(a.Length - 1) As Byte
For I As Integer = a.Length - 2 To 0 Step -1
a.Position = I
If a.ReadByte() = 13 And a.ReadByte() = 10 Then
count += 1
If count = 1000 Then
a.Read(Bytes, 0, a.Length - I)
TextBox1.Text = System.Text.Encoding.GetEncoding("Shift-jis").GetString(Bytes)
Exit For
End If
End If
Next
a.Close()
エンコードはシフトJIS
勘で作ったから保障はしないよ
色んな物がメチャクチャだなぁ
>Dim Bytes(a.Length - 1) As Byte これで台無しだな
>>126 だからFileStreamクラスを調べろっつってんだろがボケ!!!
でもSeekとかPositionの性能が本当に良いかどうかは知らんよ。
131 :
デフォルトの名無しさん :2007/03/15(木) 00:01:41
>127 おおーーー、超サンキュウ! さっそく試してみるわ。 >130 >ボケ だから質問してるんだよ。俺に優しく教えろ!
だから悩んだり試したりする前にMSDNに目を通せと(ry
134 :
デフォルトの名無しさん :2007/03/15(木) 05:04:45
フォーム上にお絵かきするソフトで下記の例外がまれに発生するんだけど、 なんのことやらさっぱり分からん。 「InvalidOperationException:バッファ操作が現在進行中であるため、BufferedGraphicsContext を消去できません」 作り方が悪いのか? どういう場合に発生する例外なのか、VBプロフェッショナル達よ、教えてくれ。
頭が悪いんだよ、きっと。 いや、確実に。 作り方が悪いのか?、だと? お前さん以外にそういうトラブルを申し立てている人間がいるのかよw
>>125 こんなのでどうか
Public Function ReadTailLines(ByVal filename As String, ByVal lineCount As Integer)
Dim sep() As String = {vbCrLf}
Using ifs As IO.FileStream = IO.File.OpenRead(filename)
Dim allBuf As New List(Of Byte)
Dim len As Integer = lineCount * 100
Dim pos As Long = ifs.Length
Dim lines() As String
Do
pos -= len
If pos < 0 Then
len += pos
pos = 0
End If
Dim tmpBuf(len) As Byte
ifs.Seek(pos, IO.SeekOrigin.Begin)
ifs.Read(tmpBuf, 0, len)
allBuf.InsertRange(0, tmpBuf)
lines = Text.Encoding.Default.GetString(allBuf.ToArray(), 0, allBuf.Count).Split(sep, StringSplitOptions.None)
Loop While pos > 0 And lines.Length < lineCount
(続く)
If lines.Length <= lineCount Then Return lines Else Dim ret(lineCount - 1) As String Array.Copy(lines, lines.Length - lineCount, ret, 0, lineCount) Return ret End If End Using End Function 初めてVB.NETでプログラム組んだのでちょいと汚いがな
139 :
137 :2007/03/15(木) 09:52:57
>>134 どんな時にその例外が投げられるかはMSDN見れ。
なんで、もしくはどこで、出てるのかは
お前さんにしかわからない。
とりあえずコード上での発生箇所を探るしかないとおもう
例外発生ネタは発生個所を晒してもらわないことには回答のしようがないんだよな
142 :
デフォルトの名無しさん :2007/03/15(木) 12:50:39
134だけど、例外の発生箇所は下記のとおりだよ。 場所 System.Drawing.BufferedGraphicsContext.Dispose(Boolean disposing) 場所 System.Drawing.BufferedGraphicsContext.Dispose() 場所 System.Drawing.BufferedGraphicsContext.AllocBufferInTempManager(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle) 場所 System.Drawing.BufferedGraphicsContext.AllocBuffer(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle) 場所 System.Drawing.BufferedGraphicsContext.Allocate(IntPtr targetDC, Rectangle targetRectangle) 場所 System.Windows.Forms.Control.WmPaint(Message& m) 場所 System.Windows.Forms.Control.WndProc(Message& m) 場所 System.Windows.Forms.ButtonBase.WndProc(Message& m) 場所 System.Windows.Forms.Button.WndProc(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 自分の作ったコード内ではないので、困ってるんだよ。
そんな内部のことはどうでもいいから最後に実行された自分のコードを確認してくれ
>>142 > 自分の作ったコード内ではないので、困ってるんだよ。
俺たちも自分の作ったコード内じゃないことの上にソースすらないからどうしようもないんよ(・ω・)
>>144 ソースがないと直しようがないじゃないか・・・
なんか ちらつき防止のダブルバッファの使い方を
間違えたんじゃないかと思うんだが?
どうなの、詳しい人?
それと、思い出したんだが.VisualStudioに逆アセンブラがついてた気がする。
難読化されていなかったらソース解析できる可能性があるよ。
147 :
デフォルトの名無しさん :2007/03/15(木) 14:49:56
>137 誰かこれをVB.NET2003に翻訳してくれ。たのむ。
148 :
デフォルトの名無しさん :2007/03/15(木) 16:47:19
VB.netを使って、サーバーやサイト上のデータ(htmlとかtxtとか)をダウンロードし、 PC内にためこんでデータベース化するソフトを作りたいんですが、 どういう機能を使えばいいのかわかりません。 どういう機能を使えばweb上のデータをDLできるのでしょうか?ADO?ASP? また、それを学ぶのにお勧めの本などありましたら教えていただけると幸いです<(_ _)>
150 :
デフォルトの名無しさん :2007/03/15(木) 18:43:47
VB.NETで作成したEXEファイルを自動的に配布するツールとかないですかね? クライアントはIEが前提で ノータッチデプロイメントでいいやって思ってたら、社外からのインターネットアクセスはTAMってやつが邪魔するのよ
151 :
デフォルトの名無しさん :2007/03/15(木) 19:00:29
んーーーーーいろいろ考えたけど IISにローカルのEXEファイルとサーバサイドのファイル更新日時比較するスクリプト仕込んだポータルサイトを置いといて そのスクリプトでFTPダウンロードする方式しか思いつかんな でもかっこ悪いよなこんなやり方 セキュリティ警告のダイアログがウザそうだし
フロッピーで郵送
153 :
デフォルトの名無しさん :2007/03/16(金) 00:00:19
if x < 1e10 then って書いたら、勝手に if x < 10000000000 then ってなるのだが、ゼロが並んでいると分かりにくいので、1e10のまま にしたいのだが、方法はあるか?
VBって16進も勝手に整形するよね。もうアホかと。 Const tenBillion as Integer = 1000000000 とか、 if x < 10^10 then ぐらいか、手の打ち所は?
Int64.Parse( "1e+10", NumberStyles.AllowExponent ) ww
>>137 それだと、lines.Length=lineCountのとき、戻り値の最初の行が途中からにならないか。
158 :
デフォルトの名無しさん :2007/03/16(金) 04:51:37
VB.NET2003でソフトを動作させていると IOExceptionが発生し、内容は このコマンドを処理するのに必要な記憶域をサーバーで確保できません こんなエラーが時々出る様子 やっている処理は以下のようなもの(普通にありえないんだが別会社のソフトの関係で仕方なくこうなっている) OSはすべてXPのSP2 ウィルスバスターインスコ済み 一定間隔(処理完了から次の処理開始までが10秒ほど) PC2〜10からPC1にある大量のファイル(10000ほどある時もある)を全てなめて計算しているんだが このときに出ている模様 で、検索してみるとサービスで使用しているスタック領域が不足しているので(XPのデフォは15)、これを現在の値から引き上げてやる模様 これが不足する理由ってのがよくわからないけど、他の人は単純に20とか30にまで引き上げてやれば解決しているみたい 外部から共有フォルダに接続してガリガリ読み込むと単純にネットワークサービスが使うメモリが不足するって事なのかな? あと、これは・・・PC1に対して行うのかPC2〜10に対して行うんだろうか・・・ PC1だとは思うけどレジストリなのでおいそれと変えたくない予感 もし、何か知ってる人居たら教えてくれないか?
>>159 その質問に答えられるのはエスパーかペテン師ぐらいだろう。
VB.NET2003でどんなソフトを作ってんのよ。WinFormアプリかサービスか、
通信は共有フォルダなのか独自にやってるのかはっきりしろ。
>>160 ごめ、説明不足
WinFormアプリで
PC1の共有フォルダを介してPC1のファイルを
PC2〜10のWinFormアプリ各々がチェックしに行ってる状態
PC1のレジストリにはIRPStackSizeの項目は設定されていない
また、パフォーマンスの詳細設定で
パフォーマンスの優先はプログラム
メモリ使用量はプログラム
なぜか仮想メモリは370〜700固定
IRPStackSizeの変更後の値をネットで調べると15が多いようだが
マージンとってそれよりも大きな値(20〜30とか)に設定しても大丈夫なのかな?
出来れば設定値の基準値が知りたいところではあるけれど・・・
また、PC1では基本的に操作しないのでパフォーマンス設定も
サーバOSのデフォのように変えてやったほうがいいんだろうか?
PC1の大まかなスペックはP4 2.8Gでメモリ512M
ん〜・・・説明へたでゴメ
163 :
デフォルトの名無しさん :2007/03/16(金) 12:45:40
TextBoxのMaxLengthプロパティってディフォルトで32767文字もあるけれど、 10文字で十分なのだけれど、この値が大きくても小さくても、プログラム 起動してタスクマネジャでメモリ使用量比べても、余り違わないのだけれど、 これはどういうこと?1000個のTextBoxでテストしてみたが良く分からない。
入力を制限しているだけでそれ以上の意味はない
165 :
デフォルトの名無しさん :2007/03/16(金) 12:55:23
>164 知らんかった。39!
166 :
デフォルトの名無しさん :2007/03/16(金) 13:41:02
馬鹿のイメージでは、メモリアロケーションしてるんかい? きょうびの高級言語、そんなにせこせこしてねーよ。
意味が分からない
168 :
デフォルトの名無しさん :2007/03/16(金) 19:06:31
質問、Excelなんかが公開してるCOMオートメーションをVB.NETから使う時なんですが。 Excel側のイベントでチェックボックスのチェック状態を変更すると、以下の例外が出ます。 System.Reflection.TargetInvocationException' の初回例外が mscorlib.dll で発生しました。 COMのイベント内で自アプリのフォーム上のコントロールなんかを操作ってどうやったらいいでしょう。 とりあえずExcel側で新しいブックが作成された時のイベント(NewWorkbook)を使ってみたサンプルが 以下です。 Public Class Form1 Private WithEvents m_objExcel As Excel.Application Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load m_objExcel = New Excel.Application m_objExcel.Visible = True CheckBox1.Checked = False End Sub Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed m_objExcel = Nothing End Sub Private Sub m_objExcel_NewWorkbook(ByVal Wb As Excel.Workbook) Handles m_objExcel.NewWorkbook CheckBox1.Focus() CheckBox1.Checked = True End Sub End Class VB6だと動きますが、やっぱりVB.NETだとお作法が違いますよね
ワロタ
おまえらって賢いな
171 :
168 :2007/03/18(日) 01:11:07
解決しました .NET Fremawork1.1のC#しか扱ったことなかったのですが、2.0以降ではサブスレッドから Windowのコントロールにアクセスすると例外が起こるんですね。 1.1の時はたまたま動いていたと。 orz ちなみにInvoke()呼び出しと、m_objExcelの操作をサブスレッドで実行するように変更したら 動くようになりました。 めったに.NETのC#もVBも使わないんで結構忘れますね。 あと書き忘れてましたが VisualStudio2005使ってます。(最近買いました)
>>171 ついでにCOM相互運用とかも見とくといいんでない?
自分しか使わないもんなら不要。 それで困らなければ不要。 立ち上げてすぐ落とすようなもんなら大抵不要。 そうでなければ必須。
>>172 ちょうどHELPでそこ読みながらやってました
でも.NETメインじゃないんで熟読するの辛いですね
>>173 やらないとアプリ終了時に例外が出ますね
でも、やらなくてもCOMのローカルサーバーはちゃんと終了するんで
参照カウントはデクリメント(Release)されてるのかも
177 :
デフォルトの名無しさん :2007/03/18(日) 12:09:49
>>173 やっとかないアンマネージドリソースはフレームワークが勝手に開放するような仕組みもって無いんで解放できないんじゃ・・・?
というわけで仕方なくCOM使う場合は必ず使ってる
ただ、ラッパクラスAをさらにラップしたクラスB作ったら、Bの解放のタイミングでフレームワークがCOMオブジェクトリリースしてくれないかな?
とか淡い期待抱いてるけど
>>173 使うことが推奨だが、
>COM オブジェクトを扱う場合は、参照の解放を常に意識する必要があります。
>使用した COM オブジェクトの参照カウントが、正しくデクリメントされていないと「メモリ リーク」を起こします。
は明らかな間違い。いい加減なおして欲しいよ。
179 :
デフォルトの名無しさん :2007/03/18(日) 12:35:03
>>178 何が間違ってんだ、とぼけたこと抜かしてんなよボケ
>>180 >COM オブジェクトを扱う場合は、参照の解放を常に意識する必要があります。
COM オブジェクトを扱う場合は、参照の解放を意識する必要があります。
>使用した COM オブジェクトの参照カウントが、正しくデクリメントされていないと「メモリ リーク」を起こします。
使用したRCWの参照カウントが正しくデクリメントされていないと期待するタイミングでCOM オブジェクトが開放されません。
そんな文章の校正屋みたいなことして楽しいのかね。奇特な奴。 どうせ何か書くなら物事自分の頭でまとめた結果をアウトプットしろよ
そりゃま、「全部GCでOKww手動でやる奴は馬鹿!」とか書いたら爆釣りで完全燃焼だろうけどさw
VB6時代のNothing論争に似てる。 Sub XX Dim Obj As New ActiveX.Hoge ' いろいろな処理 Set Obj = Nothing End Sub 最後のNothingがないとメモリーリークが起きると言い張るのが必ずいた。 実害はないから頭の悪いプログラマーには全部Nothingを付けされたほうが安全というのが結論だった。
参照にnullを代入したらその時点でGCが動くと信じてる奴は多そう 全く意味はないとMSDNには書いてあるが
dim a as new collection set a=nothing msgbox a.count
全く意味は無いというのは言いすぎだな 超極めて限定的に意味があるシーンもある ……それは意味がないのと同義か
アウトプロセスサーバなCOMでプロセス起動するようなやつだと 解放しないとプロセスが残るやん メモリリークどころじゃないやん その時点でアウトやん
>>190 循環参照とかにつかうんよ
>>191 参照カウントをデクリメントするのと、「解放」するのは全く別物
循環参照でもそれらが孤立してたらGCされるだろ
>>193 .NETはね
VBは参照カウントだから無理
以下VB6の話。スレ違いなのでこれくらいにしておく。 「別の処理」のときにObjを確実に終わらせいたいときはNothingの代入は意味がある。 Sub XX Dim Obj As New ActiveX.Hoge ' いろいろな処理 Set Obj = Nothing ' ここで参照が0になったら即開放される。ここはVB.NETと異なる。 ' 別の処理 End Sub Objはローカルに宣言された変数だからEnd Sub時点でObjは消失してNothingの代入相当の処理 つまり参照カウンタの減算は行われる。このため「別の処理」が存在しないときにNothingの代入は意味がない。
COM使うの止めればいいじゃん。特にサーバでは。
>>196 サーバー用途だとエンタープライズサービスがもろCOM+だからねぇ
198 :
デフォルトの名無しさん :2007/03/18(日) 23:17:22
しかし、これからはComは使わないだろ FW1.1とかでAPI使わずにVB6のMSCOMM使ってる連中が多かったから FW2.0でCOMM通信のコンポーネント追加したんだろう DataGrid使いづらいからってMSFLEXGRID使ってた連中もいたし それでDataGridView追加したんだろうけどなぁ… すべてはCOMから移行していくんだよ全て
とはいえ、マイクロソフトの主要プロダクトはほとんどCOMじゃないか。
>>198 FWってFrameworkのことか?
普通はFxと略すが
Fxは.NET Framework 3.0(旧称WinFX)のことだと誤解されそう
>>200 うはw初めて知った。
それって公式な略称なんですか?
マイクロソフトの出す資料には.NET Fxと書いてある。
204 :
デフォルトの名無しさん :2007/03/18(日) 23:40:14
>>200 FXは俺も3.0とオモタw
そういえばみんなフレームワークなんて呼んでるんだろうな?
俺は普通にフレームワーク2.0とかの書き方なんだが略し方とかあるのか?
VisualStudio2005=VS2005みたいに
205 :
デフォルトの名無しさん :2007/03/18(日) 23:41:16
Clipboard.SetDataObject(Me.PictureBox.Image, True) で、クリップボードにコピーしようとしたら、10回に8回くらいは、以下のエラーが出るんだけれど 何でかな? System.Runtime.InteropServices.ExternalException: 要求されたクリップボード操作が失敗しました。 at System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy)
>>205 他所のアプリがクリップボードをロックしてる時にでもエラーになってんじゃね?
207 :
デフォルトの名無しさん :2007/03/18(日) 23:50:34
>206 サンキュウ。うーん、でもね、他のアプリは確かに沢山動いているけれど、 クリップボードをロックしているはずはないのだけれど。 例えば、このエラーが出たあとPaintを起動してクリップボード使っても 何も問題なく使える。うーん、おかしい。
208 :
デフォルトの名無しさん :2007/03/18(日) 23:53:12
その前後のプログラムのソース見ないといまいちわからんかもしれんなぁ・・・ なにやってんだ? 俺はクリップボード問題なさそうなんだが
209 :
デフォルトの名無しさん :2007/03/19(月) 00:05:22
210 :
デフォルトの名無しさん :2007/03/19(月) 00:15:10
>>209 COM関連だよなInterRop
そうおもってググってみたら同じような質問があった
でうまくいったみたいだけど参考になるかな?
211 :
デフォルトの名無しさん :2007/03/19(月) 00:15:56
普通はSTAThreadAttributeついてると思うんだけど、つけてないの?
>>207 そりゃ問題なく使えて当然。そんな長時間クリップボードをロックしっぱなしするようなことはフツーしない。
214 :
デフォルトの名無しさん :2007/03/19(月) 02:05:54
>211 サンキュウ。 Thread.CurrentThread.ApartmentState = ApartmentState.STA っていうのを入れてみたが効果なし。 おかしい。
>>214 .NETのVersionはなに?.NETのVersionが2.0なら
>Thread.CurrentThread.ApartmentState = ApartmentState.STA
は既にレガシーで機能しない。
メインスレッドは属性[STAThread]で指定し、それ以外のスレッドならスレッド開始前に
Thread.SetApartmentStateで初期化する必要がある。
それからPictureBoxはGUIコンポーネントだから、もしメインスレッド以外から
PictureBox.Imageを参照してるならおかしくなるのは当たり前だけどそこは大丈夫?
マイクロソフトはレガシーって呼ぶのか…。obsoleteとか言ってくんないとわからんw
>>215 もうだめだ .Image が .Invoke に見えた(orz
それは目がピンヴォケですね
…
220 :
デフォルトの名無しさん :2007/03/19(月) 10:06:46
Directoryクラスについて教えてください。 ヘルプに、 「Directory クラスの静的メソッドは、すべてのメソッドでセキュリティ チェックを実行します。 オブジェクトを何回か再利用する場合は、このようなセキュリティ チェックが必ずしも必要では なくなるため、これらの静的メソッドの代わりに DirectoryInfo の対応するインスタンス メソッドを 使用することを検討してください」 とありますがこのセキュリティチェックというのは、Windows固有の機能でのチェックでしょうか、 それともウイルス対策ソフトにチェックをしてもらうということでしょうか? このヘルプの意味するところは、「初回は必ずDirectoryクラスを使い、一度使ったフォルダは すぐ次ではDirectoryInfoクラスを使うようにする」ことで、ウイルスチェックなどがしっかり掛かる ということを意味しているのでしょうか?それともこれらのセキュリティチェックとは、いわゆる コードアクセスセキュリティのようなもののことでしょうか?すみませんがよろしくお願いします。
221 :
デフォルトの名無しさん :2007/03/19(月) 10:09:02
また、逆に言うと、Directoryクラスを使わず、DirectoryInfoクラスだけを使ってしまうと セキュリティチェックが掛からず、ウイルスに汚染されてしまう危険がある、といったことをも 意味するのでしょうか?これもあわせてお願いします。
CASの事だよ。 ウィルスとか関係ない。 DirectoryInfoでもチェックは入るが、 例えばインスタンス作成時だけチェックすれば済むとか、 そういう話だよ。
>>217 とりあえずもちつけ
落ち着いて理論的に考えていけばきっと解決できる問題だ!!
224 :
デフォルトの名無しさん :2007/03/19(月) 10:32:50
>>222 ありがとうございます。やはりコードアクセスセキュリティのことだったのですか、
>DirectoryInfoでもチェックは入るが、
>例えばインスタンス作成時だけチェックすれば済むとか
ということは、ヘルプの言ってることは、原則として、
インスタンス作成時は Direvtoryクラスを使い、
それ以降そのインスタンスの使用は DirevtoryInfoクラスを使ってください
と考えてよいということでしょうか?そしてみなさんもそういう原則を踏襲して
日々コードを作成しておられると考えてよいでしょうか?
>>224 どこをどう読めばそう曲解できるのか不思議だが、書いてあるとおりだよ。
CASにかかる時間が気になるほど回数呼ばないならどっちでもいいってことだ。
226 :
デフォルトの名無しさん :2007/03/19(月) 11:07:57
>>225 たびたびすみませんです。
まだよく理解できていないのですが、DirectoryInfoでもDirectoryでも、
CASに関しては同等なのでしょうか、それともやはり顕著に異なるのでしょうか?
もし同等なのであれば、どちらを使ってもよい、ということになりコード作成で
気にする必要がなくなってありがたいのですが、ヘルプではやはり異なるように
書かれてあるようにも感じられます。CASをやってくれるのがDirecotryだけであるなら、
1.たくさんの回数呼ばないのなら、すべて 「Direcotry」 で済ませてよい、
しかし
2.もし同じフォルダーをたくさん回数呼ぶようであれば、最初だけはDirectoryを
使って、あとは DirectoryInfo を使うようにするべきである、
ということでしょうか?そしてこの原則をはずしてすべてを DirectoryInfo だけで
記述してしまうと、.NETのプログラムとしては大きく欠陥となる、ということを意味する
のでしょうか?この辺が気になっています。VB6ではこういうことを考える必要が
なかったもので戸惑っています。
なんでそうなる
プログラミングがあまりに論理的なので忘れてしまうことが在る プログラミングはスポーツ、つまり活動的な行為なのですよ 人に聞くなんて恥ずかしい行為は慎むとよい
DirectoryInfoはチェックしないなんて どこに書いてあんだよ。 同じディレクトリに対して操作を繰り返すんだから、 最初のインスタンス作成時にチェックするだけで済むだろ。 だからコンストラクタとかその辺でチェックしてるってことだよ。
そろそろさじ投げてもいいほど俺たちは堪えてるよな?
231 :
デフォルトの名無しさん :2007/03/19(月) 12:07:46
>>229 >DirectoryInfoはチェックしないなんてどこに書いてあんだよ。
>>220 で挙げたようなヘルプの説明はそういった意味かと思いました。
これは意味が異なるのでしょうか。いろいろお聞きしてすみません。
>同じディレクトリに対して操作を繰り返すんだから、
>最初のインスタンス作成時にチェックするだけで済むだろ。
>だからコンストラクタとかその辺でチェックしてるってことだよ。
ということは、コンストラクタを使う限りは、DirectoryでもDirectoryInfoでも
CASが掛かるということでしょうか、そうであれば、初めから両者の差は、
コンストラクタ以外のメソッドでのみ異なるということになるわけなのでしょうか。
たびたびお聞きしてすみません。
reflector.netでも使えばいいんじゃないか?
諦めた、もう無理w
どうやってDirectoryのコンストラクタを使うんだ。 どうやってコンストラクタを使わずにDirectoryInfoを使うんだ。 って言ったらコンストラクタ使わずに使えるよ、とか言われんだろな。 そういうことじゃないんだ、そういうことじゃ…
>>231 そのセキュリティチェック云々のたわ言は別にして
DirectoryとDirectoryInfoの違いはわかってるのか?
237 :
デフォルトの名無しさん :2007/03/19(月) 12:46:37
>>235 >DirectoryとDirectoryInfoの違いはわかってるのか?
それもあいまいなのですした。すみませんです。
>そのセキュリティチェック云々のたわ言は別にして
この件はそれほど気にしなくてもいいという感じでいいでしょうか?
238 :
デフォルトの名無しさん :2007/03/19(月) 12:54:47
TextBoxに入力した内容を次にソフトを立ち上げた時に表示するように保存しておくようにしたいんですけど。 どうやるんですか? データファイルとかソフト本体以外のファイルは作らないでやりたいんです。
1回のCASの検査にかかる時間はせいぜい1/1000秒かそれ以下。 1000回繰り返したら1秒遅くなることになるが、これが気になるならうまくやれってこと。
240 :
デフォルトの名無しさん :2007/03/19(月) 13:01:52
>215 サンキュウ。 VS.NET2003です。 その後のテストで、以下の事実が判明しました。ここで教えてもらったスレッド関係の設定をしなくても、 別のDELLマシンでは、何の問題もなくpictureBoxクリップボードにコピーできる。 エラー発生するのは最初に開発していたマシンのみ。 エラー発生しても、プログラムの実行を継続してやれば、2回目以降は成功する。 というわけで、よく分からない状態です。たまたま解決したのか、また、別のマシンで発生する可能性があるのか考えるとちょっと怖い。 お客さんのマシンで発生したら最悪。。。
>>238 情報量増やさずに情報を増強するのは無理
普通は外部ファイルとして保存するかアプリケーション構成とかに保存するんだろうが、
嫌なら諦めろ
242 :
デフォルトの名無しさん :2007/03/19(月) 13:04:20
>>238 念じるしかないんじゃないの?
増やさないで情報を保存するなんて、エスパーしかできねーし。
244 :
デフォルトの名無しさん :2007/03/19(月) 13:14:38
>>239 >1回のCASの検査にかかる時間はせいぜい1/1000秒かそれ以下。
>1000回繰り返したら1秒遅くなることになる
そうだったのですか。わかりました、ということは原則としてアクセス回数が
少ないものの場合は、Directoryですべてまかなう方がむしろよい、というふうに
つまりCASを必ず通すという考えでやれば間違いはない、ということなのですね。
どうもありがとうございました。
あとは、DirectoryとDirectoryInfoの違いについてまた調べてみますです。
どうもでした。
おめでとうございます。 日常生活でのコミュニケーションに障害を感じるレベルです。
>>238 アプリ本体のアセンブリ自身を書き換えてやればいいんじゃないか?
>>243 それも外部ファイルいじってるやんw
>>238 みたいなのはもう居なくなれよwwwww
常識的に考えてそんなことしねぇよwwwww
248 :
デフォルトの名無しさん :2007/03/19(月) 15:41:53
まあ、彼がファイルとか作りたくないっていう理由が全くわからんけどね。 Assembly自身の書き換えは、厳格名を持ってる場合に問題出るだろうし、そもそも最近のセキュリティソフトが嫌うと思う。 EXEの書き換えなんて。 普通にapp.configに書き出せばいいのに。
>>249 確かにw
しかしまぁ、何故新規作成したくないというか・・・・
きっとダメな理由でもあるんだろうけどなぁ
それならSystem32あたりで適当なファイルをランダムに選んで乗っ取れ
ブートローダ乗っ取ればいいんじゃね?
253 :
デフォルトの名無しさん :2007/03/19(月) 16:05:35
PCに残せないなら、前回の最終入力を作業者の脳内に残してもらえばいいじゃん。 それを画面起動時に入力してもらう。
ふっかつのじゅもんか。
設定サーバを立ててオンラインで保存・読み込みすればいいんじゃね
256 :
デフォルトの名無しさん :2007/03/19(月) 16:13:15
まあ、普通に馬鹿な仕様を変更すればいいだけだろ? ローカル保存可とするか、保存する場所ないならば前回入力なんぞ保持しないか。
VBでいうAsc関数はフレームワークではどの様に記述するのでしょうか? Microsoft.VisualBasic.Strings のメンバではなくてです。
system.math 名前空間の中じゃねぇの?
Reflectorで覗いてみたら? 自己責任で
261 :
257 :2007/03/19(月) 17:18:27
たくさんの回答ありがとうございます。
>>258 名前からして違うと思います。一応確認しました。
>>259 リコンパイラ以前使ったのですが、どこに入れたのか忘れちゃいました。
Platform SDK か何かをインスコしたパスの中に実行体があるんでしたっけ?
>>260 キャストですか?
Dim row as DataRow row("ID") = 3 みたいに、括弧をつけてアクセス出来るようにするには、 クラス定義の時、どのようなメソッドを追加すれば良いのでしょうか。
引数設定すればいいんじゃね? Public Property Row(ByVal ColName As String) As DataRow Get return HOGEHOGE End Get Set(ByVal value As DataRow) _HOGEHOGE= Value End Set End Property
264 :
デフォルトの名無しさん :2007/03/19(月) 17:34:47
とりあえずHashMapとかディクショナリとか。 .netになって意識してないけど、デフォルトプロパティもあるんだっけ? 上記の場合、Row.Item("ID")な書き方が正なように思う。 で、ItemってのがHashMapなりディクショナリで実装。 DataRowのデフォルトプロパティがItemだから、row("ID")でもアクセスできる。 かな?
266 :
デフォルトの名無しさん :2007/03/19(月) 18:22:31
ちょっと質問です VB.NET 2005のWinアプリでXSDスキーマ(スキーマA)使ってデータを読み込んだりしようとしている。 このスキーマAはプロジェクトAのSchemaフォルダに配置されていて実行時にこれを読み込みたい (ただし、直でファイルパスを切りたくないので相対パスでアクセスしたい) 開発環境では、プロジェクトAのBinフォルダ以下のReleaseやDebugフォルダの中に保存されてしまい、 インストーラからインストールした時は、実行ファイルと同じ階層にSchemaフォルダがあるため、相対パスではアクセスできないので 相対パスで開発環境でも、実行環境でも同じ相対パスでアクセスしたい。 インストール時のフォルダ構造を開発環境に合わせればいいじゃないかといわれればそうだけど、 もし特に設定ナシで目的が達成できるならと思い質問させてもらいました。 説明が下手で伝わりにくいかもしれませんが、よろしくお願いします。
exeファイルにNTFSストリームをくっ付ければ hoge.exe:hoge.txt とかに保存すれば
269 :
268 :2007/03/19(月) 19:11:17
>>267 Schema フォルダのパスを設定ファイルに書いとけばいいんじゃね?
>>257 これでわかるかい?
Dim s As String = "abcABC"
For Each c As Char In s
Dim a As Integer = Convert.ToInt32(c)
Console.WriteLine("{0}: {1}", c, a)
Next
Ascをreflectorで見た 何気に気合入ってたよ Unicode<->ASCII(MS-shiftjis?)
Microsoft.VisualBasic.Asc() じゃダメ?
275 :
デフォルトの名無しさん :2007/03/19(月) 23:34:22
>>270 やっぱそうなっちゃいますよね?
あんまり、パスの直書きはしたくなかったんで聞いてみたんですが
とりあえずいい案思いつくまでそれでしのごうかと思います
(というか、そのままになりそうな予感)
レスサンクスでした
質問。StreamReader.Read(Char(), Int32, Int32) で文字列を読み込んだら、空白部分がnothing扱い(!?)になるんだが、 空かどうかはどう判定すればいいの?C#では普通にナル文字が入ったんだけどなぁ・・・。
VB の Nothing は C# では default(T)。 default(Char) は '\0' だな。 で、空白とか空とかって何?
278 :
デフォルトの名無しさん :2007/03/20(火) 00:20:32
この質問はVBの質問とはちょっと違いますが、 Windowsの仕組みを良く知っている人が多そうなここで質問させていただきます。 間違っていたらごめんなさい。 質問は、 Cでコンパイル済のEXEファイルAがあって、それはある種のシミュレーションを 繰り返し計算して、計算結果の数値を画面にずらずらと出力しています。 i=1 数字1 数字2 数字3 i=2 数字1 数字2 数字3 i=3 数字1 数字2 数字3 ... ... こんな感じです。そのソースを入手できないのですが、何らかの方法でこの出力している数字を リアルタイムで取得して、それを別プロセスで動いているVBで作ったグラフ描画ソフトBに データとして送りたいのです(ファイルマッピングか何かの方法で)。 問題は、画面の数字を取り込む方法なのですが、何か良い方法はありますか?
タイマで WM_GETTEXT 投げてりゃ良いんじゃね
ProcessStartInfo.RedirectStandardOutput プロパティがそれっぽい ProcessStartInfoはProcess.Startの引数として使う やったことないから合ってるかは知らんが
> 画面にずらずら もうプログラムとか横においてだな、 詳しく書かないといけないところを省略するなよ OCRが最も汎用的だな
ちょwwwOCRてwwwww まずデジカメが必要だから買ってきて
フォント固定で種類が数値+α程度なら、パターンマッチも そんなに難しくはないだろうね、
284 :
デフォルトの名無しさん :2007/03/20(火) 00:59:23
>280 ありがとうございました。教えてもらった方法で、 意外にも簡単にできました。でも一つ問題がありまして、 出力をリダイレクトしたら、画面の表示が出なくなりますが、 希望としては、画面にも今までどおり出しながら、同時にリダイレクトして 取り込みたいのですが、それは無理でしょうか?
受け取った出力をそのまま標準出力に流せばいいじゃない
そのためのtee
287 :
デフォルトの名無しさん :2007/03/20(火) 01:14:27
>285 VBからシミュレーションソフトを起動していますが、そのConsoleに AttachConsoleする方法が分かりません。 >286 TeeってDOSにありますか?探してみたのですが無いようでした。 もっと簡単に、リダイレクトしながらconsoleにもそのまま出力する というプロパティ設定があるといいのですが。。
無いならダウンロードするか作れよ。
自分でコンソール作ればいいじゃないか
あるテーブル2つのデータを持つDataSetがあります TableA TableB がデータセットに格納されており、2つのテーブルは TablA:TableB=1:Nの関係でリレーションが張られています。 TableA/TableB共にデータを追加・更新・削除した後にDBに繁栄させるためにUPDATEメソッドを実行したいのです。 ここで普通データアダプタで更新する場合 Tableという名前のDataTableがUpDateメソッドで反映される為 TableAの名前をTableに書き換えてデータアダプタでUpDateしています。 その後TableAの名前を元に戻し、 TableBの名前をに書き換えてデータアダプタでUpDateしています。 2回データアダプタを作成し、更新していますが、 同一コネクション内でトランザクションをかけている為、同時実行時などは問題なく処理できています。 しかし、この処理が非常にスマートでない気がします。 なにかもっと簡単にリレーションの張られたデータを更新する手法があるのではないかと情報を集めてみたのですが、うまい解決方法が見つかりません。 もし、なにかスマートな解決方法や考え方があるよ?とか、俺はこうしている などの情報を少し分けてもらえないでしょうか? よろしくお願いします。
アダプタで出来るのは単純な更新のみと割り切って、SQLでごいごいと書く。
292 :
デフォルトの名無しさん :2007/03/20(火) 10:36:29
>289 VBアプリから他のコンソール画面に文字出せるのか?
>>292 それは普通にムリつうか・・
実現できても手法が難しいんじゃね?
294 :
デフォルトの名無しさん :2007/03/20(火) 15:04:17
Relationネタに便乗 親と子の関係が 1:NならリレーションOK 0:N のデータが存在する場合エラーになるよね? やっぱSQLで抽出して 1:N(0件含む)の関係にしてからじゃないとDataSetにリレーション設定できないの?
>>294 親なし
子ありってのはできないんじゃね?
外部キー設定の云々があるから防御掛けられてるような希ガス
296 :
デフォルトの名無しさん :2007/03/20(火) 18:05:29
VB2005のExpress Editionを使いたいのですが XPのSP2にしないとインストールできないみたいです。 ですがupdateができなくて困っています。 SP1で使えるようにはできないのでしょうか?
>>296 ネット繋いでてSP2にUpDateしてないとか
今時どんな会社だよwwwww
まぁ、認証できないとか、管理者権限がないとか色々あるだろうが・・・
割ってんなら素直に2000でやっとけw
恐らくAPIのバージョン情報から取得できる部分で比較しているはずだから(その他のファイル場ジョンも見ているだろけど)
その辺の深い部分いじればいけるかもしれないけどまず無理だと思ったほうがいいんじゃないか?
むしろこの環境でしか動かないって言ってるんだからその環境に合わせるべきだと思う。
じゃないと、無理に入れれたとしても動かない可能性もあるし
どうなんだろ。 SP2であることがインストールの絶対条件なのであれば打つ手なしだけど、 Web関連やIIS関連で引っかかってるなら何とかなりそうな気がしないでも ない予感を若干感じるような気がする。
299 :
デフォルトの名無しさん :2007/03/20(火) 22:19:18
2005でも2003と同じようにエディタの上部のドロップダウンリスト使って オーバーライドのスケルトンを挿入できるようにする設定ってある? しかし、どうしてこの機能カットされたんだろう。 余計なことすんなヴォケ、と言いたいよまったく。
クラスウィザードが削除された時の衝撃よりマシだろ、慣れろ つか、C#やVB.NETならドロップダウンでスケルトン挿入できるが 2003で、MFCやATL系のプロジェクトでスケルトン挿入なんかできたっけ
こめん俺はクラスウィザートは無用の長物だと思ってたw やっぱり削除されたのかな>オーバーロードのスケルトンの自動挿入 あの機能を発展させて、シャドウとかイベントハンドラ(もちろんWithEvents使わない 場合の話だけど)の自動挿入とかも欲しかったんだけどな。
303 :
デフォルトの名無しさん :2007/03/21(水) 10:20:56
Override って入力してスペース入れたら入力ほじょ。 関数選択すれば、ベースよぶ雛形出る。
俺はovまで入れてCtrl+Space押しちゃう
>>303 そのポップアップは"Overrides"って入力すると嫌でも出て来るんで知ってるんだけど、
やっぱりドロップダウンで挿入も残しておいて欲しかったな。
"Overrides"って打つ手間も惜しむならPG辞めろって言われればその通りだけどさ。
あと、これは2003もそうだけど、自動インデントの機能もなんか痒い所に手が届かない仕様だよね。
余計なことする鬱陶しいオプションと、あまりにも気が利かない馬鹿なオプションしかない。
結局インデントの設定は「なし」で使ってるんだけど、これだと全行いちいち行頭から自分で
字下げしなきゃならん。
まあお前の趣味には興味ないしな
307 :
デフォルトの名無しさん :2007/03/21(水) 12:42:30
308 :
デフォルトの名無しさん :2007/03/21(水) 12:44:09
俺の予想ではMSは、ある程度は、わざとVBを使いにくくしていると思う。 出来の悪いやつほどかわいいもんだろ。そういう心理を突いているんだな。 Windowsがヘボイのもそういう理由だと思う。
309 :
デフォルトの名無しさん :2007/03/21(水) 12:44:56
>>308 対人はそうだろうが
ツールに関してはねぇよwwww
他の開発環境と競合しない部分は手抜いてるよな
2005はキー入力だけでポンポンコードが生成されるのが気持ちよくて好きだ
312 :
デフォルトの名無しさん :2007/03/21(水) 16:20:50
すみません、教えてください、ユーザーコントロール作成してフォームに貼り付けたとき、 1秒ぐらいWaitのマウスカーソルになってから何も貼り込まれないということってあるでしょうか。 その際、エラーの表示は出ず、メッセージも何も言ってきません。 ユーザーコントロールはユーザーコントロールを2つほど使って構成されているのですが、 他のものでは同様の使い方でも貼り込まれていました。
そのコントロールのコンストラクタとかで何かやってない? フォームもユーザコントロールも、フォームデザイナで表示した場合、インスタンス化されるよ。 ためしにメッセージボックス表示を仕込んでみ、表示されるから。
314 :
デフォルトの名無しさん :2007/03/21(水) 16:43:43
>>313 そのユーザーコントロールのNew()を、
'コンストラクタ
Public Sub New()
Debug.Print("初期化!!")
MessageBox.Show("初期化!!")
' この呼び出しは、Windows フォーム デザイナで必要です。
InitializeComponent()
Debug.Print("初期化!!")
MessageBox.Show("初期化!!")
End Sub
こうしてみたのですが、イミディエイトにもエラーにも表示されず、またメッセージ
も出てきませんでした、てことは初期化もされないうちに蹴られたのでしょうか・・・
てきとーいったかも・・・フォームだけかな? ごめん。競艇みながらだから簡便。
>>312 ■ 意味不明な「俺様用語」を使わないこと。(ex. 貼り込む ―― 刑事かw)
■ 読み手にエスパー的な「深読み能力」を期待しないこと。(具体的にどんな処理を行っているかも、
問題が再現可能なコードも示さず「オカシイ」とか騒いでも誰にも君の問題は伝わらない)
ただ、2002は知らないが2003でも2005でも複合コントロールや継承コントロールの動作がコーディング中に
挙動不審になる場合は確かに存在する。
そういう時、一度IDEを終了してから再度ソルーションを開いてリビルドすると
問題が解消される場合が多い。
>>297 >今時どんな会社だよwwwww
開発機に SP2 などという危険なモノを入れるな、とか。
…ヒトゴトじゃなく、俺もいい加減 SP2 入れんとな。
すべて再インストール覚悟で。
>>298 インストーラで蹴られる。
サポート切れのOS(XP SP1)の方がよっぽど危険だと思うが。 いつまでも使ってるなよ。
そんなことよりネスケ4を全社で使い続けるうちの顧客を何とかしてください。 ASP.NETでVBブイブイいわせるのにこいつが足かせになってメンドくさい。
>>319 うちの顧客はIE7を入れたがってる。動作検証とらなきゃ…。
新しいのも古いのも面倒ですな。
ASP.NET繋がりで。VS2005のVB.NETでWebサイト開発してるんですが、
開発中やたら重いというか、メモリとCPU食いまくって泣きそうです。
画面12コ+帳票(ActiveReports)8枚が一つのプロジェクトになっているんですが、
まず開いて編集できるようにまで固まって5〜10分待ちぼうけ。
ちょっとソース弄ろうと思えば固まって2〜3分待ちぼうけ。
下手をするとそのまま固まりますorz
実行時は別に重くないです。
開発マシンはceleron 2.4GHz、メモリ768MB、HDD 60GBなんで
特に貧弱ってわけでもないと思うんですが、
タスクマネージャで見ると仮想メモリ含めて1.3GBとか行ってる(つД`)
同じような経験してる人いませんか?
CPUはいいけどメインメモリは2Gにしとけ、ディスプレイとメモリは大きければ大きいほどいい
VS2005様からみたら十分貧弱だと思うよその環境。。 まずセレロンってのがありえないし。
CPUよりメモリーが非常に効くよ。 普通にXP上でVS2005を立ち上げただけで大体500MBもってかれる。 そこにプロジェクト作成してデバックしたら700MB さらに、ソリューション構成でクライアントUIとサーバWebサービスなど構成すると1G超える。 でもって、DBをSQL鯖EXなどで自分端末だと・・・。 まあ、1.5GBとかメモリーがあればとりあえずは。w
324 :
320 :2007/03/21(水) 20:57:35
>>321-323 レスdです。
メモリ足らんのですか…2GBってどこの絵描きのマシンだろうorz
過去に外注さんに常駐してもらって、顧客納品用のマシン(メモリ256MB)で
開発お願いしたこともありました。
Webサービス使用のWindowsアプリでしたけど。よく血管切れなかったなぁw
上司に相談してみます。ありがとうございました!
どこの絵描き、って・・・いまどき1GB1万くらいだろうに。 スワッピングしてぼーっと待っている時間に時給相当をかけてみろ。
326 :
デフォルトの名無しさん :2007/03/21(水) 21:58:35
>>320 一応一言
P4 2.4G
Mem 512M
XP SP2
でそれより大きなソリューション開いても全然問題ないぞ
ちなみに300Mほど起動した状態で食ってるな
確かにスワップはするけどまぁ動きはするな
ファイルサイズの問題じゃないと思うよ。 たぶん帳票とかがメモリ馬鹿みたいに喰うんじゃないの? あとWindows Formでもコントロールをちょっと多目に使ってる奴をデザイナで 開くと馬鹿みたいに重い。 まあごく普通のWin Formのアプリを作成するだけなら512Mで実際十分だと俺も思うけどね。
328 :
デフォルトの名無しさん :2007/03/22(木) 09:25:39
>>294 亀だけど、外部キーのプロパティにそのあたりの設定あるよ。
親子の厳密なチェックありも出来るし、単なる親子で参照もつよー程度も出来るし。
>>287 tee.exeやgrep.exeはSFUに入ってる。
ServiceForUnix。タダだからググってインストールすればいい。
330 :
デフォルトの名無しさん :2007/03/22(木) 11:30:24
VB2005.NETをはじめたばかりの初心者ですので、レベルの低い問いを勘弁してください。 Form1に貼ったlabel1に現在時刻を表示するプログラムですが、8時から17時の間だけlabel1のbackcolorをLightGreenにしたいのです。 どのようにしたらよいのでしょうか? Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = DateTime.Now.ToString End Sub End Class
>>330 こんな感じでええんちゃうのん?
動かしてないけどなんとなく感覚はわかってもらえるんじゃないかと
Dim NowHour As Integer = Date.Now.Hour
If NowHour >= 8 AndAlso NowHour <= 17 Then
If label1.backcolor <> Color.LightGreen Then
label1.backcolor = Color.LightGreen
End If
Else
If label1.backcolor <> Color.Transparent Then
label1.backcolor = Color.Transparent
End If
End If
NowHour < 17 じゃね?
>>332 あ〜 そうだねw
多分会社の定時なんだろうけど
これじゃ17時台も色変わるなwww
334 :
デフォルトの名無しさん :2007/03/22(木) 12:19:36
335 :
デフォルトの名無しさん :2007/03/22(木) 18:58:02
初心者質問ですみませんが・・・ VB2005でWindowsアプリケーションで開発しています。 現在DataSetを使い、SQLServerに非接続のデータアクセスをしています。 (テキストファイルを読み込んで接続しています。 StreamReaderを用いていますのでConnectionオブジェクトは使っておりません。) DataSetの内容をDataGridViewに表示しており、その内容を「印刷」したいのですが。 手持ちにあるTipsにはPrintDocumentクラスを利用して 'テーブルの内容を出力 Dim dr As OrderDataSet.GoodsRow For Each dr In OrderDataSet.Goods.Rows '1レコードを出力 e.Graphics.DrawString( _ dr.GoodsID.ToString.PadRight(10) & _ dr.GoodsName.ToString.PadRight(20, " ") & _ dr.Price.ToString.PadLeft(5), _ f, Brushes.Black, _ x, y + (cnt * pitch)) '印刷位置を更新 cnt = cnt + 1 Next というコードになるのですが、これだとデータソースを追加しなければなりません。 データソースを追加せず、DataGridViewの内容を「印刷」したいのですがどうしたらよいのでしょうか?
336 :
デフォルトの名無しさん :2007/03/22(木) 21:50:13
>>335 OrderDataSet.GoodsRowyとかって型指定されたDataSetのことかな?
DataSetの内容をDataGridViewに表示しており
とあるので、型指定されている部分を部分を修正して
Dim dr As DataRow
For Each dr In DataSet.Tables(#).rows
'1レコードを出力
e.Graphics.DrawString( _
dr("カラム名").ToString.PadRight(10) & _
dr("カラム名2").ToString.PadRight(20, " ") & _
dr(""カラム名3).ToString.PadLeft(5), _
f, Brushes.Black, _
x, y + (cnt * pitch))
'印刷位置を更新
cnt = cnt + 1
Next
337 :
デフォルトの名無しさん :2007/03/22(木) 21:52:28
>>336 間違ってキー押して投稿してしまった…
コードの部分のみ記載しますw
Dim dr As DataRow
For Each dr In DataSet.Tables(#).rows
'1レコードを出力
e.Graphics.DrawString( _
dr("カラム名").ToString.PadRight(10) & _
dr("カラム名2").ToString.PadRight(20, " ") & _
dr("カラム名3").ToString.PadLeft(5), _
f, Brushes.Black, _
x, y + (cnt * pitch))
'印刷位置を更新
cnt = cnt + 1
Next
こんな感じで型指定されていないデータセットを扱うようにしてやればよくない?
動かしてないんで、正しいかどうかは不明だけどw
つうか、型指定されているものもただのDataSetを専用のクラスでラップしてるだけだし
338 :
デフォルトの名無しさん :2007/03/22(木) 23:10:30
VBでOpenGLやる方法を教えてくれ。
知ってるが お前の態度が 気に入らない
Vs2005でデザイナでフォームコントロールをはっつけてフォームのフォントサイズ変更すると フォームに貼り付けたコントロールの位置とサイズ、パディングなどが変更されるんだけど これと同じような事を実装したい まぁ、全てのコントロール回して直接変更していけばいいんだけど、このデザイナが変更している計算ロジック使えないだろうか? もし、使えるんであればフォントサイズに伴うコントロール位置やサイズの変更がラクだしいいかなっと思ったんだけど・・・・ 誰か知らない??
342 :
デフォルトの名無しさん :2007/03/23(金) 12:58:15
>>341 まず試しにフォーム新しく作ってプロパティ変えずにコントロール貼り付けて
実行時にフォームのフォントサイズ変えてみ?
それでサイズは変更すっから
VB2005でContextMenuStripのデザインを9X系のデザインに変えたいのですが (メニュー左側に青線の背景がないもの) プロパティーにはないっぽい? Component を継承してDesignModeを変えればよいのでしょうか。 宜しくお願いします。
344 :
デフォルトの名無しさん :2007/03/24(土) 13:08:10
>>343 とりあえずそれやってみた??
それでだめなら解決策を考えようか
ユーザコントロール継承してDesignModeをFalse返すようにしましたが
何も変わりませんでした('ω`;)
>>345 ありがとうございます!
これから観てみますー
VB2005 Express Editionですが、 新しいデータソースの追加→データベース→ データソースに「Microsoft Access データベース ファイル」を選択すると、 接続の追加ダイアログで、ConnectionStringを入力する様になるのですが、 「Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb;」など試しましたが、 何を入力しても、「初期化文字列の形式が使用に適合しません。index 0 で始まっています。」 とエラーがでてなにもできません。 ConnectionStringには何を入れたらよいのでしょうか?
348 :
デフォルトの名無しさん :2007/03/24(土) 21:43:21
349 :
347 :2007/03/24(土) 22:30:32
ありがとうございます。 ですが、ConnectionStringの書き方はそのサイトを見ても合っているようです。 というか、何も入力しなくても、適当な文字を入力しても、何を入れようが 「初期化文字列の形式が使用に適合しません。index 0 で始まっています。」 となるので、ConnectionString欄に入れる文字がどうこうという以前の問題の 様に思えてきました・・・
350 :
デフォルトの名無しさん :2007/03/24(土) 22:40:53
ちょっとパスワードとかユーザー名とかあるならその部分*とかにして全部さらしてみれば?
351 :
347 :2007/03/24(土) 23:00:34
ID・パスワードは設定してないので Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\mydoc\test.mdb; と Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\mydoc\test.mdb;User Id=;Password=; は両方試しましたがだめでした。 ちなみにソース上で、 Dim cn As New OleDb.OleDbConnection() cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\mydoc\test.mdb;" cn.Open() というコードで接続は出来ています。 データベースエクスプローラを使いたいと思い、データソースの追加の操作上で 前述のエラーでつまづいています。
352 :
デフォルトの名無しさん :2007/03/24(土) 23:18:00
>>351 確認してみたけど問題ないね。
パスが違うくらいだけどそれも問題なさそう
ところで、新しい接続もっかい作ってみて?
構成ウィザードでたら
・データベースを選択して次へ
・新しい接続ボタンをクリック
・接続の追加画面で
データソースがMicrosoft Access データベース ファイル (OLE DB)
その下の参照ボタンで目的のMDBを選択
そしたらその下のユーザ名やパスワードは空白にして
接続の確認ボタンをおしてみる
これでどうなるかな?
なにやら画面自体が異なる様です。 ・データベースを選択して次へ ・新しい接続ボタンをクリック ・接続の追加画面で データソースが「Microsoft SQL Server データベース ファイル (SqlClient)」 となっているので、「変更」ボタンを押すと、 ・データソースの変更ダイアログ で「Microsoft Access データベース ファイル」を選択、 データプロバイダ「.NET Framework OLE DB 用データプロバイダ」で「OK」を押すと 下記のような接続の追加画面のダイアログがでます。 ---------------------------------------------------------- データソース: Microsoft Access データベース ファイル(OLE DB) 「変更」ボタン +その他 ConnectionString [入力欄] 「接続の確認」 「OK」「キャンセル」 ---------------------------------------------------------- mdbファイルを指定するような画面自体になりません。
354 :
デフォルトの名無しさん :2007/03/24(土) 23:37:28
Expressとはこの画面すら違うのか まぁ、どっちにしろ 色々選択したあとにその接続の確認押せば、とりあえずオープンクローズできるかチェックできるはずなんだけど・・・
接続の確認ボタンは、何を入力しようが、「テスト接続に成功しました。」となります。 「OK」ボタンを押すと前述のエラーが出て進めません。 もう少し色々試してみようと思います。ありがとうございました
356 :
デフォルトの名無しさん :2007/03/24(土) 23:48:00
>>355 ConnectionString [入力欄]
にあるコネクションストリング・・・とりあえずつかってみ?
357 :
デフォルトの名無しさん :2007/03/25(日) 00:18:39
VB2005が重いです・・・起動してるだけでメモリ50MBくってます 軽くする方法はないでしょうか?
メモリを増設する。
HDDを高速なものと交換する
寝る
ふだんは軽いメモ帳などを使ってコンパイルだけVB使えばいいんじゃね?
362 :
デフォルトの名無しさん :2007/03/25(日) 03:09:28
CPU メモリ HDDは出来るだけ高速で大きな容量を できればCPUjはデュアルで メモリはXPでも512+256か1Gはほしい 起動して作業してるだけで512なんてあっという間だ
363 :
デフォルトの名無しさん :2007/03/25(日) 06:24:03
外山の政見放送を見たら、ドクター中松が普通に見えた。
VB2005でASP.NETのプログラムを書いています
セッションIDを取得してサーバに保存、画面遷移のたびに読み取ったセッションIDとサーバに保存した
セッションIDを比較、あっていたら処理を続けて、あわなかったらエラーページに飛ばす
ログアウトしたらセッション破棄
と、言うことをやりたいです
が、
ttp://msdn2.microsoft.com/ja-jp/library/87069683 (VS.80).aspx
を読んでみても解説がよくわかりません
もっとわかりやすいところってありますか?
セッションIDってものを勉強するのが先じゃないの? 読み取ったセッションIDとサーバのセッションIDを比較? 何をしたいの?根本的に間違っていると思うけど。
>>365 そうやって管理してる物だと思ってました
どの辺が根本的に違うのですか?
なんでログインの管理にセッションを使いたがるかな。
ログインの管理ではなく、ログイン画面を通さず直接URLを叩いたいてもアクセスできないようにするための機能と思っていますが
cgiで自分でセッションの管理をするならそうだが、 セッションの管理はASP.NETがやってくれるから、 Sessionオブジェクトにログイン済みかどうかのフラグを持てば十分。
>ログインの管理ではなく、ログイン画面を通さず直接URLを叩いたいてもアクセスできないようにするための機能と思っていますが
お前誰だ。
>>364 なのか?
だったら思っていますがってお前が作る機能の目的なんて知らねーよ
だいたい遷移のたびにセッションID保存したって、同じセッションならずっと変わらないんだから
単なるログイン管理と変わらんだろ。
単なるログイン管理ならフォーム認証でも使っとけばいいだろ。
なんでそんなに偉そうにしたがるのか
なんでお前ら日本語使ってるのか に等しい質問だな
いちゃもんつけたいだけのやつよりありがたいだろw
>セッションIDを取得してサーバに保存、画面遷移のたびに読み取ったセッションIDとサーバに保存した >セッションIDを比較、あっていたら処理を続けて、あわなかったらエラーページに飛ばす >ログアウトしたらセッション破棄 これで何をしたいのかちゃんと書いてみろよボケ。
ログインしてないのに画面を表示してしまわないようにしたいの?
だったら単にASP.NETの認証機能使えばいい(まあフォーム認証かな)。
セッションなんて関係ない。
どうしてもセッションでやりたいなら
>>369 みたいにすりゃいい。
セッションIDを比較しての意図がいまだに分からない。
どうしてもセッション同じか(同一セッションか、という条件だけ)で判断したいなら、 IsNewSessionででも確認すればいい。 セッションIDをサーバに保存する、ということをする必要などない。 てかセッションの仕組みで勝手にそういう処理は内部的に行われてる。
ただしIsNewSessionでの判断はきちんとやらないと無意味になりかねないのでやめた方がいい。
セッションでのログイン管理もあまりおすすめではない。 ちゃんと用意されてる認証の仕組みの方を使う方がいい。
380 :
デフォルトの名無しさん :2007/03/26(月) 05:26:27
VB6.0からきました。初心者です。 WebBrowser1.Document.getElementsByName("Submit3")(0).Click() これを実行すると、 getElementsByNameは'Sistem.Windows.Forms.HTMLDocument'のメンバではありません。 とエラーになるのですが、なぜでしょうか?例文を貼り付けただけなのですが
なぜだと思いますか?
382 :
デフォルトの名無しさん :2007/03/26(月) 06:11:20
'Sistem.Windows.Forms.HTMLDocument'がgetElementsByNameのメンバではないからだと思います。 どうすればいいですか?
383 :
デフォルトの名無しさん :2007/03/26(月) 06:12:30
逆でした・・・
384 :
デフォルトの名無しさん :2007/03/26(月) 06:15:11
なにか宣言しなきゃいけないような気もするのですが、さっぱり見当がつきません
385 :
デフォルトの名無しさん :2007/03/26(月) 06:22:19
WebBrowser1.Document.HtmlElement.getElementsByName("Submit3")(0).Click() こうしたらエラーが直りましが、今度はHtmlElementが'Sistem.Windows.Forms.HTMLDocument'のメンバでないとなってしまいました 助けてください!
386 :
デフォルトの名無しさん :2007/03/26(月) 07:51:06
釣りですか?
387 :
364 :2007/03/26(月) 08:09:40
いろいろあるが、とりあえず専用の機能があるんだからそれ使えでどうかな?
それは「おすすめしない理由」にはならないよね
391 :
デフォルトの名無しさん :2007/03/26(月) 09:54:30
VB.Net 2003 を使用して、共有フォルダを作成/設定するには どのようにすればいいのでしょうか? やりたいことは、一つフォルダを作成してそのフォルダは ネットワークに繋がっている他のコンピュータから 参照が可能な設定にしたいのです。 FileAttributesなるものを見つけたのですが、これはちょっと 違うみたいでした。
OSコマンドだと NET 系があるからそれを使うとか。 言語でのサポートは無いと思う、セキュリティそのものだから。 WINAPIでやるにしても、セキュリティとってからの流れでしょ。
VB.NET2005 を使用しWinアプリを作成しています。 現在一定の秒数でBackGroundWorkerを使用してデータを取得しています。 その取得したデータをFormにあるDataGridViewに反映させたいのですが 繁栄中にそのDataGridViewに操作を行う可能性があります。 コントロールをEnableにすれば簡単なのですが、ユーザー側からみればクリックしたのに クリックできていない状況が発生する可能性があります。 なんとかして動的に更新し、かつユーザーから見てそういった現象が起きないように 表を更新したいのですがなにかいい方法はないでしょうか? 取得したデータを更新後、一定の秒数が経過すれば再び更新という処理なので DataGridにデータを反映している間にデータを取得しに行くようなことはないものとなっています。 何かよい案がある方がいればお教え願えませんか?
>>393 データ取得用のDataSetと表示用のDataSetを別にしとく。
>>394 ごめんなさい、書き忘れていたんですがその部分は実装しています。
あと、色々小細工する都合上データバインドは行っていない状態なんです。
InProcのセッションモードでの影響をなくす。 (セッション失効の影響を受けなくする) セッションは本来ログイン状態とは無関係の寿命を持つので 不正なログイン状態を招いてしまう危険を最初から回避しておく。 そもそも専用のログイン状態管理機能があるのに わざわざ違う機能を使うのは利点がないだろ。
ごめん純粋に質問。 セッションとログイン状態が無関係ってどういうことですか? セッションが切れてもログイン状態を探し出したりできる?
>>396 2005からはSQL鯖と連動したログインとかスコープ管理出来るようになってるしな
一回試した時に小回りあんま利かなかった記憶があったが
399 :
364 :2007/03/26(月) 11:55:51
すみません もう一つ質問です test.aspxにあるasp:Buttonタグで作成したボタンをクリックしてasp:TextBoxから取得した値を使って 処理を行う部分をtest.aspx.vbに書いているのですが、なぜかbtn_Clickが2回実行されます どうやれば1回だけ実行になりますか?
400 :
デフォルトの名無しさん :2007/03/26(月) 12:06:03
聞く前にネットでASP入門か、本でも買ってこいよ。 根本的に知識不足。
元々、特にASP.NETでは、認証状態とセッション状態は独立した概念。
402 :
364 :2007/03/26(月) 13:31:52
すみません 解決しました inputからasp:Buttonに書き換えたときにOnClickを消さなかったからでした
初心者です。 仕事でVB6とVB2005両方使うみたいなんですが どっちから勉強したほうがいいですか?
>>403 似て非なるものを同時にか。混乱が目に見えるな。
( -人-).。oO(ナムナム...)
>>403 2005やってからVB6つかうと機能のしょぼさに絶望はする と思うぞ(;´∀`)
オブジェクト指向ってなんですか? 辞書でいろいろ見ましたが未だに意味が分かりません。 オブジェクト指向とそうでないものを何か分かりやすいもので例えて下さい><
| | ∩___∩ | | ノ _, ,_ ヽ (( | プラプラ / ● ● | (=) | ( _●_) ミ _ (⌒) J )) 彡、 |∪| ノ ⊂⌒ヽ / ヽノ ヽ /⌒つ \ ヽ / ヽ / \_,,ノ |、_ノ
409 :
デフォルトの名無しさん :2007/03/26(月) 16:23:08
別にオブジェクト指向しらなくても.netは使える。
>>407 >オブジェクト指向
サンダーバード
>そうでないもの
新八犬伝
ASP.NET2.0でインライン式からクラスを呼び出すことはできないの? aspxファイルに <%@ Import Namespace="vbClass" %>で宣言して <% Dim cls As New Class1 cls.getString()%> (getStringは"Hello World"を返すだけ) と書いてみたが何も帰ってこなかった
413 :
デフォルトの名無しさん :2007/03/26(月) 18:51:05
WebBrowserで画像ファイルを表示させたときに サイズをウィンドウに合わせるにはどうしたらいいですか? PictureBoxにあるBackGroundImageLayoutの プロパティがWebBrowserにはないのですが・・・
414 :
デフォルトの名無しさん :2007/03/26(月) 20:18:26
vb6.0&vb2005初心者です。構造体について教えて下さい。
vb2005の勉強のため簡単なゲームを作ろうと思い、
vb6.0で作られた以下のサイトのソースをvb2005で動かそうと考えました。
<マップの表現>
ttp://www001.upp.so-net.ne.jp/yoshihiro/tech1.htm#t4 以下がvb2005に書き直したコードなのですが、
どうしても subMapのインスタンスでうまくいきません。
元のコードをvb2005に移植する為のお知恵をどうかお貸しください。
Module Module1
Dim subMap As tMap
Sub Main()
subMap = New tMap(9, 9) {} ← ここでエラー
subMap.Cell(0, 0).Flag = True ← (ここを直す為に)
End Sub
End Module
Public Structure tCell
Dim Data As Integer
Dim Flag As Boolean
End Structure
Public Structure tMap
Dim Cell(,) As tCell ← Dim Cell(9,9) As tCell から変更
End Structure
415 :
デフォルトの名無しさん :2007/03/26(月) 21:32:37
>>414 モジュールの概念からしてすでに微妙なのだが・・・
とりあえず直すだけなら。。。
subMap = New tMap(9, 9) {} ← ここでエラー
これを
ReDim subMap.Cell(9, 9)
これでよくね?
こっからは蛇足なので、読む必要は特にないwwww
俺的にはRedimとか好きじゃないから別の手段とるとは思うけど・・・
せっかくなので時間ある時に配列関係少し調べてみるといいかもしれない
416 :
414 :2007/03/26(月) 22:15:34
>>415 確かに!ありがとうございます。
配列の初期化やコンストラクタで考えていたのですが、
サイズ変更でよかったんですね。
最初はフォームでやってたのですが、何度もデバックするのならモジュールが早いかな?と
初心者判断でした。
今は構造体やプロパティで頭ごちゃごちゃですが、ある程度先に進んでから勉強しなおそうと思います。
土曜日に本を買って、それについてたExpressEditionをインストールしたばっかなんですけど、コントロールに マルチページが見つからん。ひょっとして無いの?
418 :
デフォルトの名無しさん :2007/03/26(月) 22:29:04
むしろマルチページってなんどすか?
419 :
デフォルトの名無しさん :2007/03/26(月) 22:29:38
>>418 俺もわからんが
もしかしてASP.NETじゃね?wwwww
TabControlの旧時代での呼称
422 :
デフォルトの名無しさん :2007/03/26(月) 22:55:20
>>421 ASP.NETにもそういう感じのコントロールあるぞ・・・・
お前の知識がないんじゃね?
そもそもエスパーじゃないんだから
VBのExpressがWebDeveloperのExpressか位は書くべきじゃね?
キチガイを相手にしなはんな
424 :
デフォルトの名無しさん :2007/03/26(月) 23:31:58
ちょっと質問です。 VB.NET2005とSQL鯖Expressを使用しています。 もし、これを配布するとして PGの方はいいんですが、SQL鯖のDBをどう配布すればいいのかが不明です クライアントには.netFramework2.0だけ入れてDBをソフト側から管理したいイメージなんですが。 MDFを配布したとしてもDBとして機能しなさそうだしアクセスもできなさそうなので聞きたいんです。 もし、クライアントにMDFファイル配布するだけで接続できないならXMLとかMDBでやろうとは思います。
ローカルにあったりするmdfをさわるには、SQL Server Expressを インストールする必要がある。バッチインストールで入れてしまえばいいと思うが。 Compact Editionという選択肢も(結局インストールは必要だけど)なきにしもあらず。
426 :
デフォルトの名無しさん :2007/03/27(火) 00:39:25
>>380 これ気持ちいいぐらいスルーされてますが、釣りではありません。
なにが足りないのでしょうか?頭関係以外でお願いします。
実はもうこれに3日悩んでます。これを調べるのに2005のスキルが大幅にアップしましたが、この根本的っぽいところで躓いてます。
お願いします。
Sistem System
428 :
デフォルトの名無しさん :2007/03/27(火) 00:48:05
すいませんsistemはエラーメッセージの書き写しミスです。 getElementsByNameは'System.Windows.Forms.HTMLDocument'のメンバではありません。 でした。
>>428 だから,そのエラーメッセージが全てなんだって
スーパーの店員に,
「申し訳ありませんが,getElementsByNameという名前の商品は
当店(System.Windows.Forms.HTMLDocument)では扱っておりません」
って言われてるんだよ
その例文とやらがおかしい。一体どこで拾ってきたの?
430 :
デフォルトの名無しさん :2007/03/27(火) 00:54:47
431 :
デフォルトの名無しさん :2007/03/27(火) 01:10:12
>>385 までは解決したのですが、ここからがヘルプを見ても辿れないのです。
submit3はASP.NETコントロールなのか? だとしたら動かないだろうけど・・・
>>425 ありがとうございます。
やっぱりインスコは必須ですか・・・
じゃぁ、とりあえずMDBでやっといたほうが安全ぽいですね・・・
Compact Editionというのははじめて聞いたんでちょいと調査調査〜
ともあれ、情報ありがとうございました。
今更なんですが、
>>60 のはVBで書くとどうなるんですかね。
Dim lastPos As Point Private Sub timer1_Tick(sender As Object, e As EventArgs) Dim current As Point = System.Windows.Forms.Cursor.Position If Me.Bounds.Contains(p) Then Dim dx As Integer = current.X - lastPos.X Dim dy As Integer = current.Y - lastPos.Y Dim loc As Point = Me.Location loc.Offset(CInt(CSng(dx) * 1.0f), CInt(CSng(dy) * 1.0f)) Me.Location = loc End If こんな感じでいいんじゃね? 動くかどうか知らんが lastPos = current Me.Refresh() End Sub
>>60 を書いた本人だけど,ずっと心に引っかかってたのでこの際修正
if (this.Bounds.Contains(p)){
今更だけどこの行
if (this.Bounds.Contains(current)){
の間違い
>>435 で言うなら,
If Me.Bounds.Contains(p)→If Me.Bounds.Contains(current)
それと
>>61
むむ、、、天才
いけました! 感謝感謝
439 :
デフォルトの名無しさん :2007/03/27(火) 14:49:06
カスタムコントロールを作成しています。 このカスタムコントロールにButtonコントロールのプロパティを設けました。 そこで、このButtonコントロールのプロパティを、FormコントロールのAcceptButtonプロパティやCancelButtonプロパティ と同じように、プロパティグリッド上でフォーム上にあるボタンを割り当てられるるようにするにはどのように(属性などを) 組めばよろしいのでしょうか?
440 :
デフォルトの名無しさん :2007/03/27(火) 14:50:42
すいません。余計な改行が入ってしまい読みにくくなってしまいました。申し訳ございません。
MSDN読んでみると Visual Basic (宣言) Public Property AcceptButton As IButtonControl Visual Basic (使用法) Dim instance As Form Dim value As IButtonControl value = instance.AcceptButton instance.AcceptButton = value こうあるね てことはそのまんま宣言部分の様に実装しちゃえばいいってことだとおもうけど・・・ 別にIbuttonControlじゃなくてもぶっちゃけButtonコントロールとかに決め打ちしてもいいと思うし
443 :
439 :2007/03/27(火) 15:15:51
ええ、現時点においてそよのように組んでおります。 private _btn as Button public property Btn as Button Get Return Me._btn End Get Set(Byval value As Button) Me._btn = value End Set End Property というように組んでいますが、このカスタムコントロールをフォームに配置しても このカスタムコントロールのプロパティウィンドウを表示しても、 このBtnプロパティが表示されません。 (コード上においてはこのBtnプロパティにアクセスすることはもちろん可能ですが) プロパティウィンドウ上で表示され、なおかつFormコントロールの AcceptButtonプロパティとまったく同様に既にフォーム上にある ボタンが割り当てられるようにさせたいのです。
名前で表示順序変えてもでないわけ? もしかしてこういうのつけたいって事か? <System.ComponentModel.Category("その他")> _ <System.ComponentModel.Description("ぼた〜ん")> _ public property Btn as Button Get Return Me._btn End Get Set(Byval value As Button) Me._btn = value End Set End Property ちがうかな・・・(;´Д`)
445 :
439 :2007/03/27(火) 15:27:18
>>444 ごめんなさい、既にそれらの属性は設定済みです。
これらの属性を設定しても、Btnプロパティがプロパティウィンドウ上に表示されません。
たぶんシリアライズ関連の属性を設定しなければならないのではと思い、
現在ググっているのですが、いまだいい物が見つからない状況です。
いったいどこを読んでるんだ。 >このプロパティに割り当てるボタンは、IButtonControl を実装し、 だよ。
447 :
439 :2007/03/27(火) 15:44:18
IButtonControl型で行ってみましたが同じでした。 Button型でも、Button型自体にIButtonControlが実装されているので一応問題ないと思われますが。 ここは、IButtonControl型としたほうが正しいやり方なのでしょうか。
いやいや・・
いまやってみたけどこれで目的の行動はフツーにできるんだが・・・
ttp://up2.viploader.net/bg/src/vlbg011024.png Inherits Windows.Forms.Button
<System.ComponentModel.Category("その他")> _
<System.ComponentModel.Description("ぼた〜ん")> _
Public Property Btn() As Button
Get
Return Me._btn
End Get
Set(ByVal value As Button)
Me._btn = value
End Set
End Property
Private _btn As Button = Nothing
>>444 つうか、それなんか他の所おかしくない?
デザイン時に隠蔽した設定にしてるとか
その属性関係とか余計なのはずしてみれば?
そして何故シリアライズが関連してくるかが理解できないが・・・
ついでにいうとそれはIButtonインターフェイスつかえばボタン継承したコントロールとかも設定できるって感じになるだけなのでWindows.Forms.Button を使うのであれば
そのままでいいと思うよ
Browsable
450 :
デフォルトの名無しさん :2007/03/27(火) 16:02:11
最近VBを覚え始めたド素人なんですが音楽を編集するようなソフトを VBを使用してデータベースを用いるアプリケーションも作成で音楽ファイル を作成するようなことをしたいのですがそのもとになるような音楽ファイルを 編集するようなソフトは何がいいでしょうか? 聞き方が意味不明かもしれませんがどなたか教えてください。お願いします。
451 :
439 :2007/03/27(火) 16:06:09
>>448 え、できるのですか。
私のVS2005では、やはり表示されません。
一応、コントロールライブラリ形式でコンパイルを行い、
プロパティの型をIButtonControl型にしたものとButton型にしたものをそれぞれコンパイルした2つDLLファイルを別プロジェクトで
参照(コントロールパネルでの追加)を行ってもだめでした。
ほかのカスタムプロパティ(String型プロパティやら、Boolean型のプロパティなど)は表示されるのですが。
私のVS自体がいかれてるみたいですね。
VS自体を再インストールしてみます。(ちなみにスタンダードエディション)
>>448 >ついでにいうとそれはIButtonインターフェイスつかえばボタン継承したコントロールとかも設定できるって感じになる
そういうことなのですか、これは一つ勉強になりました。ありがとうございます。
でも、今回は、Windows.Forms.Buttonコントロールを割り当てる予定ですが、IButtonControlのほうがいいですね。
了解しました。
今回はこれで、一応私の質問は終了させていただきます。
ありがとうございました。
要約すると VB.NETを使って 音楽ファイルを作成・編集したい また、その作成・編集した音楽をデータベースで管理したい というところですか?
最近VBを覚え始めたド素人なんですが データベースを用い 音楽を編集作成するようなソフトを 作成したいのですが そのもとになるようなソフトは何がいいでしょうか? つ 余り するような VBを使用してるアプリケーションもで音楽ファイル をことを音楽ファイルを 編集するような 聞き方が意味不明かもしれませんがどなたか教えてください。お願いします。
455 :
デフォルトの名無しさん :2007/03/27(火) 17:09:23
456 :
デフォルトの名無しさん :2007/03/27(火) 17:33:00
「音楽ファイルを編集するソフト」といっても ・タグを編集したいのか ・音楽ファイルを1から作るのか ・音の情報を編集するのか ・その他 によってソフトも変わってくる
・編曲したい かもしれんぞw
メディアプレイヤーでこと足りると思うけどな。
もし勉強のためということなら、もっと簡単なものにした方がいい。
つか
>>450 の語学力を見るとDBを操れるとはとても思えない…。
459 :
412 :2007/03/27(火) 18:27:44
華麗にスルーされてるけど地味に困ってる 実は<table>タグの中に<textbox>やら<listbox>が入ってるものをaspxにはき出させたいのだが、 asp:tableコントロールだと<textbox>や<listbox>入れてもwidthの調節がきかない模様でデザインが狂ってしまう なので、aspxにstringをはき出させることはできないのかなと思って質問させてもらったのだが
460 :
デフォルトの名無しさん :2007/03/27(火) 18:34:59
印刷用のサイト知りませんか? VB2005で、SQLServerに入っているデータをDataGridViewに表示しています。 表示しているデータ内容(グリッドに書き出したもの)をWindowsの機能で印刷したいと思っています。 CrystalReportsを使うのではなくPrintDocumentを使うことを考えていますので その辺りの情報があると助かります。 印刷についてのTipsなり勉強用のサイトなり オススメがあれば教えてくれませんでしょうか? できるだけ情報量があればありがたいです。
>>460 Windowsの機能も何も、GDI+で自分で描画するんだよ。
グリッドやテーブル状の描画をやってくれるような便利なクラスを期待してるとしたら、
そんなものは標準のライブラリには存在しないよ。
>>459 VBコードに protected sub AAA as string
>>459 VBコードに
protected sub AAA as string
return "AAAAA"
end sub
つうのがあって、
<% AAA%>みたいなんで呼べなかったっけ?
464 :
412 :2007/03/27(火) 19:20:00
>>463 test.aspx.vbの中に
protected function getStr as string
return "Hello World"
end function
と書いて
test.aspxに
<% getStr%>
と書いてやってみたんけど、反応なしですね
関数の設定とかは無視されるとは書いてあったけど、関数の呼び出しまで無視してるのかな?
ごめw そういえば=がいるはずだからそれだったら <% getStr%> じゃなく <% =getStr%> になるはずwwww とりあえずやってみたら動いたからいけるとおもうよ
466 :
デフォルトの名無しさん :2007/03/27(火) 21:24:00
VB.NETでバッチプログラムを作成しているのですが、 デバック状態から、その時点のメモリ使用量を見るのは タスクマネージャのプロセスを見るというので あっていますでしょうか?
467 :
412 :2007/03/27(火) 21:30:37
>>465 サンクス
今日は、うちに帰ったので明日試してみる
<%@ Import Namespace="vbClass" %>で宣言して <% Dim cls As New Class1 response.write cls.getString()%> でいいんじゃね?
470 :
デフォルトの名無しさん :2007/03/27(火) 21:59:05
>>450 を書いたものです
すみません。やはりかなり言葉がおかしかったようで
もう少し詳しく話しますと大学でC言語を多少勉強していて今度1年間かけて
研究をするのですがそこで漠然と音楽ファイルを波形のようにしてトラックだけを
とりだしたり、切ったり、貼ったり、重ねたり出来るものが作れればいいと思いました。
しかしそれを一から作るのは無理と言われ、VBを使えば既存の物をカスタマイズの様な事が
出来ると聞きました。
今はとりあえず必死で言語を勉強しているのですが実際何をどうすればいいかわかりません
どなたかアドバイスをお願いできないでしょうか?
>>466 せめて管理ツールのシステムモニタを使おうよ
プログラム内からだったらPerformanceCounter
472 :
デフォルトの名無しさん :2007/03/27(火) 22:08:54
473 :
デフォルトの名無しさん :2007/03/27(火) 22:14:16
>>470 が大学で何を専門として勉強してしるかは知らないけど、
それはVBどうのこうの話じゃないと思う。
言語関係なくどっかのオープンソースでも読むしかないんじゃないだろうか。
もっともそれをよんで理解するだけで今の470じゃ一年で足りるかどうか…
474 :
デフォルトの名無しさん :2007/03/27(火) 22:20:44
>>470 波形の切り出しとかするんだったらDirectSoundとか使った方が楽にできるかもね
大分前なんで忘れたが意外と簡単にできちゃったりする
重ねたりとかはやったことないけど(;´∀`)
VBを通して出来合いのライブラリを使うってこと? それって研究として一体何の意味があるの?
それならニコニコ動画でも作ったほうが増し
477 :
デフォルトの名無しさん :2007/03/27(火) 22:33:25
>>475 どうなんだろうな・・・
>>475 に言われて思ったが
まぁ、とりあえず俺は質問に対する一つの案を述べたにすぎない
つうか今の質問では確かに何が研究したいかわからないので、手段としての一つを述べただけ。
実際に
それじゃぁだめなんです 〜〜までできているソースがあるのでそれをこう改造して
波形を表示させたり切り貼りしたい
といわれれば、それを回答しようとはするが
せめて大学生ならもう少し範囲を狭めて質問はしてほしいところかな
478 :
475 :2007/03/27(火) 22:43:01
すまん
>>474 に対してじゃなくて
>>470 に対して言ったんだ。
>しかしそれを一から作るのは無理と言われ、VBを使えば既存の物をカスタマイズの様な事が
>出来ると聞きました。
この分からは波形の切り貼り自体が研究目的ではないように見えるから,
じゃあいったい何が目的なんだ?と思った。
波形の切り貼りを行うライブラリを入手できたとしたら,
あとはそのフロントエンドを作るだけ?
479 :
デフォルトの名無しさん :2007/03/27(火) 22:43:43
>>478 タイミング的に俺かな?とかおもっただけだw
でもまぁ、確かに謎の研究ではあるな
俺の居た二流大学なんかでは卒論が
暗号化か圧縮
で、やったのがハフマンだっけ?かなんかのアルゴリズムで圧縮するソフトをC++で作った
これに少し解説書き加えて卒論終わりとかwwwww
1流は知らんけどな
>>413 HTMLで。Width=100% Height=100%でできなかったかなぁ。画像サイズになっちゃうか?
とりあえずCSSかなんかで出来たと思うよ。
483 :
デフォルトの名無しさん :2007/03/27(火) 23:24:09
>>450 >>470 を書いたものです。
度々謎の文章ばかりですみません。
研究の目的は自分の興味のある音楽の編曲が出来たらいいな
と思ったので単純にそれを研究テーマにしようと思いました。
みなさんのおかげで少しわかってきたのは僕がやりたいのはたぶん
>>480 さんの様なソフトをさらに自分の使いやすくカスタマイズする。
その為にはオープンソースである必要があり、VBを使っているソフトのほうが
いい。
みなさんにはそういうソフトを紹介していただきたいと思っている。
ようやく自分の言いたい事、やりたい事がわかってきました。
みなさんその様なソフトはないでしょうか?
最近VB.Netを始めて、今回のサーティファイの.net3級検定合格したので これから2級に向けて勉強しようと思うのですが 本屋やオンラインショップ等で調べてみたところ.netの検定対策書籍が全く見つかりません。 そこで、どのように勉強すればいいのか、または参考書籍などがありましたら 教えていただきたいと思います。 ちなみに、3級の対策問題集はあったので学習しやすかったです。
486 :
デフォルトの名無しさん :2007/03/28(水) 00:15:53
487 :
412 :2007/03/28(水) 00:21:09
>>468 確かに、tableコントロールはtableタグ吐くだけで慣れればtableタグでできることがすべてできるという感じだったが、
セルの中にtextboxやlistbox入れてるのが問題
textboxコントロールでしか試していないが、tableコントロールのセルの中にtextboxコントロールを表示させようとしたが、
表示できない
textboxタグなら表示できたのでwidthでサイズ調整かけても調整できなかった
データの取得具合によっては何百行の表になることが予想されるので項目名は別のtableタグで表示して
データのみの表をスクロールすることにより項目とデータをつきあわせてみることができるということをやりたいので
項目テーブルとデータテーブルのレイアウトを崩すわけにはいかないという背景がある
>>469 試してみるよ
で、こういう文書があるんだけど、今回やろうとしてることは無駄ってことなのかな?
ttp://msdn2.microsoft.com/ja-jp/library/k6xeyd4z (vs.80).aspx
488 :
デフォルトの名無しさん :2007/03/28(水) 00:30:19
>>487 えっとさ・・・
たぶんお望みの機能は実装したことが俺はあるぞ
ちょっと思い出して書いてみようか
勘違いしてる可能性もあるが
489 :
デフォルトの名無しさん :2007/03/28(水) 00:44:18
FormにtblMainていうIDのテーブルがあること前提(<table id="tblMain" runat ="server">)
実行結果:
ttp://up2.viploader.net/upphp/src/vlphp037983.png With Me.tblMain
.Rows.Clear() '一旦全初期化
Dim dr As HtmlTableRow
Dim cell As HtmlTableCell
Dim txt As TextBox
For i As Integer = 0 To 10
dr = New HtmlTableRow
cell = New HtmlTableCell
cell.InnerText = i.ToString
dr.Cells.Add(cell)
txt = New TextBox
txt.ID = "txtBox_" & i.ToString
txt.Text = "テキストボックス" & i.ToString
cell = New HtmlTableCell
cell.Controls.Add(txt)
dr.Cells.Add(cell)
.Rows.Add(dr)
Next
End With
勘違いして・・・る?
490 :
412 :2007/03/28(水) 08:25:35
textぼっくすにはsize="10"とかってなかったっけ?
>>490 それはCSSの問題とかだと思うけどなぁ・・・
たしかTableの中でTextBoxのStleのWidth100%にしたらXHTML1.0のやつではみ出すんだよな・・・(;´Д`)
アレに散々悩まされた記憶がある
493 :
412 :2007/03/28(水) 10:35:11
あ、ホントだ widthじゃなくてsizeで指定するようになってる・・・ 失礼しました 実はtableタグはき出す関数作って2000件のデータを表示させるテストをしてるが、10分くらいたっても表示されないorz 開発用PCにテストDBにOracle10gが入ってる上、アクセステストのためIIS入れてDMZで接続してるためか、 PenD 3GHZ、メモリ1GのマシンでCPU使用量がほぼ100%、メモリ1Gって状態 プログラムの書き方が悪いのかな?
てか、ASP.NETでもASP.netのタグは使わないで JSPでいうところのカスタムタグは使わないで 普通に作ったほうがいいよ
>>493 つうか、普通そういう大量のデータの場合ページングしないか?
2000件で10分かかるなんてページング以前の問題
497 :
デフォルトの名無しさん :2007/03/28(水) 11:03:31
1つのFORMで複数のユーザーコントロールを使いたいんですけど 例えばユーザーコントロール1でFORMのSIZE(100,150)にして ユーザーコントロール2でFORMのSIZE(200,400)にする事って 可能ですか?
>>496 ごめ、思慮が浅かったwww
確かに2000件レベルでコレは酷い
まず何が遅いのかを調べる必要があるだろ
DBの抽出に時間がかかってるのか
2000件分のテーブル表示用の文字列作成に時間かかってるのか
それとも単にIEとかで表示した時にテーブルの中のデータが多すぎてテーブル構築に時間かかって表示されてないだけなのか
とかさ・・・
>>497 インスタンスが違うのだから可能
499 :
412 :2007/03/28(水) 11:06:02
>>494 かもしれないねぇ
ただ、aspのコントロール使った方がvbライクにコード書けるので重宝してるんだが
>>495 そういえば、そうだ
jspの方でもそれやってたな
ころっと忘れてた
ただ、この画面は多くても100件くらいのデータを表示するために作ったものなので
テストのためとはいえ、最大20000件のデータを表示することは想定外ってことで忘れてた
>>499 別に普通にInputタグでもRunat="server"指定すればVBライクに書けるじゃないか・・・
2000件じゃなくて20000件かよ
502 :
497 :2007/03/28(水) 11:16:46
>>498 有難う御座います。
やりかたなんですけど
Dim hogehoge As FORM1
hogehoge.Size(200,400)
って感じですか?
済みません。
初心者丸出しで・・・
503 :
412 :2007/03/28(水) 11:28:44
textboxの問題、解決したよ
style="width:100px;"と入れてやると調節がきくようになったよ
>>498 tableコントロールを使うと10秒とたたないうちに表示されるからコードの書き方が悪いのだろうと判断した
textboxの問題も解決したのでtableコントロール使って作ってみるよ
>>499 20000は凄い事になるわな・・・・
どれだけスクロールさせなきゃならんのか・・・・
>>502 まぁ、大方あってるとは思うけど・・・
せめてやってから質問したほうがいいと思うよ
505 :
412 :2007/03/28(水) 11:30:35
>>501 ああ、すまない
全件検索で20000件だけど条件検索で2000件とか5000件とか表示するようにしてるんだ
506 :
497 :2007/03/28(水) 11:32:06
>>504 実はやってみたんですけどどーもうまく動かなくて・・・
で、ユーザーコントロール上でのFORMの宣言の仕方とか
使い方がまずいのかと思って質問させてもらいました。
有難う御座います。
多分別に原因が在ると思うのでもう一度やり直してみます。
>>506 Dim hogehoge1 As new FORM1
hogehoge1.Size(200,400)
hogehoge1.showdialog
Dim hogehoge2 As new FORM1
hogehoge2.Size(100,100)
hogehoge2.showdialog
これでどうなるかいね?
508 :
497 :2007/03/28(水) 11:44:15
>>507 >hogehoge1.Size(200,400)
でコンパイルエラーになります。
「オブジェクト参照がオブジェクト インスタンスに設定されていません」
になります。
参照設定が足りてないんでしょうか??
509 :
497 :2007/03/28(水) 11:46:09
>>508 済みません↓は間違いでした・・・
「オブジェクト参照がオブジェクト インスタンスに設定されていません」
になります。
参照設定が足りてないんでしょうか??
正しいエラーは
「プロパティアクセスはプロパティに割り当てるか、またはその値を使わなければなりません」
というエラーでそもそもコンパイルが通らないです。
>>509 コピペしただけだからプロパティアクセスまで直してなかったわwwwww
Form1が存在する前提で つ
うか、その辺は適当に自分の環境で書き直してくれ
Dim fmA As New Form1
fmA.Size = New Size(100, 100)
fmA.ShowDialog()
Dim fmB As New Form1
fmB.Size = New Size(200, 100)
fmB.ShowDialog()
とりあえず動くかどうかなら
こんな感じでいいんじゃね?
511 :
497 :2007/03/28(水) 12:01:37
>>509 に補足なんですけどSIZEではビルドエラーになりますが
HEIGHTとWIDTHを別々に設定すると動きました。
で、FORM1から先ず呼び出すユーザーコントロールをU1だとすると
U1で
Dim hogehoge1 As new FORM1
hogehoge1.Size(200,400)
hogehoge1.showdialog
を呼び出そうとすると
接続(状態=Open)中は'ConnectionString'プロパティを変更できません
と言うエラーになります。
FORM1からの呼び出し方は
Dim hoge As New U1
Me.Controls.Add(U1)
とやっています。
512 :
497 :2007/03/28(水) 12:04:28
>>510 済みません。
Newの後のオブジェクトは存在するオブジェクトに変更して
やってみたのですが同じエラーが発生しました
はっきりいって,そもそもVB.NETという言語について勉強不足
514 :
497 :2007/03/28(水) 12:08:52
>>513 お恥ずかしい限りですがつい最近触ったばかりでして・・・
本当に済みません
>>513 というかうん・・・俺もそう思う
存在するオブジェクトに変更とか・・・
>>511 内容から細かい内容が今一歩読めてこないんだが
>FORM1から先ず呼び出すユーザーコントロールをU1
ていうことはU1はフォームを継承したユーザーコントロールなのか?
>接続(状態=Open)中は'ConnectionString'プロパティを変更できません
これは今回の件とは無関係とおもうんだが・・・
フォームロードとかコンストラクタ(Sub New)の時になにか接続やってない?
>Dim hoge As New U1
>Me.Controls.Add(U1)
このへんも意味わからない
とりあえずU1の正体が何かわからないと・・・
そのレベルだと,試しにコード書いてみようとしても身動き取れないでしょ ここで質問して正解もらって当座は解決したとしても,自分で理解してないなら意味ないし 悪いこと言わんからちゃんと本読んで勉強した方がいいよ
っていうか、みんな
>>497 の文章よく理解できるよなあ。
本気で意味分からないけど。。。
初心者はGUIを触る前にコンソールをやれと言われる意味がわかった
コンソールかGUIかは重要なことではないと思うが。。 要は基礎的なことを理解してるかどうかだろう。
おれもGUIかコンソールかは重要ではないと思う
521 :
497 :2007/03/28(水) 12:57:08
>>515 U1はユーザーコントロールの一つです。
>フォームロードとかコンストラクタ(Sub New)の時になにか接続やってない?
フォームロード時にユーザーコントロールに値を渡していますが・・
522 :
497 :2007/03/28(水) 12:57:53
>>516 全く仰るとおりです。
もう一度本読み直して見ます。
>>517 こんなもんか?位にしか判らないwww
でもまぁ、読み取れる範囲で答えれば違ってたら質問しなおしてくるだろ
くらいで答えてるwww
>>519-520 同意する
>>521 じゃぁ、ひとつの方法としては
新しいフォームと小細工していない単純なユーザーコントロールで試すのがいいんじゃないかな?
自分でも何が原因なのかわかってないんだろうし
まずは原因の範囲が自分の書いたコードなのかそれともVB.NETの使い方何かを
ある程度せばめて調査していくのがいいと思うぞ
525 :
497 :2007/03/28(水) 13:05:39
>>524 そうですね。
一度新しいフォームと新しいユーザーコントロールで試してみます。
それで上手くいけば今上手く行っていない原因が分かると思います。
本当に有難う御座いました。
もう一度勉強しなおします。
526 :
497 :2007/03/28(水) 13:12:52
新しく作ってやってみたら普通にサイズ変更することが出来ました。 有難う御座います。 出来なかった原因は良く調べてみないとまだ分からないのですが 多分私の書き方に何か問題が在ったのだと思います。 初心者で何言ってるか判らないような質問ばかりして本当に済みませんでした。
527 :
デフォルトの名無しさん :2007/03/28(水) 13:21:24
さっき何気にMVPスレみてたが これMVPなら絶対投げてるよなwww
528 :
デフォルトの名無しさん :2007/03/28(水) 14:18:39
JavaとVB.NET両方できるかたに質問なんですが、 VB.NETでのJavaでいうVectorやArrayListのような 要素数可変の配列状のものの名前を教えていただけませんか。
VB2005なら List<要素の型名> で
VB.NETにもArrayListあったと思うが
つうか、JAVAやってたとか多少スキルあるんなら まず自分で調べるだろう・・・常識的に考えて
532 :
412 :2007/03/28(水) 14:42:59
>>500 なにげにおもしろい情報ありがとう
調べてみたらふつうのHTMLコードにも記述できるんだね
早速使ってみるよ
こっちは思っていたとおりのデザインで表を作ることができるようになったよ
tableコントロールのセルの中にコントロールを記述することができないと言うのがわかったよ
>>532 おまwwww
>tableコントロールのセルの中にコントロールを記述することができないと言うのがわかったよ
折角俺が
>>489 でサンプルかいてやったというのに・・・・・
(´・ω・`)
534 :
412 :2007/03/28(水) 16:35:41
>>533 あ、よく見たら確かにテキストボックスコントロールが入ってる
ごめん
と、言うことはstringではき出すのはダメで
プログラムで書いてやらないと入らないと言うことか
536 :
デフォルトの名無しさん :2007/03/28(水) 17:27:28
>>450 >>470 >>483 を書いたものですが
なにかいいソフトはないでしょうか?
またオープンソースになっているソフトはどうやって探せばいいのでしょうか?
WordやExcelもオープンソースになっているのでしょうか?
ちょっと頭を冷やして来いよ
>>536 ちょっと自分で調べたほうがいいんじゃないか?
そのレベルで人に聞いてるようじゃこっから先
全てを人に聞くレベルだと思うんだが
オープンソース自体もあんま理解できていないと思われる文章だし
転部を勧める。
プログラム初心者です。 仕事でVB6使うのですが、VB6は無料で手に入らないみたいです。 そこでVB2005EEで実際にやりながら勉強するか、 VB6の参考書だけでも読んでおくか、 どちらの方が役に立つのでしょうか?
>>540 他の言語知ってのかどうか知らんが
自分の今後を考えれば2005EEやってからのがよくないか?
現状俺の意見は2005の本読みながら実際にやりながらのがいいかと・・・
VB6とVB.NETは雰囲気が似てるだけで全く違う言語だが
>>541 には同意
>>540 .net覚えてもVB6のタシにゃならんよ
仕事で使うならVB6と参考書をどちらも自腹で買う<-これ一択
仕事で使うなら経費だろう。 今後の肥やしにする気があるなら自腹でいいけど。
vb6なんか今時、金出したって買えなくね?
nyに落ちてるよ
548 :
デフォルトの名無しさん :2007/03/28(水) 22:06:45
>>546 サブスクリプションだっけ?
あれで落とせる
まぁ、つまり買えないことはないかな?
正規で手に入れるなら倉庫の隅で埃被ってるの探してくるか サブスクライバダウンロードしかないだろうな。
VB6のランタイムをインスコして、あとは何もかも オブジェクトに遅延バインディングでVB6使い放題??
すみません質問いいですか? VB2005EEでExcelのセル値を読んだりセル名を変更したりしたいのですが 良いサイトご存じないでしょうか?お願いします
553 :
デフォルトの名無しさん :2007/03/28(水) 23:35:35
VB.NET Excel の検索結果 約 2,160,000  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>>551 本屋に行けば解説書はいっぱいあるぞ
そっちの方が手っ取り早い
555 :
デフォルトの名無しさん :2007/03/29(木) 01:05:13
>>380 これやっと解決しました。
WebBrowser1.Document.all.getElementsByName("Submit3")(0).Click()
allが必要でした。なぜ誰も教えてくれなかったんですか・・・酷いです。
556 :
デフォルトの名無しさん :2007/03/29(木) 01:36:52
だって
>>555 ライブラリもなにも良くわかってないじゃん。
どうやって教えるんだよー。
これが、言語出来るとか言う後輩なら確実に青筋でるよ('・ω・`)
557 :
デフォルトの名無しさん :2007/03/29(木) 01:37:56
ごめん、いい忘れてた
とりあえず
>>555 おめでとう。
>>555 コンポーネントがIE4相当ならエラーになるわな
IE5相当以上ならDOM使えるからその構文でエラーにならんだろ
>>559 とてもその知識を生かせるほど学んでいるとは思えないんだw
561 :
デフォルトの名無しさん :2007/03/29(木) 18:46:36
VB6 → MsgBox"hello" VB2005 → MsgBox("hello") ()は何の意味があるの?
実引数のリスト
>>561 折角ドトネトだし
MessageBoxのほう使っとけwwww
565 :
デフォルトの名無しさん :2007/03/29(木) 23:35:15
>>564 ??????
計算で出すも何もその間隔程度でしか認識しませんよ
って設定なんじゃないか?
27.5 * n / 31.0 + 2.5
>>565 ,566
サンクス
「約 n 回」ってのが気になってしまったもんで
まあ要はコンパネのキーボードの設定なんだけどな
それは違うでしょw
コンパネも
>>564 も、同じ「ハードウェアの設定」のためのインターフェイスに過ぎない。
PS2キーボードのリピートは完全にHWの動作らしい。
RSS1.0に対して、XPathを使って、各item以下のElementsにたどり着きたいのですが、、
Imports略
Dim reader As XmlTextReader
Dim doc As XmlDocument
'以下、DiaryNoteを例にする。
reader = New XmlTextReader("
http://diarynote.jp/rss/26660.rdf ")
doc = New XmlDocument
doc.Load(reader)
Dim nsmgr1 As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr1.AddNamespace("rdf", "
http://www.w3.org/1999/02/22-rdf-syntax-ns# ")
'rdf:RDFまでだとヒットする。。以下だとヒットしない。
Dim list1 As XmlNodeList = doc.SelectNodes("/rdf:RDF/item/", nsmgr1)
Dim node As XmlNode
TextBox1.Text = "No Hit"
For Each node In list1
TextBox1.Text = node.InnerText
Next
この場合、SelectNodesに指定する、
XPath式や与える名前空間は何が適切でしょうか?
item はデフォルト名前空間に属してる。グローバル名前空間ではない。 で、デフォルト名前空間についても適当な(任意の)接頭辞を割り当てる必要がある。 ちなみに、名前空間接頭辞は名前空間 URI のただの省略形なので、 XmlNamespaceManager に追加する際に xml で指定されているのとは違う接頭辞を付けても問題ない。
572 :
デフォルトの名無しさん :2007/03/30(金) 07:56:44
なんかすぐプロパティウィンドウとその下の説明の表示枠サイズが変わるんですけどぶっ壊れてるんですか? よくあることですか?なんかソフトを起動した時に変わってるようなきがするんですが
>>571 レスありがとうございます。
下記ではうまく動かないので、イマイチ理解できてないっぽいのですが。。
Dim nsmgr1 As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr1.AddNamespace("rdf", "
http://www.w3.org/1999/02/22-rdf-syntax-ns# ")
'テスト用デフォルト名前空間
nsmgr1.AddNamespace("mmo", "
http://www.2ch.net ")
Dim list1 As XmlNodeList = doc.SelectNodes("/rdf:RDF/mmo:item", nsmgr1)
>>561 「引数リスト」
つーか、VB6 は
戻り値を使うとき: hoge = Moge(arg)
戻り値を使わないとき: Moge arg
と、書き方が変わって煩わしかったのが
.NET以降、() ありに統一されたの。
576 :
デフォルトの名無しさん :2007/03/30(金) 11:48:00
settingを使ったのですが、メッセージ覧にファイルapp.configで 要素”なんとか”のスキーマ情報が見つかりませんでした。 がずらーっと並んでるんですがなぜですか?エラーと警告はないのですが、アプリが起動しません。
>>576 ひんと・・・
俺たちはエスパーじゃない
app.configにリストって定義できる?
うん
580 :
デフォルトの名無しさん :2007/03/30(金) 12:19:53
えーとまずプロパティのApplicationSettingsのtextに新規でnameに"Lac"を作りました。 sub Form1_Load My.Settings.Lac="開く" Lbutton.Text = My.Settings.Lac
581 :
デフォルトの名無しさん :2007/03/30(金) 12:20:50
583 :
デフォルトの名無しさん :2007/03/30(金) 12:37:27
あああああああもうピカチュウが起動しなくなったあああああ settingとかいって最低
StringCollectionででも定義しろ
asp.net2.0でプログラムを書いてます。 テーブルコントロールでテキストボックスやリストボックス、チェックボックスの入った表を作成したまではよかったのですが、 テキストボックスやリストボックスの値を取得することができなくて困っています。 FindControlを使って指定したIDを持つコントロールを探してくるらしいことはわかったのですが、 いざ、FindControlを使ってもNothingが返ってくるだけです。 どのようにして値を取得するのでしょうか?
586 :
デフォルトの名無しさん :2007/03/30(金) 20:52:38
>>585 いったいWEB側とVBでどんなソースかいてんだ????
動的に追加したんじゃなけりゃ必要なさそうだし…・
動的に作ってるんであれば自動復帰処理でコントロール生成した後に復帰した値を取得できるはずだけど・・・・
>>574 RDF 要素に名前空間接頭辞を定義する属性が並んでるだろ。
そこにデフォルト名前空間の URI の定義もあるよな?
>>587 あ。。。なるほど。
理解しました&動きました。
URI部分しか見てないんですね。。
nsmgr1.AddNamespace("mmo", "
http://purl.org/rss/1.0/ ")
Dim list1 As XmlNodeList = doc.SelectNodes("/rdf:RDF/mmo:item", nsmgr1)
589 :
585 :2007/03/31(土) 00:42:39
>>586 動的に作ってますね
aspxの方は<asp:table・・・
で、vbは
Dim rdr As OracleDataReader
Dim i As Integer
Dim r As TableRow
Dim c As TableCel
While rdr.Read
i+=1
c=New TableCel
c.ID="cell" & i.ToString
c.Control.Add(New LiteralControl("<input type=""text"" name=""textbox" & i & """・・・
と、こんな感じで書いてますが
590 :
デフォルトの名無しさん :2007/03/31(土) 01:07:20
591 :
585 :2007/03/31(土) 01:49:18
>>591 たぶんそれがViewStateからの自動復帰処理・・・だとおもってる
ざっくりとしかやってないんで注意w
>>590 なにか入力してポストバックしてもTextプロパティが空っぽだよ。
Page Loadで動的に生成したコントロールの状態はPage Load後に復元されるから。
例えばbutton1.ClickイベントでSetInputTextを呼ぶとかしないといかん
594 :
デフォルトの名無しさん :2007/03/31(土) 03:12:55
>>593 アーッ orz
>>591 に悪いことしたなぁ・・・・
ごめん・・・テストしなかったんだ(´・ω・`)
ちょっと触ってなかったので忘れてたことにwwww
指摘ありがとう(;´∀`)
595 :
デフォルトの名無しさん :2007/03/31(土) 12:03:58
DataGridViewで表示しているデータテーブルの行を選んだ時 その選んだ行だけを印刷するのはどうすれば良いでしょうか?
普通に値を取り出したらあとはお好きにどうぞ
597 :
デフォルトの名無しさん :2007/03/31(土) 14:40:42
>>595 まさに
>>596 の言うことがそのまんま答えなんだが・・・
まさか、印刷の方法が全くわかりません とかじゃないよな?
598 :
585 :2007/03/31(土) 17:11:33
試してみるなんて言いながら思い切り寝込んでたよ 試すのは月曜になりそうです
>>598 おはよう
まぁ、べつにいいんじゃね?w
あ、あと
>>593 が補足修正してくれたんでそれも加味してどぞwwww
600 :
デフォルトの名無しさん :2007/03/31(土) 20:45:28
すんません、教えてください。 VB6でできた、式のウオッチで 「値が変更されたときに停止」をやりたいのですが、 VS2005ではどのようにすればいいのかわかりません。 今調べたい値は、あるコントロールの ForeColor プロパティです、よろしくです。
ブレークポイントのマーカを右クリック→条件 Expressだとできないよ
602 :
デフォルトの名無しさん :2007/03/31(土) 21:21:53
>>601 どうもです、この方法やってみたのですが、
これは 「ブレークポイント」 の場所で、その値が変化したかしないかで
ブレークするかしないかを決める、という意味ですよね。
行いたいのは、あちこちでこのコントロールの ForeColor プロパティを
いじっているので、そのどこで変化したのかが不明なため、プログラムが走っている
ときの、どの場所で変更されたのかを知りたいということでした。
つまり任意の場所で変更がありうるため、そのどこが効いているのかは
特定できないのでした。その場合は値を代入しているところに全部ブレークポイントを
置いてこの設定をする必要があるのでしょうか。
>>602 そのコントロールのForeColorChangedイベントをハンドルして
そこにブレークポイント置いて呼び出し履歴見ればいいんじゃないか
604 :
デフォルトの名無しさん :2007/03/31(土) 21:59:54
>>603 なるほど、そうやってやるんですね。やっとわかりました。
VB6のときウオッチウインドウでずっとやっててコードで引っ掛ける方法は
考え付きませんでした。ありがとうございました!
質問させてください。 サーバーとクライアント間でパケットをやりとりするようなツールを 作成したいのですが、いまのプログラム言語候補に、 VB.NET、VC.NET、JAVAの3つを考えているのですが、 VB.NETではパケットのやり取りを行うことはできるのでしょうか?
606 :
デフォルトの名無しさん :2007/04/01(日) 03:56:36
パケットならJAVA これ常識
| | │ /V\ J /◎;;;,;,,,,ヽ _ ム::::(,,゚ A゚)::| ジーーッ ヽツ.(ノ:::::::::.:::::::.:..|) ヾソ:::::::::::::::::.:ノ ` ー U'"U'
どれでもできるがな
609 :
デフォルトの名無しさん :2007/04/01(日) 06:16:55
VB VC VJ ってどれかは出来てどれかは出来ないこととかあるの?
610 :
デフォルトの名無しさん :2007/04/01(日) 06:17:56
一番簡単なVBやって、出来ないことがあればそこだけやらせればいいんじゃないの?
ちょww VJは余計w
どれでもできる
>VB.NET、VC.NET、JAVAの3つを考えているの ここでSUNのjavaじゃなくて、J#を持ち出すのはいかがなものかとw
流れ的にJ#な気がしないでもない…
J# でjava.* 使った場合と System.*使った場合でまったく別言語に見えるのは気のせい?
J#ってパッケージスコープ使えるの?
質問させてください。 何の因果か、他人のプログラムをデバッグすることになりました。 プログラムをざっと見たところ、クラスの使い方におかしな点があるような気がするんですけど、 クラス内でデバッグ出力しても、どのインスタンスなのか判らなくて困ってます。 インスタンスをNewするときに自分で適当に名前を与えてやればいいとは思ったのですが、 このクラスが引数の数でNewの定義を複数用意してあるうえにOverrideとかもあったりして簡単にできません。 VB.NETの機能で、クラスの中から自分がどのインスタンスなのか知ることはできないのでしょうか。 なお、ステップ実行すると動作が変わるようなので、デバッガから見るのではなくて、 Debug.Write〜とかで出力できる方法でお願いします。
こんなのにデバッグ頼まなきゃならんマネージャも大変だな。 取りあえず GetHashCode() でどうよ。
そのインスタンスがどこで作られたか知りたいってこと? 当該インスタンスのクラスのコンストラクタでStackTraceクラスを使ってスタックトレースを取得 →静的なDictionaryにMeをキーにしてそのスタックトレースを放り込む →必要なときそのインスタンスをキーにしてスタックトレースを取り出して出力 思いついたのを適当に書いてみた
普通にHoge.GetType.ToStringじゃダメなのか?
621 :
デフォルトの名無しさん :2007/04/02(月) 00:48:31
>>620 それクラス名が出ちゃうだけなんじゃないか?
どのインスタンスかを区別するものではないと思うぞ
じゃあ「どの」インスタンスってどういう意味だよw メモリ上のアドレスでも表示するんかい?
623 :
デフォルトの名無しさん :2007/04/02(月) 00:55:51
>Newの定義を複数用意してあるうえにOverrideとかもあったりして簡単にできません。 Newの数がそんな異常な数あるとは思えないとして で、単純に引数追加したらデバッグ必要じゃないところまで変更が必要だからそう言ってるんだと考えたら New AAA() New AAA(X as string) ・ ・ の部分を New AAA(optional InstanceNo as integer=-1) New AAA(X as string,optional InstanceNo as integer=-1) みたく定義すればよくね? で、Newの中でてきとうなPrivate変数に保存して、使えばいいんじゃね? これならNewの最後にコピペして、ちょっといじるだけだし、既存のコードにも影響を与えないと思うんだが?
624 :
デフォルトの名無しさん :2007/04/02(月) 00:59:32
>>622 dim i as new Class1
dim j as new Class1
このiとjで同じメソッドを実行してクラスの中の関数が
iのメソッドで実行されたのか
jのメソッドで実行されたのか 調べたいってことじゃないの?
まぁ、普通に考えれば呼び出し側で分かると思うんだけどさ・・・・
と俺は単純に受け取ってしまったのだが・・・・
俺間違ってる?(;´Д`)
あげてた上に
>>624 の文章おかしいし・・・
iのメソッドで実行されたのか
jのメソッドで実行されたのか
は
iで実行されたのか
jで実行されたのか
のほうが妥当かな?連投ごめ
626 :
620 :2007/04/02(月) 01:04:21
>>624 ああスマン、617をよく読むと同一クラスの複数のインスタンスを
互いに識別したいってことのようだね。
俺が勘違いしてたよ
みなさんありがとうございます。
説明が下手すぎでわかりにくくてすみません。
質問の趣旨は、Class Aのインスタンスが、a1、a2、a3とあったとして、
Aの中で、自分がa1なのか、a2なのか知りたいということです。
>>618 さんのGetHashCodeは、自分でハッシュ作って管理しろって意味でしょうか?イマイチ意味がわかりません><
>>619 さんの方法は今msdn見てます
>>620 さんの方法はダメそうです
>>623 さん、すみません、説明し忘れたのですが、このクラスの呼び出しが100以上あって、あまり触りたくないっていうのもあります。
まあ個人的には「インスタンスを識別したい」って問題意識が そもそも正しくないような気がする。
これで十分だろ
Class Hoge
Public Sub New()
SetInstanceCode()
' 略
End Sub
Public Sub New(ByVal a As String)
SetInstanceCode()
' 略
End Sub
' 略
Private instanceCode As Integer
Private Shared Counter As Integer = 0
Private Sub SetInstanceCode()
Me.instanceCode = Counter
Counter += 1
End Sub
End Class
でも
>>628 に同意
630 :
デフォルトの名無しさん :2007/04/02(月) 01:18:11
まぁ、普通にやるとしたらそのある関数かなんかの呼び出し部分の前で
一回
Debug.WriteLine("インスタンスHOGEですよ")かませて
次に関数の中でDebugWriteLine("結果です")
とかやるけども100以上とは・・・・
ずい分とその会社で使うクラスの根っこの部分をいじってるような感じを受けるな・・・
>>627 そういうことなら
>>618 >>619 のがいいと思うわ・・・・
>>628 一応、良くないのは判ってるんですが、インスタンスの破棄のタイミングで問題が起きているようなので、
簡単にどのインスタンスが破棄されたのか判ればと思いまして・・・
>>629 なるほど・・・
>>630 呼び出しは間違いで、Newがですね100以上あるのを見た段階で、その方法を諦めましたorz
632 :
デフォルトの名無しさん :2007/04/02(月) 01:44:35
>>631 とりあえずそのエラーの内容とかからたどった方がはえぇんじゃね?
そいう現象が起きるってことは破棄の仕方が問題な可能性があるような・・・
そのエラーがDisposeかFinalizeあたりで起きてるんだろうが
エラーが発生してるってことは、内部で処理しているかわからんが
少なからずどこかでエラーだとわかるように分岐した処理が書いてあるわけだ、そこで止めてステップで抜ければどこで発生しているか分かると思うんだよな
もしなければ、Try〜Catch仕込んで例外キャッチしたところでステップするなりどうにでもなると思うが・・・
それ以前にオーバーロードが100以上とかそんな設計初めて聞いた…・
>>632 >とりあえずそのエラーの内容とかからたどった方がはえぇんじゃね?
それが・・・エラーは起きてません。
アプリの出す結果が変(想定外)なだけなんですorz
で、自分が調べたところ、インスタンスが持ってるデータが間違って破棄されているような感じでして。。。
>それ以前にオーバーロードが100以上とかそんな設計初めて聞いた…・
ああ、、、、えっとNewが100以上てところのことでしょうか
明示してNew、Disposeしてるのでそういうことじゃないみたいですが。。。。なぜか普通にスコープで破棄されてるところもあったりして意味不明です><
どう読んでも呼び出しが100以上と言う意味だろ。
回答者が外れだとがっかりするね。
全部聞き流して、一度
>>619 の方法で実装してみろ。
〜してみろ、だってさ。 お前は北方謙三かw
637 :
585 :2007/04/02(月) 12:01:57
>>590 TP動かしてみた
>>593 の注意に従って書き直したら動いたよ
でも、自分のプログラムに反映させても読み込めなかったorz
>>637 ViewStateの絡みもあるんだが
出来る事はわかったんだしゆっくり整理して一つづつ紐解けばきっと解決するさ!
ID名が異なってるとか
ViewStateの中身はBase64エンコのテキストだからそれをポストバック発生時に調べてみるのもありかな?
とか素人風味PG的には考えてみるw
>>619 を実装したらこんな感じか?
Class Hoge
Private Shared stackTraceRecord As Dictionary(Of Hoge, StackTrace) = New Dictionary(Of Hoge, StackTrace)()
Sub New()
RecordStackTrace()
End Sub
Sub New(ByVal obj As Object)
RecordStackTrace()
End Sub
Sub RecordStackTrace()
stackTraceRecord.Add(Me, New StackTrace(True))
End Sub
Sub WriteCreationStackTrace()
Dim frames As StackFrame() = stackTraceRecord(Me).GetFrames()
For Each frame As StackFrame In frames
Dim name As String = frame.GetFileName()
Debug.WriteLine("File:" + frame.GetFileName() + " Line:" + frame.GetFileLineNumber().ToString() + " Method:" + frame.GetMethod().ToString())
Next
End Sub
End Class
640 :
デフォルトの名無しさん :2007/04/02(月) 13:10:03
dim s as string(2) dim l as list(of string()) s(0)="1-1" s(1)="1-2" l.add(s) s(0)="2-1" s(1)="2-2" l.add(s) . . . for each s in l debug.string(s(0) + "::" s(1) ) next 出力結果 2-1::2-2 2-1::2-2 . . . 入れたとおりに出しても結果は最後に入れたやつだけが延々とかえってきます。 きっとものすごく初歩的なことを知らないんだと思います。助けてください。 addrangeしたときにキャストがどうとかと言われたのでそれがヒントだと思うんですが・・・ よろしくお願いします。
s = New String(2) {} をs(0)="2-1"の前に追加すればいい 配列は参照型だから…とか言ってもなかなか理解できないだろうから とりあえずオブジェクトの使いまわしはやめとけ
値型と参照型の違いは理解しなきゃ駄目だろw
643 :
640 :2007/04/02(月) 13:35:28
>>640 もしかして参照渡しになってる?
どうやって渡せばいいのでしょう?
644 :
640 :2007/04/02(月) 13:36:17
>>643 参照渡しと参照型は別物。
l.add(s) は参照型を値渡ししてる。
646 :
640 :2007/04/02(月) 13:45:03
>>645 参照型→データ定義
参照渡し→プロシジャ定義
ということですね?
648 :
640 :2007/04/02(月) 14:52:11
>>647 重ね重ねありがとうございます。精読し精進に勤めまする。
>>641 おかげでちゃんと動くようになりました。
これからもよろしくというか、なるべく頼らないようにがんばりますが
廃れない程度に書き込みますから可愛がってください。では。
649 :
585 :2007/04/02(月) 15:28:16
>>638 非常に簡単なコードなのでViewStateのことは全く考えてませんでした
確かに、
>>592 にViewStateからの自動復帰処理って書いてありますね
でも、コードを眺めてみてもViewStateのことがいっさい書いてないのでどうしたものか・・・
ん〜特にいじってないなら多分問題ないと思う (確か暗黙的にViewStateで保持するようになってたような無かったような・・・)) まったく同じ名前のコントロールを生成すればいけるはずなんだがな・・・ 一体復帰しないっていってるけどどんな感じで書いてるんだろう・・・・
質問させてください。 自分の趣味の為、PCにVB.NETの開発環境を構築したいと思ってます。 そこで、最新版のVB2005を入れたほうが良いのか、自社の開発 につかっているVB.NET2003を入れたほうが良いのか迷ってます。 というのは、会社でも使用するプログラムのスキルも向上させたいと おもってますので、折角自宅でVBを扱うのであれば、 自社で使っているVB.NET2003のスキルアップにつなげたいと思っています。 もし、VB2005がVB.NET2003の単なるバージョンアップであれば、 VB2005で覚えたことはVB.NET2003にも通じるでしょうし、 無料で手に入ることもあり、こちらでやろうと思っているのですが、 そうではなくVB6→VB.NET2002のときのように、考え方がまったく異なって しまっているようであれば、素直にVB.NET2003でやらなければ ならないかなと思っております。 ご存知の方いらっしゃれば、VB.NET2003でやるべきか、VB2005でやるべきか、 教えていただけないでしょうか?
俺は勉強は2005メインでやってたな といっても業務でVBは2002→2003、2005Expressでた時に自宅のPCにインスコして勉強がてら使って遊ぶ でも、2003→2005は俺の場合使いやすくなったが、仕事で2003に戻った時 2005ならあれできるのになぁ・・・とか思うことが多いし嫌になった それが元で会社は2005に移行してもらったわけだが そういうこともあるので・・・・一応2003お勧めしとく つうか、違い調べてそのくらいの選択も出来ないのは開発者として微妙だと思うんだ
レスありがとうございます。 今までVB6.0の開発をやっていて、今年度からVB.NETをやることになったので、 まだVB2005はおろかVB.NET2003でも開発すらしていない状況です。 レスを見る限り、VB.NET2003→VB2005へのバージョンアップは、 VB6.0→VB.NET2002へのバージョンアップみたいに考え方が がらっと変わってしまうようなものではなく、むしろVB5.0→VB6.0 のように、考え方はそのままで使い勝手が良くなっただけと考えても よろしいでしょうか。
会社の2003を自宅のPCにインスコするのは違法じゃね?
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|
>>653 通報しますた
\
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧
( ´Д`)
/⌒ ⌒ヽ
/_/| へ \
(ぃ9 ./ / \ \.∧_∧
/ ./ ヽ ( ´Д` )
( / ∪ , /
\ .\\ (ぃ9 |
.\ .\\ / / ,、
> ) ) ./ ∧_二∃
/ // ./  ̄ ̄ ヽ
/ / / ._/ /~ ̄ ̄/ /
/ / / )⌒ _ ノ / ./
( ヽ ヽ | / ( ヽ、
\__つ).し \__つ
2003とかは1開発者が複数の環境に入れるのって許可されてなかったっけ?
うん
658 :
585 :2007/04/02(月) 19:12:24
>>650 ああ、書いてないというのはTPのことです
ViewStateは検索件数を覚えさせるために使用してます
>>658 ん〜
こっからは何ともアドバイスが難しい気がしてきた
とりあえずやりたいことも分かるし、サンプルも動いた
サンプルを基にソフトに組み込んでみたが動かない
それなら、いっちょ新しい画面作って最低限の実装
(デザインなんか糞くらえで、例えばロードでSELECTの先頭10件 ポストバックで同じ10件 みたいな感じ)
して、動作確認して調査範囲狭めて い か な い か ?w
つーか
>>585 はGridViewとかDataListコントロールじゃ駄目なのかい?
VB2005なのですがショートカットファイルなどにある アイコンの変更を変更するダイアログを表示させたいのですが何か方法はあるのでしょうか?
変な日本語に・・ アイコンの変更を変更するダイアログを ↓ アイコンの変更ダイアログを
>>664 それはあれか?
窓の手とかであるような 右クリックメニューに組み込むとかじゃなくって?
方法は色々とあるだろうけど、そこまでの操作手順はどうなんだろう・・・・
666 :
585 :2007/04/03(火) 09:15:58
>>659 確かに
一度限定してTP作ってみるよ
>>662 GridViewとかDataListコントロールは調べてみたけど、<table>で作った方が簡単なので<table>でやってみた
そっちの方を考えた方がいいのかな?
SQL Serverとの接続は
javaならgetParameterで必ず取得できたので、ASP.NETもいけるかなと思ったら以外に苦戦するとは
667 :
585 :2007/04/03(火) 09:17:52
SQL Serverとの接続は →SQL Serverとの接続は解説しててもOracleとの接続についてはあまり書いてないので、調べるのが面倒だったというのがあったけどね
668 :
デフォルトの名無しさん :2007/04/03(火) 11:28:30
なんか使ってるとすぐエラーで起動しなくなるんだけど、よくあることなの? アプリケーションをインストールしなおすと直る場合があるとかいうメッセージがでるんだけど・・・・・・・・・・・
>>668 ヒント
俺たちはエスパーではない
出来るだけkwsk
670 :
デフォルトの名無しさん :2007/04/03(火) 12:28:30
何度も言ってるんだけどスルーされるんだもん settingを使ったソフトを作った後ビルド発行するともう起動しなくなるデバッグもできなくなる ビルドで出来たexeファイルから実行しても同じエラーがでる。 プロジェクトを実行しようとしているときにエラーが発生しました。c:〜.exe アプリケーション構成が正しくないためこのアプリケーションの開始に失敗しました。 アプリケーションの再インストールをすることで、この問題が解決する場合があります。
>>670 ちなみにそれって、VS起動しなおしてビルドしたらどうなるの?
つうか、アプリケーション構成ファイルのXML構造が解析できてない雰囲気だけど
672 :
デフォルトの名無しさん :2007/04/03(火) 12:51:51
起動しなおしてビルドした.exeを実行しても変化ないし、VS上でデバッグも同じエラーが出る とりあえず全部のプロシージャに on error 時 exit sub を入れてReleaseフォルダにある.exeファイルと. exe.configファイルだけを別フォルダに入れて.exeを実行すると、起動だけは一応するけどまともに動かない
>>672 それ、一回アプリケーション構成ファイル作り直したほうがいいかも知れんな
どっか保存しといて必要な要素のみ切り貼り
こっからは完全に蛇足
あと、On Errorとかは
Try Catchとかの方が構造化して書けるのでいいとおもうが・・・
あと、ExitSubは俺の場合、Returnで書くようにしてる
これだとFunctionに変更した時2005なら警告出るから修正ミスが減りそうなんで
他の人たちどうしてるんだろうな・・・
674 :
デフォルトの名無しさん :2007/04/03(火) 13:02:48
VB2005自体も再インストールしたけどだめだった。 同じソフトでmy.settings.*** を使わないとこんなエラーは出ないんだけど settingの使い方はmy projectの設定タブで使う名前を設定して プログラム上で読み書きする文を書いただけ。 app.configを開くと 要素’何たら’のスキーマ情報がみつかりませんでした のメッセージがズラーっと出る。 これはもうVBじゃ解釈できないファイルなんだとあきらめたんだけどここが原因なのかな
675 :
デフォルトの名無しさん :2007/04/03(火) 13:17:49
あと プログラムの追加と削除で MSXML 4.0 SP2 (KB927978) MSXML 6.0 Parser MSXML4 Parser の3つがあったんで全部、変更>修復をしたけど駄目だった
すみません、教えてください。Formのタイトルバーの部分を
すみません、教えてください。Formのタイトルバーの部分をMouseでクリックした ときに立つイベントを探していますが、見つけられずにいます。ClickやMouseClick は立たないようでした。どなたかご存知の方いたら教えてください。
ときに立つイベントを探していますが、見つけられずにいます。ClickやMouseClick は立たないようでした。どなたかご存知の方いたら教えてください。
680 :
デフォルトの名無しさん :2007/04/03(火) 13:42:39
>>677 そういうイベントがない以上は
WndProcをオーバーライドして自分でメッセージフックするしかないだろうな
>>681 あ、そうするのですか。わかりました。
ありがとうございました。
684 :
663 :2007/04/03(火) 13:55:48
>>665 はい、icoを選ばせるならOpenFileDialog等でいいのですが
exeやdllの中のアイコンも使えるようにしたいと思うと
アイコンの変更ダイアログが一番いいんじゃないか?と思ったのですが
shell32.dllの隠しAPIを使うとかどうとかで
もう少し考えてみます
685 :
デフォルトの名無しさん :2007/04/03(火) 15:06:56
>>683 助かります。
実はこの windows.h ファイルをVS2005Proと.NET SDKのフォルダで
検索したところ出て来ず探せないため、一応自分でテストしながら関係
しそうなメッセージを見てみたところ、TitleBarやScrollBarでのMouseEvent
では Message=33 が来るようでした。
しかしこれですと定数の定義を手探りで探しているようで確実でないため
windows.h ファイルを探さねばと思うのですが、まだ探せていません。
そこで、すみませんがよろしければ
#include <windows.h>
の部分について教えてください。
これを記述すれば自動的に参照可能でしょうか、その場合、VBで記述する場合は
どう行なえばよいでしょうか。
>>685 俺たちはエスパーでもマジシャンでもないんだが・・・
釣りだろ
>>687 や、そう思ったんだがなw
マジでそう思ってんのならフックとか以前の問題だぜ みたいなww
・
・
・
ありえないか('A`)
689 :
687 :2007/04/03(火) 17:13:41
>>685 PlatformSDKインストールして
\Include\WinUser.hファイルに定数定義してある。
>#include <windows.h>
おまいさんが言うとおり参照できればいいがVBからはできない。
よってWinUser.hファイルの中のWMから始まる定数を必要なものだけ
VBのソースに移す。
>>683 の
>private const WM_なんたら As Integer = &H??
がその部分。
688が可愛かったから釣られてやったぜ。ちきしょう!
>>689 やるなwww
しかし、そういわれればFrameWorkの定数にしてあってもおかしくはないよな・・・
って色々Define切ってるしめんどくさいんだろうが
むしろ、このスレの住人はエスパーであるべき
692 :
687 :2007/04/03(火) 17:52:44
今後の691の回答に期待
694 :
691 :2007/04/03(火) 18:13:17
>>694 解決しました!!
本当にありがとうございました
696 :
デフォルトの名無しさん :2007/04/03(火) 19:25:33
vbでdx9の扱い方のってるサイトありませんか? 探しても見つからない・・・
マイクロソフトにSDKあるし、サンプルもあったと思うが? ついでに言えばそういうサイト結構ある VB6でゲーム作ってる所とか
>>700 前に俺もDirectX関連のHP探してたけど
わかりやすいのが無かったから本買った
最近じゃ、わかりやすいHPでてきたのかな?
703 :
デフォルトの名無しさん :2007/04/04(水) 11:34:31
.SetAttribute("genre", "novel") の"novel"を変数にしたらうごかないんですけど .SetAttribute("genre", novel) 変数を使う方法はありませんか?
704 :
439 :2007/04/04(水) 12:20:22
>>703 何のSetAttributeメソッドなのかを省略するようなおまえには何も答えてやらん。
つか、「うごかないんですけど」だけで予測せよ、って事だから
きっと
>>691 の出番なんだよ。
うごかない→ぬるり とエスパーしてみる。
>>706 こういうことか
Dim novel As string
unknown.SetAttribute("genre", novel)//ぬるり
今更だが
>>704 が
>>439 だとしたら態度の変わりすぎに
俺はきっと今飲んでるマンゴーオレを吹いてしまうだろう・・・・
.SetAttribute("genre", (novel)) かな?
>>710 念のため、
.SetAttribute("genre", (((novel))))
くらいにしておくと安心でしょう。
.SetAttribute("genre",((((((((((novel)))))))))))
>>712 ちょっwwwww
それはないYO!
.SetAttribute("genre", _
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( _
novel _
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
DataGridViewのサイズは変えることが出来ないと言われました。 ホントはできるんだけどちょっと面倒だし、金も抑えられてるから出来ないっていっとこ。 ってことでしょうかね、やっぱり。
エスパーの俺が登場www
>>714 で、何のサイズが変えれないの?wwwwww
_ ∩ ( ゚∀゚)彡 おっぱい!おっぱい! ⊂彡
あぁ、アプリのWindowサイズを変えたらその中に埋まってるDataGridViewのサイズも 変えられるのかと聞いたらダメだと。 イメージはJane Styleとかのスレ一覧みたいの想像してたんだが。
DockかAnchorプロパティ一行加えるだけじゃねーの?
>>717 ちょっwwwwww
>>718 の言う通りだとおもうんだが…・
Dock,AnchorやSplitter その他コンテナ系コントロールとか
とりあえずその辺でざっくりいけるだろ
つうか、どこのだれに聞いたんだYOwwwwwww
しかも、なんで金の話なんかに飛躍してんだよwwwwwww 「人の話を聞け」ってよくいわれるだろ
>>719 聞いた相手が悪かったんじゃなくて、聞き方が悪かったんだと思うYO!
722 :
デフォルトの名無しさん :2007/04/05(木) 02:46:25
すごい、奇跡だ。回答レスが付いてる。
>>710-713 こんなことは初めてだ。ちょっと涙が出てきた
VB.NET2005での開発で、Exitの使用に関して質問です。 イベントの処理に入る前に、必須の条件が整っているか判断し 整っていない場合は「Exit Subで抜ける」というようなコーディングはいけないんでしょうか? ↓一例です Private sub button1_click(... If IsNothing(TreeView1.SelectedNode) Then Exit Sub Else 'ここにメインの処理(txt_area1.text = TreeView1.SelectedNode.Name など) End Sub このような使用方法のExitは使うべきではないんでしょうか? TryCatchでNull判定しても同じコトが出来るから書き直せと言われました。 理由を聞いたんですが意味が分からなかったので、ここに書きました。
>>723 むしろ俺はそんな感じでやってる
if obj is nothing then return
こう書くことでそのReturn(Exit Subとか)
の下は必須なデータがそろっている事が保障されている為、余計な心配をすることがないんで
ソースがスッキリする
また、条件がない場合キャッチするってことなら、それはパフォーマンスを激しく落とすことになるので
俺はCatchは最小限にとどめてる感じ
でも、会社によってコーディング方法や考え方が違うから
相手を納得させるだけの理由がない場合、それには合わせる様にしたほうがいいかもね
エスパーじゃないんだから、お前のクソソースの一例だけでは 万人が納得する回答はできない。 業務仕様でNothingがエラー扱いなのかもしれないし。 たとえば、数行ならまだ可読性も下がらないが、行数が増えるとExitもGotoも そんなに大差ないレベルで可読性も保守性も下がる。。 できればFinallyで出口を一箇所に集めるようなコーディングに慣れてくれれば という意味ジャマイカ? ちなみにお前のソースでのElseは必要ないと思う。どうせExitするんだから。
>>723 その一例ではどうでもいいが
他の例としてボタンを継承して
Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
If Not 何たら Then
Exit Sub
Else
処理
End If
MyBase.OnClick(e)
End Sub
としてしまうと
MyBase.OnClick(e)が呼ばれない時があるので
ボタンのクリックイベントが発生しなくなる。
>>726 それは別に
Try
Finally
EndTry
だけで括ってFinallyにMyBase〜〜 書けばよくね?
728 :
726 :2007/04/05(木) 11:58:06
>>727 俺はExit Subを書かない方法だな。
そこらへんは好き好きで。
729 :
723 :2007/04/05(木) 12:48:30
レスを元に調べてみました。 「出口をひとつにする」というのが 賛否両論があるコーディングの規約的なものなんですね。 会社のコーディング規約というわけではなく、学生同士の勉強の中でのことなので もう少し深く調べて、考えてみることにします。 ※例の部分で、End Ifの部分をElseと書いてました(変に可読なコードが出来てすみません。) それと、もうふたつ質問させてください。 TryCatchの概念というか価値のようなものがいまひとつ掴めないのですが、 ・「エラーで処理が中断した時、スローすることが出来るので、例外処理を設けつつ出口をまとめることができる」 ・「エラーで中断が発生しても必須の処理(DBやFileのCloseなど)を、Finallyで行うことができる」 の2つであっているでしょうか?
730 :
デフォルトの名無しさん :2007/04/05(木) 13:16:16
TryCatchは入れ子に出来るし。 関数を極小化してOnErrorでも似たような状態は出来るかもしれんが。
・「エラーで処理が中断した時、スローすることが出来るので、例外処理を設けつつ出口をまとめることができる」 ・「エラーで中断が発生しても必須の処理(DBやFileのCloseなど)を、Finallyで行うことができる」 の2つであっているでしょうか? 基本的に大体それでいいんじゃないかな? あとはエラーの考え方の問題じゃないかな?
>エラーで処理が中断した時、スローすることが出来る この文言には違和感を覚える。 スローする事ができるのではなく、キャッチする事ができるのではないのか。 例外スローはTryCatchの外でも可。
nullという状態が通常起きるものなら IsNothingで判定。通常は起きないものなら例外に任せるのが基本。 全体への影響度にもよるが例外のコストもある。 出口をひとつにするだけならこれは? If Not IsNothing(TreeView1.SelectedNode) Then 'ここにメインの処理(txt_area1.text = TreeView1.SelectedNode.Name など) End If End Sub
>>733 もうその話は終わってる。 空気が読めない子だね。
カラケだろ? 読めるよプ
そ、空気…
今時 プ とかナカナカつけないよな・・・ いつの時代の人なんだろう? 長老様ですか?
738 :
デフォルトの名無しさん :2007/04/05(木) 18:56:32
ディレクトリ選択ダイアログに関しまして質問があります。 現在ユーザに特定のディレクトリ(or ファイル)を選択させる為に FolderBrowserDialog メソッドを利用しディレクトリ(or ファイル)選択を行っているのですが、この際 ディレクトリ(ファイル)の削除 or マウス右クリック操作等を禁止する 事は出来るでしょうか? ググってみたのですが見つかりません。
>>729 関数の途中でreturnの可読性の観点からの是非は、昔は議論あったけど今は
okっていう方向に意見が集約しつつあるんじゃない?
実際、俺は多用するけど、後でコード読み返したときに分かりにくいと思ったとか
バグの原因になっていたとかそういうの皆無だよ。
構造化例外処理の利点というか、構造化例外処理でなければならない理由は
突き詰めるとマルチスレッド対応なんじゃないのかね?
例外に関する情報を1つの例外オブジェクトに集約できることを利点に挙げる人もいるけど、
それはGetLastError方式でもできるからね。
Nothingが普通はないはずの処理なら、Throw New ArgymentNullException(…) てするから結局出口はひとつにはならない。 てか出口ひとつはもはやどうでもいいと思うよ。 ネストが深まる方が明らかに可読性やら保守性悪くすると思う。
大変失礼いたします。
当方プログラムの知識は無いのですが、どうしても困っている事があり知識の豊富な皆様に相談したく書き込みさせて頂きました。
Visual Basic 6.0 SP6 ランタイムファイル(XP.vista対応、最新SP6)
http://www.vector.co.jp/soft/win95/util/se342080.html こちらのランタイムをvistaにて何度もインストールを試みているのですが、どうしても正常にインストールができません。
インストール後のvb6rtestを試しても
「コンポーネント'DBLIST32.OCX'、またはその依存関係のひとつが適切に登録されていません。ファイルが存在しないか、あるいは不正です。」
と出ます。
また、ランタイムが必要なアプリを動かしていても、似たようなエラーがでます。(DBLIST32.OCXの部分がMSMASK32.OCXに変わってたりするけど)
どうしても仕事で必要なのです。
もう1週間くらい悩んでます、インストール再インストールを繰り返したり、管理者権限で実行したり、再起動したりと試しましたが、どうしても改善されません。
ウェブなどで改善策を探そうと検索もしまくりましたが、どうしても見つからず、どこに相談していいかも判らずここにたどり着きました。
どうか、何卒アドバイスをいただけないでしょうか。
やだねったら、やだね
>>741 君がたどり着くべき場所はここじゃないんだ。また頑張ってくれ。
>>743 どこが一番この手の質問に詳しいでしょうか?
本当に困ってるんです。
これが解決できるなら、金を払ってもいいくらいの気持ちです。
フォームのコピーについて質問です。 現在、プロジェクト1にてフォームをいくつか作っています。 その内いくつかのフォームをプロジェクト2でも使うので プロジェクト2で[追加]→[既存項目の追加]よりフォームを追加しました。 しかし、追加になったフォームには画面(デザイナ)がありません。 ソース上には「フォームデザイナで〜」と書いてありますが、 デザイナで開くことができないのです。 どなたかご教授お願いします。
>>744 .NETより前のVBの質問を受け付ける専用スレがあるから、そちらでどぞ。
いま携帯だからURLは書けない。スレ内検索してみて
>>746 ありがとうございます。そちらで相談してみます。
スレ違い失礼しました。
748 :
デフォルトの名無しさん :2007/04/05(木) 23:01:39
他スレにて質問したところスレ違いとの事でしたので 此方に再度質問させて下さいませ。 VS2003(1.1利用)環境におけるTreeViewについて質問があります。 @FormLoadイベントにてTreeViewをWindwosFormに追加し画面表示しているのです がこの時に最初から「+」「-」の表示を行わずに、最初から全て表示(展開) させるにはどうすれば良いでしょうか? ATreeView上で通常のWindowsエクスプローラーの様にアイコンもセットで 表示するにはどうすれば良いでしょうか? 以上 ご存知の方がいらっしゃいましたらご伝授願います
ヘルプの TreeView クラスについて を見れ
750 :
デフォルトの名無しさん :2007/04/06(金) 00:08:38
もう一度見てみます。
>>749 >>748 は別スレで俺が@ITのクリティカルなサンプル作ってるページ教えたのに
試してもないってことだかんな・・・・
モロ同じようなことやって、Expandの部分も記述されてる
こんなやつはPG組まなくていいよ
つうか、これで仕事でやってんなら速攻クビになってくれ
>>750 どうせまた別のところで聞くんだろ?
いいから消えろよ
752 :
751 :2007/04/06(金) 01:44:41
質問です FW3.0+XPSP2の環境下で WORDとかのように文章中に画像を差し込んだりできる 簡易テキストエディタみたいなのを組み込みたいんですが・・・ 最初リッチテキストを考えましたが、テキスト入力は問題なくても画像の差込が出来ないようなので。。。 完全に1から作るにしてもどう継承して改造すればいいかが思いつきません。 WORD使えば手っ取り早いんですが、環境上無理な様子です。 もし、いい知恵をお持ちの方がいらっしゃればお貸し願えませんか?
「継承して改造」なんて言葉は簡単だが… どれくらいのコスト(時間)ならやる気ある? 大体「いい知恵をお持ちの方」なんて言いながら、内容が難しかったら 「ちょっとムリです。ありがとうございました」で終わりだろ。
>>751 おまいのやさしさに惚れた
>>748 TreeViewのヘルプ見りゃ[+][-]の表示制御くらいすぐにわかる。
最初から展開したけりゃ最初に全部展開すればいい。
>「ご存知の方がいらっしゃいましたらご伝授願います」
ご存知の方しか返答しないし、ご伝授というほどの質問じゃない。
アホか。
>>754 別に特に期間はないけど、時間でいえば5時間くらいで(;´Д`)
それ以上かかっても出来るのであればしたいです。
将来的に自分で使いまわしたいツールなので
画像ファイルから、そのイメージの指定位置(px, py)から指定サイズ(dx, dy)を切り出して フォーム上の指定位置(x, y)に表示するプログラムだけつくってみ。 それに何時間掛かったか教えてくれ。
全然関係ナサスwwww
759 :
757 :2007/04/06(金) 12:14:28
?
おまえら釣られすぎ
また釣りとか言い出すし・・・
>>755 ちょっとやってみる
少なくとも30分もあればザックリ終わるけどgkm言いつけられたので今夜あたりでもよい?
特に急いでるわけでもないので(;´Д`)
765 :
755 :2007/04/06(金) 23:39:13
>>764 ザックリとかgkmとか言ってることが良くわからんがいつでもいいよ
766 :
デフォルトの名無しさん :2007/04/07(土) 01:25:38
これは仕様なのかも知れないが asp.netのサイトでUserConfigを設定するページだけLoginさせる必要がある場合、 サイトのすべてをWebサイト管理ツールで閲覧許可に設定し、 UserConfig.aspxにLoginViewを置いて、AnonymouseテンプレートにLoginコントロールを置いて LoggedinテンプレートにUserConfigに必要なコントロールを配置して起動すると Loginコントロールが表示されてIDパスワードを入力してもLoggedinテンプレートに変わってくれない。 UserConfigだけフォルダを作れば済む話だけど、なんか間違ってるのかな?
767 :
デフォルトの名無しさん :2007/04/07(土) 11:32:47
DataGridViewの列から項目だけ重複させずにリストボックスとかに持って来て そっから選んだ項目でフィルタかけることってできるの?
DataTable 使ってるならそう難しいことでもないな
769 :
デフォルトの名無しさん :2007/04/07(土) 13:21:43
一発解決コントロールかメンバはないの? エクセルでいうオートフィルタみたいなの DataGridViewのヘルプ見てれば見つかる? それかクエリのSQL文でそういうの書けるのかな? >DataTable 使ってるならそう難しいことでもないな 2005でmdbでドラッグして作ったDataGridViewなんだけど
770 :
デフォルトの名無しさん :2007/04/07(土) 13:26:10
今のレベルはこれ ToolStripDropDown.DropDownItems = Me.DataGridView.CurrentCellAddress.Y(3) まったく動かなかったw
>>769 とりあえずヘルプすら見てないのは判った。
SQLの追加が許されるならなんだって出来るに決まってるだろ…
DISTINCTつけろ。
772 :
デフォルトの名無しさん :2007/04/07(土) 16:21:45
これだ!ありがとう!
ちょ、すんません この度Vistaに移行しようと思ってるんですが .net対応してないって本当ですか? ググったんだけど曖昧な情報しかえられなかったもので・・・・
これだから主語と目的語が曖昧な質問は困る
>>774 どっちにしても言いたいことはわかるわけだが
俺は答えん
・Visual Studio .NET 2003は使えるか False ・Visual Studio 2005は使えるか True ・.NET Frameworkを使ったアプリは動作するか True
778 :
デフォルトの名無しさん :2007/04/08(日) 00:32:20
VB2005で、ボタンを押すとファイルから1行読み込んでテキストボックスに 5秒表示する、というのを繰り返したいのですが、うまくいきません (テキストボックスに何も表示されません) どこがいけないでしょう Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim line As String Dim sr As New System.IO.StreamReader("C:\test.txt", System.Text.Encoding.Default) Do Until sr.EndOfStream TextBox1.Clear() line = sr.ReadLine TextBox1.Text = line System.Threading.Thread.Sleep(5000) Loop sr.Close() End Sub End Class
何せファイルから読み込んで5秒間寝ての繰り返ししかできないからな いつ描画しろって言うんだ? 素直にタイマ使った方が良いんじゃね
TextBox1.Text = line のあとにRefreshとかApplication.DoEventsとか
>>779 TextBox1.Text = line だけで描画されると思ってました
タイマーの勉強してみます
>>780 どちら入れても動きました
初心者の質問に答えて頂きありがとう
ずっと詰まってました これで少し進めます
オリジナルのプログラムをお持ちの方いらっしゃいませんか? この度クレジット決済でスムーズにダウンロード売買が できるサイトを立ち上げました。 つhttp//web-cart.jp/ ※会員登録&商品のうp全て無料です! クオリティの高い商品のうpをお待ちしてますw
784 :
デフォルトの名無しさん :2007/04/08(日) 10:49:27
すいませんまた来ちゃいました 氏名別表示()のクエリ内容 SELECT DISTINCT 氏名 FROM 一覧表 GROUP BY 氏名 MsgBox(一覧表TableAdapter.氏名別表示()) で表示されるのが最初の1レコード目だけなんですけど これの2レコード目の氏名項目を取得するにはどう書けばいいんですか? 氏名別表示() だと 12345 氏名別表示(3) だと 4 と表示されて次のレコードが取得できません
なんでDISTINCTしてるのに、GROUP BYするんだよ。
787 :
デフォルトの名無しさん :2007/04/08(日) 11:46:12
GROUP BYにもDISTINCTする機能があるのですか?勉強になります。
788 :
デフォルトの名無しさん :2007/04/08(日) 11:53:33
もしかして 一覧表TableAdapter.氏名別表示 が配列になってると考える方向自体がやばいんでしょうか?
789 :
デフォルトの名無しさん :2007/04/08(日) 12:01:16
やっぱりちょっと難しすぎるのでAccessでやることにします。 すいません
質問です。
http://www.ureader.com/message/975396.aspx ここを参考にしながら、html要素のイベントにハンドルしようとしても、エラーが出てしまいます。
どうすればいいのでしょうか?
Private Sub currentWebBrowser_documentComplete(ByVal obj As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent)
Dim doc As mshtml.IHTMLDocument2 = CType(currentWebBrowser.Document, mshtml.IHTMLDocument2)
Dim anchors As mshtml.IHTMLElementCollection = doc.anchors
Try
For Each elem As mshtml.IHTMLElement2 In anchors
Dim htmlevents As mshtml.HTMLElementEvents2_Event = CType(elem, mshtml.HTMLElementEvents2_Event)
AddHandler htmlevents.onclick, AddressOf anchor_onclick
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
>>784 SQLを勉強したらいいと思うよ。
嫌味じゃなくて
793 :
790 :2007/04/08(日) 18:53:39
自己レス。 HTMLAnchorEvents2_Eventにキャストしたら動いたorz
>>790 何その例外の無視
キャッチしない方がマシ
795 :
790 :2007/04/08(日) 19:18:19
と思ったら、イベントがこねぇええ!!!! Anchor以外の要素にイベントを設定した場合は普通に動くんだが・・・。
独り言を書き込むんじゃねえよ
VSTOでエクセルファイルをPDFで出力したいのですが… どうやったら出来ますか?教えてください。
798 :
デフォルトの名無しさん :2007/04/09(月) 10:31:23
こんな現象で悩んでます。 ○debugなどのごく基本的なシンボルもimports宣言しないと怒られるプロジェクトがある ○参照の設定がソリューションに表示されるプロジェクトと表示されないプロジェクトがある ○プロパティの参照を比較しても同じ 再インストールしたり、SR1入れたりしても変化ありません。ヒントだけでもお願いします。
799 :
デフォルトの名無しさん :2007/04/09(月) 10:43:13
>>798 追加
同一ソリューション内のある特定のプロジェクトを別のプロジェクトから呼び出すと
VisualStudioは応答を待っているビジーであるというメッセージが出て固まります。
例えばWebプロジェクトやNunitプロジェクトをスタートアップに設定すると、Webや
Guiは起動しますが、別のプロジェクトを呼び出すメソッドに飛んだとたんに固まります。
ブレークポイントまで到達しません。
ビルドをなんど繰返してもダメです。お願いします。
800 :
デフォルトの名無しさん :2007/04/09(月) 11:06:00
>>799 1.怒られるプロジェクトの作り方は?選ぶ雛形でImportなり参照の初期は違う。
2.メニューのプロジェクトの全てのファイルを表示だっけ?
3.意味不明。
>>800 意味不明
801 :
デフォルトの名無しさん :2007/04/09(月) 11:14:36
>>800 ありがとうございます。
>>799 で悩んでいるのですが、おっしゃるとおりまったく意味不明の現象です。
で、
>>798 あたりに問題を絞り込んで解決を図ろうとしたのですが、
どうやら的が外れていたようです。
いま新しいソリューションファイルから作り直そうとしたところ、
webアプリケーションのテンプレートとか、ごっそりなくなっています。orz
セットアップからやり直して出直します。
802 :
798 :2007/04/09(月) 17:12:40
結局ソリューションを新しく作成し、それに既存プロジェクトを追加したところ治りました。 お騒がせしました。
803 :
質問です。 :2007/04/09(月) 19:06:12
TreeViewについての質問です。 例えば下記階層があった場合に C:\C:\A\B\C\E(直下のディレクトリ)のみ全て展開するにはどうすれば良い でしょうか? C:\A\B\C | ~~~D ~~~E | E1 | E2 | E3 ~~~F ~~~G
804 :
質問です。 :2007/04/09(月) 19:07:23
※補足です。 C:\A\B\C | ~~~G | G1 | G2 | G3 | G4
805 :
質問です。 :2007/04/09(月) 19:11:35
図が下手で大変申し訳無いのですが、つまり初期状態で FormLoadイベント時に"C:\A\B\C\『E』"ドライブ配下にある ディレクトリのみ全て表示したいです。 (Gドライブも同様に複数子要素を持っているが、Eドライブ配下 のみ展開したいです。)何か良い方法はありますか? ※@ITのサイトを参考にしており『treeView1_BeforeExpand()』を混在 させた上で実装しています。
どうするも何も,好きなように自分でTreeNodeを追加していけばいいだろ
807 :
805 :2007/04/09(月) 22:52:27
>>806 そうしたいのは山々なんですが、マイコンピュータ直下にある論理ドライブ
全てが初期状態として表示対象なのです。
(「+」表示された上で孫階層まではTreeView_BeforeExpand()にて取得
しています。)
その上で特定のルート階層のみFormLoad時に初期状態で
表示したいのですが、やはり不可能でしょうか?
>やはり不可能でしょうか? 何がやはりなんだよ
つーか日本語でおkってかんじ
810 :
808 :2007/04/09(月) 23:52:14
もう結構です。
なんか春を感じるな・・・
VB.net2003でActiveDirectory認証を行いたいのですが、 良いサイトが見つかりません。 参考になるサイトを教えて頂ければ幸いです。 合わせて認証プラグインの開発などの情報もお願いします。 宜しくお願いいたします。
814 :
デフォルトの名無しさん :2007/04/10(火) 20:18:35
VB2005で、システム日付を設定するため、 DateString = "2007/01/01" を試したところ、 SecurityExceptionはハンドルされませんでした。 システムの日付を設定するためのセキュリティ アクセス許可が十分ではありません。 とのコンパイルエラーが出ます。どうすればエラーを回避できますでしょうか? XPで動いたコードなので、VISTA固有の問題だと思われますが、該当スレッドを 見つけることができませんでしたので、こちらで質問させていただきました。 よろしくお願いいたします。
>>814 UACを切るか、マニフェストにこの辺の設定をする。
<requestedExecutionLevel
level="asInvoker|highestAvailable|requireAdministrator"
uiAccess="true|false"
/>
GUID型に"0591d90c-592b-4e8e-ba9a-01952381f553"をキャストするにはどうしたらいいのでしょう。 よろしくお願いします。
>>816 MSDNライブラリ見た?
GUIDなんて使ったことも無かった俺だが、30秒で方法見つけたぞ
コンストラクタ
>>817 >>818 あざーす!
単純にGUIDで検索すればよかったんでつね。
GUID string キャスト|変換 だとかいろいろ探しまくってたんです。
助かりました。
820 :
585 :2007/04/10(火) 23:44:43
585です ViewStateからの自動復帰処理ってやつに正面から取り組めるようになったので試しました で、やってるウチにFindControlでコントロールを取得できるページと取得できないページが発生 HTMLソースを見てみるとinput hidden __VIEWSTATEに入っている値の長さが違うことがわかりました 取得できるページの__VIEWSTATEの値の長さは取得できないページの値の約2倍くらい長いのです でも、そこでどうしたらいいのかわからなくなりました 自動生成の物だから自分でさわることができないだろうと思ったので、そこで思考停止中です とりあえず、VIEWSTATEについて片っ端から調べているのですが、よくわからなくて 申し訳ないですが、取得できるようになるためにはどうすればいいでしょう?
やっくん、ごめん。もう飽きちゃった。
822 :
デフォルトの名無しさん :2007/04/11(水) 01:18:14
VB2005をサクサク動かすのってメモリどんだけ必要なの?
君のプログラミングでなければ問題なし。
>>822 512MBもあれば十分なんじゃない
俺のは1GBだけど超余裕
>>822 俺はXPで512はカッツカツ
せめて512+256はないと厳しすぎ
VS起動するだけで使用メモリがメインメモリの両くらいになるので
仕様書とか開きだしたらアウト
な環境なんで(;´Д`)
開発環境って昔はリソース食いのイメージがあったが、 3Dゲームしてると、そのイメージは消えるなw
827 :
デフォルトの名無しさん :2007/04/11(水) 15:10:22
なんかVB2005で作ったソフトって動作が重くないですか? C#で作ったらもっと早くなりますか?
829 :
デフォルトの名無しさん :2007/04/11(水) 16:06:34
VBよりVC#の方が3倍速い
>>827 .NET ベースの言語なら何使ったって同じ。
>>829 それってやっぱり専用機体? カラーも赤?
832 :
790 :2007/04/11(水) 17:09:23
「Javaとは違うのだよ、Javaとは!」by C#の中の人
VBもVC♯も生成される中間コードが同じ。だから
>>829 は嘘。
ていうかへたくそがC♯で書くならVBで書いた方が速くなる場合もある。
つうか 本当の所C# VBの速度差は何処で出るんだろうか・・・・ 中間コードに変換される時の部分だとは思うけど、 詳細な違いって出てないよな?
835 :
デフォルトの名無しさん :2007/04/11(水) 17:38:59
VBで書いているという気の緩みからくるコードの緩み。 C#で書いているという緊張感からくる人間最適化。
そりゃ単に慣れてないだけだろw
別にVBだから緩むとかはねーだろww 業務で使うばあいなに使っても緊張はするさ
整数のあふれチェックの影響で若干遅いコードになるらしいけど /removeintchecksで無効に出来る。
VBで書いたら遅くなるんじゃないの、常識的に考えて。 VC#でできることをすべてVBができるわけじゃないでしょ? クラスとか構造体とか。 どこかで辻褄あわせされているのだとしたら余剰なコードが吐き出されているん じゃまいか?
>>839 『あえて言おう!カスであると!!』by VB.netの中の人
>>839 お前の常識なんぞ1文の値打ちもないからさ。ソース出せ。
>>839 VBでクラスとか構造体とかができないっていう常識についてkwsk
VBが目立って遅いケースはValiantを使ってる場合だな。 パフォーマンスうんぬんいうなら、option explicit / option strictは必須。 C#でもボクシング・アンボクシングを繰り返すように書けば同じように遅くなる。 クラスとか構造体とかはCLSコンパチにするためにVB6から、 めちゃくちゃ変わってて、C#と変わらんようになってるぞ。
>>843 Valiantも.NET以降なくなったもんな。
あるとすれば、見た目からは想像できない、VB特有の勝手に挿入されるコードなど。 VBでコンパイルしたアセンブリをILDASMやReflectorで開いてみると、 予想外のコードが挿入されていることもある。 こういうのは、最適化がかなり妨げられる可能性もある。
847 :
814 :2007/04/11(水) 20:37:13
>>815 さん、ありがとうございました。
無事動きました!
>>845 書き方が悪かった。汎用データ型のObject型のこと。
Dim i と型指定なしの使い方のことを言いたかった。
そんなキバって言うことじゃないよ悪いけど。 自分が人からどう見えるか想像できないのは馬鹿の証拠
なーんでvolatileがない!!
>>850 そういえばないな。Interlockedで代用できるけどね。
volatileの話を始めるとどこかのマルチスレッドスレみたいになるからこの辺で。
なんで代用できるんだよ。 インタロック操作なんて使ってしまうならVolatileReadつかっとくわ。
そもそもVBのコンパイラはvolatileが必要になるような最適化なんてしてない、 とかだったりしてね。 まあそうでなくてもVolatileRead/VolatileWrite使うか、あるいはフィールドをプロパティでラップすれば 済むだけのことだと思うけど。
主な最適化はJITの仕業だよ。 VolatileReadは遅すぎる。 プロパティでラップは意味が分からない。 てかまあ、そんなことより、宣言だけで使えるの方が世っぽい度簡単だしいろいろ気にする必要ないんだから。 ※せめて属性で適用できるようになってりゃよかったんだが。
世っぽい度ってなんだよw
駅についたら世っぽい兄ちゃんと
つーかんこーどをぷりこんするツールあったよね。 各クライアントでねーちぶにしとくやつ。 つうか、遅いとかいってる奴って何やってるの?
もしかして: Variant
そこまで気にすることはめったにないんだが、 ごく限られた部分で非常にパフォーマンスを重視する部分があったりする。 てかプリコンパイルで速くなるとかおめでたいやつは稲
>>854 > プロパティでラップは意味が分からない。
フィールドに直接volatileを指定できないから、それを公開するプロパティの中でVolatileRead/VolatileWriteを使うってことだろ。
で、クラス内からのアクセスでも、フィールドを直に読み書きせずにプロパティを使うようにすると。
>VolatileRead/VolatileWriteを使うってことだろ 使わなくても大丈夫でしょ。 プロパティってのは実態は要するに関数呼び出しに過ぎないわけで、 つまり関数の返り値が常に同じだ、などという狂った前提にたった最適化は 当然のことながら行われないから。
あのね、JITが最適化したらインライン化される可能性があるし、多分される。 だから、VolatileReadは少なくとも必要、意味的には。 外から見てラップって意味ならもちろんプロパティで十分。 そういうことじゃなくて、内部的に効率よくやりたいときって話。 でも実際にはvolatile形式のフィールドアクセスより、VolatileRead/Writeのほうが速いかも知れん ※ってのは必要箇所だけで呼ぶとかそういうことになるからね。 ちょっとこの辺はきっちり検証できてないな。
>つまり関数の返り値が常に同じだ、などという狂った前提にたった最適化は >当然のことながら行われないから。 プロパティ内での処理が単なるフィールドアクセスでもかよ。 そんな前提初めて聞いたぞ。
あ、
>>863 は、定数にされるって意味じゃなくて、まずインライン化されるって意味な。
インライン化されたらそこは単なるフィールドアクセスなので、 volatileなしじゃ正しくない状態にされる恐れがある(基本的にはマルチスレッドの場合だが)。
あのね、JITが最適化したらインライン化される可能性があるし、多分される。 だから、VolatileReadは少なくとも必要、意味的には。 外から見てラップって意味ならもちろんプロパティで十分。 そういうことじゃなくて、内部的に効率よくやりたいときって話。 でも実際にはvolatile形式のフィールドアクセスより、VolatileRead/Writeのほうが速いかも知れん ※ってのは必要箇所だけで呼ぶとかそういうことになるからね。 ちょっとこの辺はきっちり検証できてないな。
>>863 どぼん氏がCodeZineに書いてるマルチスレッドの記事はそういう前提で書いてあるよ。
プロパティ経由でフィールドにアクセスすると最適化がスキップされる
理由については確か明示されてないけど。
っていうか、そもそもvolatileの意味(というか、volatileが付いてない変数に関して
行われるかもしれない最適化の意味)を知っていれば十分納得できる動作だと思うけど。。
>っていうか、そもそもvolatileの意味(というか、volatileが付いてない変数に関して >行われるかもしれない最適化の意味)を知っていれば十分納得できる動作だと思うけど。。 どういう意味でいってんのかよくわからないんだが、 つまりメソッドのインライン展開は行われない っていってる?
>どぼん氏がCodeZineに書いてるマルチスレッドの記事はそういう前提で書いてあるよ。 どこかおせーて。
なんとなくそれに当たりそうなところを探して見てみたんだが、 これってlockしてるじゃねーか。だったらvolatile関連不要なのは当たり前だ。 それともべつのとこのことか?
>>870 lockとこの最適化の問題は何の関係もないよ。
プロパティに関してここで話題にしている最適化の問題が起こりうるなら、
ロックされていようがいまいが関係ないじゃん。
そもそもアクセスが行われない、ということなんだから。
やっぱり分かってないんじゃないの?
そもそもどうしてvolatileが必要なのか。
.NETのメモリモデルはOoOを認めていてかつコヒーレントキャッシュを前提としていない。 (MSDNではウイークメモリモデルと呼んでる) このためC/C++のvolatileと違ってC#のvolatileにはメモリバリアの意味も含んでいる。 もっともx86 x64系のCPUで動かす限りはOoOはプログラムからは見えないし、 コヒーレントキャッシュも機能している。 ・・・と一応理解している。
>プロパティに関してここで話題にしている最適化の問題 て具体的に何よ。 元々話はvolatileから始まってて、 プロパティでラップして中でVolatileReadとかすりゃvolatileはいらんじゃん て話なんだろ? おれは最初から、ラップすればすむとかそういう話じゃなくて、パフォーマンス関連の話をしてる。 だからなんでプロパティで解決するってのが意味分からんて言ってる。 で、そもそもプロパティにするならVolatileReadとかもいらんだろって言い出したんだろ? それをなんでだ?と俺は聞いてる。 おまい?はメソッド呼び出しなんだからフィールドアクセスが最適化されるわけないっていってるが、 メソッドなんてインライン展開されるかもしれないんだから、メソッドだってこと自体に意味はないって俺は言ってるんだが。
大体、lockとvolatileの要不要は無関係って言ってるみたいだが、 んなわけねーっての。 ていうか、lock自体にvolatileと同様な動作をする働きがある。 だからフィールドへのアクセスをラップするプロパティがアクセスをlockでガードしてるなら フィールドにvolatileは不要。 仮にインライン展開されても、アクセス部分はlockで囲まれたままなんだから問題ない。 けど、lockで囲まれてないなら、volatileは必要(元々必要になるようなアクセスを行うフィールドなら)。
>やっぱり分かってないんじゃないの? >そもそもどうしてvolatileが必要なのか。 おまいが何のことを言ってるのか分からん。 説明してくれ。
>ロックされていようがいまいが関係ないじゃん。 >そもそもアクセスが行われない、ということなんだから。 つまりロックされててもアクセスされないって言ってるのか? ロックの意味を理解してるか?
ロック箇所への突入は暗黙的に揮発読み取りと同様の効果がある。 ロック箇所からの脱出は暗黙的に揮発書き込みと同様の効果がある。
だからフィールドの読み書き部分をlockで囲んでいるならvolatileは不要。 だが囲んでいないなら必要(必要な使い方をしてるなら)。
879 :
デフォルトの名無しさん :2007/04/12(木) 06:04:24
C#にあってまだVBにない機能としては匿名デリゲートがあるが、 これをVBに導入するとなると技術的というより構文的にきつい気がする。 どうなるのかちょいと予想が付かない。
すみません、教えてください。 行選択のみ/リードオンリー/行削除許可なし/データソースにDataTableのDataGridViewがあります。 標準の行削除はさせたくないので、DELETE or BackSpaceで行削除をさせていますが、 最終行を削除したときに行選択が解除されてしまう為、キーを連打されるとエラーになってしまいます。 最終行が削除されたら一行上を選択状態にしたいのですがどうしたらよいでしょうか? 現在はこんな感じに書いています。 If e.KeyCode = Keys.Delete Or e.KeyCode = Keys.Back Then If DataGridView1.Rows.Count <> 0 Then RowNo = DataGridView1.SelectedRows.Item(0).Index DataTbl.Rows(RowNo).Delete() End If End If
DataGridView1(0, RowNo - 1).Selected = Trueで動きました。 ありがとうございました。
Win32のGetLastInputInfoが使えるんじゃないの? っていうか、ググって30秒で見つかったけどこれ。
885 :
883 :2007/04/15(日) 15:58:48
ググって以下のコードを実装してみたのですが、GetIdleTimeメソッド内の GetLastInputInfo(oPLII)でfalseとなり、アイドル時間が取得できません。 申し訳ないですが、アドバイスをお願いします。 Private Declare Function GetLastInputInfo Lib "user32.dll" (ByRef plii As PLASTINPUTINFO) As Boolean <StructLayout(LayoutKind.Sequential)> _ Private Structure PLASTINPUTINFO Public cbSize As Integer Public dwTime As Integer End Structure Public Function GetIdleTime() As Integer Dim oPLII As PLASTINPUTINFO If GetLastInputInfo(oPLII) Then Return oPLII.dwTime End If End Function
cbSize Must be set to sizeof(LASTINPUTINFO).
887 :
883 :2007/04/15(日) 20:50:22
cbSizeniにLASTINPUTINFOのサイズを割り当てるということでしょうか? 申し訳ないですか、割り当てるべきサイズがわかりません、 どのようにサイズを設定すればよいのでしょうか?
System.Runtime.InteropServices 名前空間の Marshal クラス調べると良いよ。 あと MSDN かヘルプで「アンマネージ コードとの相互運用」以下全部嫁。
isdate関数を使って年月だけを入力させたいんだけど yyyy/mm/ddのdd部分だけを削る方法はありますかね
890 :
デフォルトの名無しさん :2007/04/16(月) 15:15:12
>>889 どうかしらんが自分でYearとMonthとって/で結合するとか
Date.Tostring("yyyy/MM")
とか色々あるんじゃね?
891 :
890 :2007/04/16(月) 15:18:45
もしかして入力でyyyy/mm部分だけを入力してその後でIsDateでチェックしたいんなら /01 とかでも適当にくっつけてそれでチェックすりゃいいだろうし いや、意図をうまく汲み取れなくてすまない
isdate関数で入力させるって意味がわからん
893 :
デフォルトの名無しさん :2007/04/16(月) 20:56:02
VB.net(C#)からバッチファイルをキックするにはどうすれば良いでしょうか? ※C:\hoge.bat
Process
895 :
デフォルトの名無しさん :2007/04/16(月) 22:07:05
メールBOMってなんですか??
byte order mark
Begin Of Mailだったりして From ... 行頭Fromはエスケープ>Fromしたような
process.start でよくない?
メールBOMB なら知ってるけど
900 :
デフォルトの名無しさん :2007/04/17(火) 12:09:02
VBでGUI作ったのだけれど、他人に配布したいので、最初に実行してから 一ヶ月間だけ有効なライセンス管理みたいなことをしたいのだが、 お手軽な方法を教えてくれ。あまり簡単に破られても困るけれど、 ある程度詳しい人に破られるなら仕方ない。そういうライセンスの方式をよろしく。
何、偉そうに投げてんだ、こいつ
>>900 起動回数の制限なんてダメ?
レジストリに暗号化した起動回数をバイナリで保存とかだと簡単。
自分で考えろ屋ヴォケ レジストリに暗号化でもして適当に書き込んどけよ なんか偉そうだな
VBでGUIって…最近覚えた言葉かよw ライセンスだの.NETやjavaはソースがリバースできるだの 言うやつに限って大したことできない。 試しにアップしてみ。
>>904 まぁ普通に考えたら
最初の説明の時WindowsアプリとかWebアプリ/サービスとかになるわな・・・・
どんな凝った仕掛けをしても,逆アセンブラで直接改造される恐れがあるから 難読化は必須
>>906 難読可とかってどうやるの?
確かに普通にビルドしたEXEを逆コンパイルやったらソースコード殆ど読めるレベルだったわ
ソースなんか読みたければ、勝手に読めというレベル。 GUIなら制御を見ていれば、大まかなロジックや代替案等が浮かぶから。
>>908 ぶっちゃけそうなんだけど知識として知って置いて損はないかな?と思って聞いてみたw
910 :
デフォルトの名無しさん :2007/04/17(火) 16:40:25
NanDoku_3.0.7を使っているのだが、 変更項目の設定で、全部選択して難読化すると、難読化は成功するのだが、出来上がったプログラムを実行すると System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 が発生するんだが、何でかな? クラス変数とイベント の難読化のチェックを外すと、問題なく動く。何でや?
どっかで型名をstringで決め打ちしてるんじゃないの
912 :
デフォルトの名無しさん :2007/04/17(火) 16:52:31
>911 さんきゅう。 ”どっかで”というよりもいたる所で、変数やFunctionの戻り値を xxx as String って型で宣言しているのだけれど、それがまずいと いうこと??
そうじゃねーだろがw
これはひどいwwwwww
915 :
デフォルトの名無しさん :2007/04/17(火) 17:27:51
>914 笑ってないで教えてくれよ。頼むよ。
リフレクション、プラグイン、構成設定、DI なんて絡みに激しく相性が悪いのが難読化
917 :
883 :2007/04/17(火) 21:49:37
>>888 解決しました!本当にありがとうございす!!
>>910 自分はプロパティを難読化すると起動しなくなります。
他は大丈夫なのに、なんで?
プロパティを難読化…
920 :
デフォルトの名無しさん :2007/04/18(水) 11:10:48
初心者ですみませんが教えてください。 CSVファイルの中のある一定の文字を検索するプログラムを作りたいのですが、 そういった命令はあるのでしょうか?
データテーブルにほりこんでSELECTでもかけてみるとか と骨髄反射で思いついたことをしゃべってみるテスト
一文字ずつチェックかけるとか
>>920 1行単位で読んで、必要であればカンマで分割して比較すれば
いいだけの話。だが、「命令」とか言ってる間はどうにも手に負えんと思う。
924 :
デフォルトの名無しさん :2007/04/18(水) 14:53:42
D&Dに関してです。C#スレでも訊いてたのですが、まだ回答頂けてませんでした。 すみませんがこちらでも訊かせてください。お願いします。 Dropした先のコントロールなり外部アプリケーションから ソース側にDropしたことを知らせるために QueryContinueDrag イベント が発生して、引数 QueryContinueDragEventArgs に対して Action プロパティ に Drop が帰ってくるのですが、このときに、 アイテムの 「移動」 をした場合はこれを知ってソース側でそのアイテムを 削除(Remove)できると Help に書かれていました。 ------- ● DragAction の値が Drop の場合、ドロップ効果の値がソースに返されます。 ソース アプリケーションでは、ソース データに対して適切な操作を実行できます。 たとえば、移動操作だった場合は、データの切り取りなどを実行できます。 ------- これを実装したのですが、その際、この QueryContinueDrag イベント のハンドラー内で、「移動」 だったのか 「コピー」 だったのかを知るには どうすればいいでしょう?このイベントでは、DragDropEffects 列挙体型の 値を受け取れるでしょうか?よろしくお願いします。
925 :
デフォルトの名無しさん :2007/04/18(水) 14:55:01
>>924 失礼しました
訂正 >これを実装したのですが -> これを実装したいのですが
ソースでDragDropEffectsを知りたいんだろ? DoDragDropの戻り値を見るだろ常識的に考えて
927 :
デフォルトの名無しさん :2007/04/18(水) 15:16:54
>>926 >DoDragDropの戻り値を見るだろ常識的に考えて
ありがとうございます。Drop先の動作が完了して初めてDoDragDrop()が
完了するのですね、この流れが分っていませんでした、助かりました。
またよろしくお願いします。
C#板なにやってんのwwww
C#板?
930 :
デフォルトの名無しさん :2007/04/18(水) 17:14:08
grepで済むことを何でプログラム組まなならんのやら シロートほど車輪を再発明したがるよね
ASP.NETでログインページ作ってます ユーザごとに違うメニューページを表示させたいのですが、どのようにして遷移させればいいのでしょうか? 現在、login.aspxからmenu.aspxに遷移させることはできています。 web.configに <authentication mode="Forms"> <forms name="xxxxx" protection="All" loginUrl="login.aspx" timeout="30" defaultUrl="menu.aspx"/> </authentication> を記述 ログインボタンが押されると入力されたユーザID、パスワードをDBに探しにいき、見つけた場合、 FormsAuthentication.RedirectFromLoginPage(UserId.Text, False) で遷移するようになっています。 よろしくお願いします。
933 :
デフォルトの名無しさん :2007/04/18(水) 18:42:45
>ユーザごとに違うメニューページを表示させたいのですが、どのようにして遷移させれば これはどうやって飛び先をもてばいいかってこと? イマイチ要件がつかめない・・・
>>932 ユーザの権限なりなんなりによって、選択できるメニュー項目が違う、ってことかい?
ページ自体を変えたいならRedirectFrom〜は使えないので、 ユーザに合わせて自分でリダイレクト。 メニューの方でユーザに合わせて表示を変えるなんて方法もあるし、 メニューページがリクエストされた段階でURLリライトするとか Transferするとかの方法もあるかな。
936 :
932 :2007/04/18(水) 23:37:21
>>934 の言うとおり、ユーザによって使える機能を変えるためにメニュー画面がロードされたときに
ユーザの種類により表示されるボタンを変えると言うことにトライしてましたが、表示されないボタンの
コードでコントロールが見つからないというエラーが発生したので、ユーザの種類によりメニュー画面を
持たせようと思いました。
>>935 するとFormsAuthenticationは使えないと言うことですか?
MSDNのRedirectFromLoginPageで変えることができそうなことが書いてあったのですが。
どうすれば変えることができるのかはわかりませんでしたが。
> 表示されないボタンのコードでコントロールが見つからないというエラーが発生したので ボタンそのものを出力しないようにでもしたのか? Button.Visibleをつかってを非表示にしてみるといい。
初心者質問なんですが、配列を計算する関数をいくつか作って(標準偏差など) Function ( a() , index, Nagasa) 1次元配列では順調に作動しています。そして構造体を 使い始めて構造体の配列にして、その要素(1次元配列)をa() のとことに入れると拒否されますが、 これはなぜなのでしょう?構造体丸ごとなら受け渡しできましたが、それだと全部の関数を2種類つくらないと いけないのかなと思いまして。 Function (Hoge().geho, index, Nagasa )
Hoge構造体にはgehoという名前のメンバがあって, Hogeオブジェクトの配列の各要素からそれぞれ gehoの値だけを抜き出した配列を渡したいってことか? その様子から察するとそんなことをする意味は全く無さそうだから その都度a(0).gehoでアクセスしろ
>>939 早速ありがとうございます。それは a(i)=Hoge(i).geho みたいなのでループさせてとりだして
Function ( a(), index, Nagasa) のもとの形を使うと言うことでしょうか?
>>940 そもそもお前の質問がわからん。
aが配列なのはわかったが、Hoge().gehoは配列なのか?
だいたいHoge配列のgehoプロパティってなによ?
Hogeのgehoプロパティとは違うってことはわかってるよな?
structure DataKumi dim geho as double end structure で構造体を決め、 dim Hoge as Datakumi() で配列にしたもので、doubleの1次元配列です。
>>942 Hoge(0).gehoであってHoge.gech()ではないのだからエラーになるのは当たり前。
これならいけるだろうが、無意味だろ。
structure DataKumi
dim geho() as double
end structure
Sub Main
dim Hoge() DataKumi
redim Hoge.geho(10) as double
:
>>943 ありがとうございます。人間には同じ1次元配列でも解釈しないのですね。
構造体と配列を使い分けてみます。
>人間には同じ1次元配列でも解釈しないのですね 無茶言うなw
これだから人間は……
947 :
デフォルトの名無しさん :2007/04/19(木) 11:51:24
Dim p As Process = System.Diagnostics.Process.Start("C:\my.bat") Dim handleDosWin As Integer =p.MainWindowHandle.ToInt32 という処理でmy.bat実行後に表示されるDOS窓のハンドルを入手したかった のよね。でも、プロセスがスタートするのが遅れると、ハンドルに0の値 が入る場合があるのよね。確実にDOS窓のハンドルをゲットする方法 は有るかしら?
>>947 なんか書き方がキモイ
というか、普通ならそれで大体問題ないと思うけど
>プロセスがスタートするのが遅れると、ハンドルに0の値
が入る場合があるのよね
つうか・・・こう明示している根拠は何なんだ?
例えば100mSecのスレッドスリープかけたらどうなる?
949 :
948 :2007/04/19(木) 12:16:08
ちょっと読み直したらIDちゃうから 大きく勘違いしてたわ ちょっと考えればわかりそうなものだけど・・・・
950 :
932 :2007/04/19(木) 12:16:17
>>937 サンクス
試してみたら、OKだったのでメニューページ追加はやめにします
もう一つ質問です
Response.RedirectでSystem.Threading.ThreadAbortExceptionの初回例外が発生しますが、
放っておいていいものなのでしょうか?
Try Catchをかましてもイミディエイトウィンドウには出てきますが
>>950 Redirectのときの第二引数辺りの設定で出てそうな悪寒
スレッドが停止されました みたいな
952 :
948 :2007/04/19(木) 13:13:31
953 :
924 :2007/04/19(木) 14:46:03
>>924 >>927 の件で関連した質問になりますが、
DoDragDrop()メソッドが終了して戻ってきたときに、
DragDropEffects 列挙体の戻り値以外に、たとえば
どの場所にDropされたか(Folderとかの入れ物の場所等)も
知りたいと思いました。
例として、たとえばExplorerでは、一つのインスタンスから別の
インスタンスにD&Dしたとき、移動でもコピーでもソース側であっても
関係する TreeNode には +印 がついたり、Expandされたり
していました。これと同等の動作をしたい場合、移動先あるいは
コピー先の場所を知る必要がありますが、それは可能でしょうか?
エスパー要請ktkr そのへんはコントロールの仕様なんじゃなかったカナ とか適当にエスパーレスしてみる
955 :
932 :2007/04/19(木) 15:24:18
>>953 それはDropSourceの仕事じゃなくてDropTargetの仕事。
別アプリにそうさせたいなら、そのアプリがそういう実装になってないと無理。
自分のアプリでしたいならControl.DragDropとかControl.DragOverとかの
イベントを実装する。
つーかその位調べてからドラッグドロップなんて実装しろって話
957 :
デフォルトの名無しさん :2007/04/19(木) 17:37:06
>952 >関連付けられたプロセスにメイン ウィンドウがない場合、 >MainWindowHandle 値はゼロです。 と書いてあるので、DOS窓のハンドルを知るにはどうしたらいいかしら?
VC++2005なのですが、あるURLのWEBページをHTMLとしてローカルにダウンロードするプログラムを作りたいと思っています。 どこか参考になるサイト等ありますか?
すみませんすれ間違えましたOTL
>>957 コンソールウィンドウはコンソールアプリケーションのプロセスが所有しているわけではない。
コンソールウィンドウのウィンドウハンドルを取得する直接的なAPIは提供されてないから、
SetConsoleTitleでユニークなタイトルをつけてから、FindWindowするのが一般的。
尤も、今回の場合は対象のプロセス(cmd.exe)を弄れないから無理だけど。
962 :
デフォルトの名無しさん :2007/04/19(木) 19:22:24
>>954 >>956 どうもです。おっしゃるとおりで、一応Drop先では表示処理は必要な情報が
あるため実装することが可能でした。やはり、Source側ではDrop先での情報が
すべて返って来るわけではないため、完全な表示処理ができそうもないようでした。
ただ、Explorerの複数のインスタンス間でのD&Dですと、前記のようにDrop先でも
Source側でも確実に表示処理されていました。それで何か情報をやり取り
しているのかなと思ったのですが、Explorerと他の別のアプリケーションとの間
でのD&Dですと表示の後処理が完全ではありませんでした。ということは、
Explorer同士の場合でだけ成り立つ情報のやり取りが実装されているんでしょうね、
やはり万能の解はなさそうということで納得して今回は可能なところまでにしました。
良いアイデアがありましたらまた教えてください。ありがとうございました。
>>955 ほっとけ。
わざわざ回避する必要もない。
むしろほっとくほうがいい。
965 :
932 :2007/04/19(木) 23:29:35
>>964 それはResponse.End()がきちんと作動しているからという意味でしょうか?
メソッドの続きやページ処理の続きが実行されないように、 つまり直感に反した動作をしないようにResponse.Endが実行される。 実行させなくするってことは、このへん問題ないように 自分で考えなきゃならないってこと。
967 :
932 :2007/04/20(金) 02:25:24
そんなことは知ってますが
968 :
デフォルトの名無しさん :2007/04/20(金) 06:23:55
971 :
932 :2007/04/20(金) 08:23:51
>>966 解説サンクス
気にしないようにします
しかし、この辺を解説してるところってあまり見かけませんね
確かにあまり見かけんなぁ。 理解せずに例外だけ回避しようとするのは やたら見かけるんだがな…
974 :
デフォルトの名無しさん :2007/04/20(金) 10:32:05
教えてください。 VB6.0 WebBrowser1.Document.body.innerText .NETではどのようにしたら良いのでしょうか?
975 :
デフォルトの名無しさん :2007/04/20(金) 10:35:54
沖縄県の方へ(命に関わる注意事項です) 沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。 民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。 この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから… ※一国二制度 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。) さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。 今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。 自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。 発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
976 :
デフォルトの名無しさん :2007/04/20(金) 11:11:51
>>974 解決しました。
WebBrowser1.Document.Body.InnerText
VB2005でのデータベースアプリについて教えてください。 BindingSourceとTextBoxをバインドしています。 BindingSourceのカレントレコードが変更される際に入力をチェックして、 入力のキャンセルや、レコード移動のキャンセルを行いたいのですが、 どうしたらいいでしょうか。 PositionChangedやCurrentChangedイベントで出来るかと思ったのですが、 これらは移動後に発生するみたいですし。 よろしくお願いします。
sage
VB.net 2005を使用しています。 起動時にタスクトレイのみにアイコンを表示し、フォームは非表示にしたいのですが Me.Hide()、Me.Visible = Falseにしてもフォームが表示されてしまいます。 MainメソッドでApplication.Run()を呼び出すと以下のエラーが発生してしまいます。 「単一スレッド上で 2 回目のメッセージ ループを開始することは有効な操作ではありません。・・・」 ちなみにPublic Sub main(Object,EventArgs)で、アプリケーションフレームワークは有効です。 アドバイスお願いいたします。
VB.NET以前に日本語に習熟すべきだと思う。 何で読み手の目線に立って文章推敲できないんだ?
>>981 フォームが表示されるのかエラーなのか全然わからん
985 :
デフォルトの名無しさん :2007/04/21(土) 14:39:54
VB2003で
http://salv.miscnotes.com/2005/01/post_69.php このページのようにツールボックスから直接フォームに追加できる自作コントロールを作製しました
このプログラムをVB2005ExpressEditionへ移行させたのですが
フォームのコントロール宣言部分で自作コントロールだけ
「Global.」を先頭に入れろと警告が出てきてしまいます。
「Global.」を追加しても追加してもフォームをいじった後にビルドすると毎回警告です(´;ω;`)
どうすればいいのでしょうか?
>>985 そんなトリッキーな方法を使わず、ToolBoxItemAttribute を使え。
↓こういう風にすればおk。
<System.ComponentModel.ToolboxItem(True)> _
Public Class TextBoxEx
Inherits System.Windows.Forms.TextBox
(略)
End Class
987 :
デフォルトの名無しさん :2007/04/21(土) 20:03:34
>>986 ありがとうございます
その方法で簡単に自作コントロールが作れるようになったのですが
やはりビルドするときに「Global.」をつけるようにエラーがでてしまいます
「mona」プロジェクト内に
自作コントロール「ctrl1」があり
フォーム「main_form」に「ctrl1」をつけている状態です
「main_form」内の
Private Sub InitializeComponent()
で「Global.mona.ctrl1」と宣言しているのに
ビルドすると「mona.ctrl1」に変化してしまいエラーがでている状態です
986の回答はトンチンカンだから無視していいと思うけど。 その属性は(たぶん)既存のコントロールを継承したコントロールではなく ゼロから自作したコントロールをツールボックスに表示するためのものだと思うが、 そんなことは、少なくとも現状ではMS内部の人間以外不可能だから関係ないよ。 2005ならプロジェクト内に既存のコントロール継承したクラスを書いた場合でも、 一度ビルドすれば他になにもしなくてもツールボックスに表示されるし。 さて問題のエラーだけど、要はクラス名がバッティングしてるんじゃないの? 参照設定してる別のプロジェクトでクラスライブラリにしてるクラスと まったく同じクラスをプロジェクトで定義してるとか間抜けなことやってるんだと思う。
989 :
デフォルトの名無しさん :2007/04/21(土) 22:24:26
>>988 うわーーーーーーーーーー
やっちまってたorz
プロジェクト名と同じ名前のクラスが存在してました(゜∀。)ワヒャヒャヒャヒャヒャヒャ
名前を変えたらおkになったよ
ありがとうヽ(´ー`)ノ
DLLファイルって、参照してるExeと同じ配下にないとエラーになっちゃうけど 別ディレクトリに配置するにはどのようにすればよいのでしょうか? アドバイスお願いします。
ローカルコピーにしなければいいんじゃね?違うか… っていうかそういうことしないほうがいいよ。マジで。 それで起こる問題を.NETで解決しようとしてるんだから。
やめとけ
ちゃんと理解した上でやるならいいが、 そうでないならやるだけでも苦労する可能性大。 そしてなんかの拍子にトラブるぞ。
ちょっと質問です 1. ソリューションAにユーザーコントロールを継承して作ったユーザーコントロールクラスAを含むプロジェクトAがあり それはDLLとしてビルド 同ソリューション内にフォームを含むプロジェクトBを作成し、前述のプロジェクト参照でプロジェクトAを追加し Windowsアプリケーションとしてビルド(これがスタートアッププロジェクト) こうするとプロジェクトBでフォームを作成する際にツールボックスにプロジェクトAのユーザーコントロールクラスAが表示されます。 2. 上記と同様の条件でプロジェクトAがテキストボックスなどの既存のコントロールを継承して作られたコントロールクラスBの場合 プロジェクトBでフォームを作成する際にツールボックスにコントロールクラスBが表示されません。 これは、ツールボックスでアイテムの追加を利用してやれば無理あり可能だとは思いますが、スマートでないので1と同様の操作でツールボックスにコントロールを追加してやることはできないのでしょうか? プロジェクトBに直接コントロールクラスBを追加してやるとツールボックスにコントロールBが表示されますが、機能拡張などを考えたりプロジェクト内のファイルが増加する為できればこの方法はとりたくありません。 もし、なにか御存じの方がいらっしゃれば情報を提供していただけたら・・・と思います。 Ps.ちょっと説明の言い回しが微妙なので、もし不足なようであれば追加で説明はさせていただきます。
996 :
デフォルトの名無しさん :2007/04/23(月) 10:03:50
VBで10万個くらいのファイル(一つ数十キロバイト、同じフォルダに入っている)を System.IO.File.Delete(pathFileName) で1個ずつ消すと、数分かかるんだけれど、もっと高速に一気に消す方法ありますか?
formatc
format 俺の人生
999 :
デフォルトの名無しさん :2007/04/23(月) 11:21:15
>997,998 特定のフォルダの中を消したいのだけれど、formatだとそれはできないよな。 何かいい方法をおしえてほしい。
1000 :
デフォルトの名無しさん :2007/04/23(月) 11:35:56
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。