[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/09 11:51 / Filesize : 214 KB / Number-of Response : 894
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ(Part31)



1 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:44:56 ]
前スレ

VB.NET質問スレ(Part30)
pc12.2ch.net/test/read.cgi/tech/1242522019/l50

テンプレは>>2

141 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 21:31:09 ]
全然違う
コントロールの描画処理はOnPaintというメソッドの中に書かれている。
描画が終わった後,最後に基底クラス(Controlクラス)のOnPaintを呼ぶ。(呼ばなくてもいい)
ControlクラスのOnPaintメソッドの中にはPaintイベントを発生させる処理だけが書かれており,
Paintイベントが発生する。
だから,派生クラスを作ってOnPaintをオーバーライドしてその中に描画処理を書けば
基底クラスの描画処理は行われない。

142 名前:140 mailto:sage [2009/08/30(日) 22:17:53 ]
すまん、MyBase.OnPaint()の間違い。
あと、一番最後の「コントロール自身の再描画は行われない。」は「基底クラスの描画処理が行われない。」
の間違い。
いいたかったことは、>>141と同じこと。

143 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 04:22:17 ]
>>141
>描画が終わった後,最後に基底クラス(Controlクラス)のOnPaintを呼ぶ
これなんだが、MSDNの例だと最初に呼んでる
最後に呼ぶと線画完了後にイベント起きることになる

俺がMSDNで調べた限りでは、
まず、最初にMyBase.OnPaint(e)を呼び出し、Paintイベントを発行させて、
その引数eをもとにレンダリングするのが正しい作法じゃないかな

したがって、
Paintイベントは再描画される前に発生し、そのイベントの引数により描画内容を変更することができる
が正解だと思う

実際すべてのコントロールがそのように実装されてるかどうかはしらね


144 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 09:42:22 ]
実際にはすべてのコントロールが描画後にMyBase.OnPaintを呼んでる
通例,On○○をオーバーライドするときには基底クラスのOn○○を先に呼ぶことが多いんだけど
OnPaintの場合は後で呼ばないとPaintイベントで描画した内容が見えなくなるだろ

145 名前:144 mailto:sage [2009/08/31(月) 10:03:26 ]
捕捉
コントロールがControlクラスから直接派生している場合は,OnPaintには何の描画処理も書かれておらず,
ただPaintイベントを発生させる処理だけが書かれているので,後で呼ぶことができる。
こうしておけば,コントロールのユーザがPaintイベントを使うことによって描画を上書きできる。
でも,Buttonなど既にOnPaintに描画処理が書かれているコントロールから派生する場合は話が違ってくる。
そのようなサンプルで先にOnPaintを呼んでるのは,まず基底クラスに描画させてその上に描画するため。
その場合,その自作コントロールのPaintイベントは描画が行われる前に呼び出されてしまうので使えなくなる。
(そのコントロールのユーザがPaintイベントで描画してもOnPaintでの描画に上書きされてしまうから)

146 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 19:58:56 ]
言っちゃ悪いけど、そんなこと普通MSDNの記述を読んでちょっと考えればわかる
当たり前のことじゃないか?

少なくとも俺はそうだったが・・・

147 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 22:20:05 ]
>>146
Paintイベントのヘルプだけ見てもここまでわからないだろ
まあ、関連しそうなところ全部読んで理解すればわかるんだろうが

MSDN全部読んで調べろっていうなら、質問スレの質問ほとんどがそれで済む
すくなくともここは初心者お断りじゃないだろう

148 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 22:44:30 ]
まあ145まではいかなくても,落ち着いて自分の頭で考えたら少なくとも>>143みたいな早とちりには至らないわな

149 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 23:14:45 ]
VB.netのくだすれが無い以上、ここにくだすれ向けの質問も書かざるを得ないとは思う。
くだすれ作れよってことなら立てるだけなら誰でもできるが、果たして質問に答える方の人材はどうだろうかとも。



150 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 23:29:31 ]
多分答える人たちは両方のスレで同じ

151 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 12:04:31 ]
まあ、あれだ。
標準のクラスがどうやってるかは Reflector で調べるのが確実。

152 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:31:02 ]
くだらん質問ですみません。

VB6で書いたコードをVB2008で読み込んで自動でコードを
変換させました。

CommonDialog1.CancelError = True

VB2008のCommonDialogクラスにはCancelErrorなんてプロ
パティは無いそうで、変換できないといわれました。

VB2008のコモンダイアログでCancelボタンを押したときの
値ってどこで取得したらよろしいんでしょう?

なにとぞよろしこ

153 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:35:36 ]
ShowDialogの返値

154 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:43:33 ]
resultってVB6もあったよね?

155 名前:152 mailto:sage [2009/09/01(火) 14:45:29 ]
DialogResult.Cancelっていう値を返していたのね。
分かりました。へっぽこですんません。ありがd

156 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:27:33 ]
おまいらが思う、世界の歴史上最も美しいオープンソースのVB.NETを紹介しろよ。

157 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:32:08 ]
美しいとかいう以前に無いから
.NETのオープンソースはほとんど全てC#

158 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:17:15 ]
ほとんどなのか全てなのかはっきりしろ

159 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:43:43 ]
じゃVB.NETはまれによくあるんだろうか



160 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:48:12 ]
まれなのかよくあるのかはっきりしろ

161 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:02:09 ]
CodePlexなんかにはVB.NETで書かれたものもほんの少しはあるけど
C#とは比べ物にならないので,そういうの漁るならC#は必須
ほとんど一緒だから慣れたら脳内翻訳できる

162 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:09:32 ]
質問です。
あるクラスから Form が呼び出されている場合、その Form で自分の呼び出し元クラスを取得する方法はありますでしょうか?

呼び出し元クラスの他のメソッドを実行したいのです。

現在は下記のように書いていますが、もっとスマートな方法はありますでしょうか?
フォーム frmX でクラス HOGE を New してっていうのが違和感があります。
HOGE.A() で f.Tag = Me とすれば frmX で
Call Ctype(Me.Tag, HOGE).B()
としてもいけそうですが、これもスマートではない気がします。

それとも、呼び出し元クラスのメソッドを実行する設計自体が問題あるのでしょうか?

Public Class HOGE
  Public Sub A()
    Dim f as New frmX
    f.Show()
  End Sub

  Public Sub B()
    MessageBox.Show("Hello!")
  End Sub
End Class

Public Class frmX
  Private Sub Button1_Click(Byval sender as System.Object, Byval e as System.Eventargs) Hanles Button1.Click
    Dim H As New Hoge
    Call H.B()
  End Sub
End Class

163 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:12:28 ]
frmXのコンストラクタの引数として渡す
一般に,呼び出し元に依存するような設計は良くないんだけどVBならどうでもいいよ

164 名前:162 mailto:sage [2009/09/02(水) 10:25:14 ]
>>163
ありがとうございます。
なるほど!です。

frmX で

Private _Caller As HOGE
Public Sub New(Caller As HOGE)
  InitializeComponent()
  _Caller = Caller
End Sub

Private Sub Button1_Click(〜
  Call _Caller.B()
End Sub
とすることでできました。

Form の既定のプロパティに呼び出し元を取得できるものでもあれば、と思っていたのですが
見つけることはできませんでした。

呼び出し元に依存するような設計の良くないと言われるのはどういった点でしょうか?
今後の参考にさせていただきたいので、お教えいただければと思います。

165 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:29:37 ]
逆に言うとそのHOGEがないと呼び出せないということになる
HOGEの中身によるけど,あんまりその場に依存した具体的なクラスだとfrmXが使い回しできなくなる

166 名前:162 mailto:sage [2009/09/02(水) 10:44:48 ]
開発しているシステムに「HOGE」「FOO」「BAR」みたいに3つの機能があるとします。
で、それぞれの機能をクラスに分けようと思っています。
もっと言うと別Dllにしてしまおうと考えています。

各機能で固有の機能や画面は各クラスで実装するつもりで、メインプログラムから
例えば処理HOGEを行う場合は、クラスHOGEのインスタンスを作成し、そのクラスの
メソッドを実行しようとしています。

frmX を他のクラスから使いまわすということはないです。

複数のクラスから使いまわす予定のものは呼び出し元クラスに依存しないような設計に
すれば問題ないですか?

167 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 11:41:21 ]
他でも使う機能なら、フォームのクラスに載せないで、
共通機能として別クラスに作るだけでいいんじゃないの?

168 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 12:10:05 ]
>>162 >>164
「呼び出し元」て…

frmX にイベントを追加するのが一般的じゃね?

Class HOGE
  Public Sub ...
    Dim f As New frmX
    AddHandler f.押された, AddressOf B    ' ←─ ここでハンドラ追加
    f.Show()
  End Sub
  :
  Public Sub B(ByVal self As Object, ByVal e As EventArgs)
    MessageBox.Show("Hello!")
  End Sub
End Class

Class frmX
  :
  Public Event 押された(ByVal self As Object, ByVal e As EventArgs)
  :
  Private Sub Button1_Click(...
    RaiseEvent 押された(Me, New EventArgs)
  End Sub
End Class

169 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 12:15:11 ]
これ全然一般的じゃないだろw



170 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 12:17:27 ]
使い回さないって言ってるんだから普通にHOGEのメソッド呼べばいいと思うよ
>>166を読む限り,frmXの処理は密接にHOGEに結びついてるみたいだから
無理にイベントを使っても強くHOGEを意識する形になると思われるのであまり意味がない
本当に分離するなら,frmXで触るデータを保持するクラスをHOGEとは別に作る

171 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 14:07:34 ]
VB2008を使っています。
関数の処理時間を計ろうと以下のクラスを作成しました。

Public Class ProcTime
Private dtDiff As DateTime

Public Sub New()
dtDiff = DateTime.Now
End Sub

Protected Overrides Sub Finalize()
Debug.Print(DateTime.Now.Subtract(dtDiff).Milliseconds.ToString())
End Sub
End Class

'時間を計る関数に
Private Sub Test()
Dim pt As New ProcTime
'〜処理〜
End Sub

とした場合、正しく計れないのですが間違っていますか?

172 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 14:11:06 ]
Finalizeはいつ呼ばれるかわからないから,そういう使い方はできない。
そういうパフォーマンス計測にはSystem.Diagnostics.Stopwatchという専用のクラスがあるからそれを使う。

173 名前:171 mailto:sage [2009/09/02(水) 14:22:34 ]
早速の回答ありがとうございます。

時間を計測したい関数の最初と最後に Start、Stop を配置して
計測するんですね、分りました。

174 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 16:54:24 ]
c++で作ったDLLの関数が次のような場合
>int Foo(void **param) 実際はparamが複数ある
>ダブルポインタを渡してオブジェクトのポインタ値を取得する。NULL値も許容する。
VB.net2003での宣言を以下のようにしたらNothingを渡してもNULL(0)になりませんでした。
>Declare Ansi Function Foo Lib "hoge.dll" (ByRef param As IntPtr) As Int32
VBからポインタ値の先を直接参照するわけではなく、ハンドル的な使い方をしたいのです。
NULL値も渡せるようにするにはどうしたらいいのでしょうか?

175 名前:174 mailto:sage [2009/09/02(水) 16:56:48 ]
書き漏れがありました。
C++のDLLはネイティブ(アンマネージド)DLLです。

176 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:02:17 ]
ByVal param As IntPtr()

177 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:13:36 ]
NULLに相当するのはIntPtr.Zero

178 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:20:35 ]
>>176
Declare Ansi Function Foo Lib "hoge.dll" (ByVal param As IntPtr()) As Int32
としたところ「型 'System.IntPtr' の値を 'System.IntPtr の 1 次元配列' に変換できません。」とエラーになってしまいました。
呼び出し側も何か書き方があるのでしょうか?
>Dim param As IntPtr
>Dim b = Foo(param, Nothing)  '引数が2個の場合

179 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:25:03 ]
配列知らないって言われても困る



180 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:38:14 ]
VB2008で「ビルド|発行」を実行したら、setup.exeを含むインストーラっ
ぽいのができてしまいました。setup.exeを実行すればなんとなくインスト
ールされて立ち上がります。しかし、インストールされた実行ファイル等は
programfilesのフォルダには影も形もありません。

そもそもVB6の時のように、インストール不要のexeファイルを作りたいの
ですが、VB.Netではできないのでしょうか?

181 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:43:44 ]
基本的に/bin/Release以下のファイルをコピーするだけでいい

182 名前:180 mailto:sage [2009/09/02(水) 17:48:36 ]
>>181
ありがと〜

183 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 18:19:14 ]
ゴミを入れんなよゴミを

184 名前:デフォルトの名無しさん [2009/09/05(土) 04:06:17 ]
今後vb.netで開発を行っていくのにはどのバージョンが適切なのでしょうか?
vb2005、vb2008はどちらかというと個人向けとwikiに書かれていました。
vb.net 2003が良いのでしょうか?
ご教授願います。

185 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 04:50:09 ]
>>184
特に事情がなければ新しいのを使えよ

186 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 04:53:04 ]
どのwikiに書かれてたのか知らんけど、多分誤読してる

187 名前:デフォルトの名無しさん [2009/09/05(土) 09:35:14 ]
>>185
>>186

ありがとうございます。
>>186さんの言うとおり誤読でした。
vb2008を検討してみます。

188 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:36:56 ]
>>184
いまどき2003は無いよ。IDEボロだし。
WPFとか最新機能を使わないのなら2005でOK
2008でも良いけどIDEが劇重い

189 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:40:19 ]
そうか?
まともなPCなら2008の方が体感速度は速い気がする



190 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:44:53 ]
たいして変わらん

191 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:48:36 ]
Core2 T550 1.67GHz は今時のまともなPCではありませんか Orz

192 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:49:16 ]
T5500だった

193 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:53:08 ]
2008は型推論とかXMLリテラルとか便利だよ

194 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:09:39 ]
Eclipseの方がいいよ。VBは使えないけど

195 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:19:14 ]
Excel VBA のエディタよりは使いやすいな。>Eclipse

196 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:24:35 ]
VB2008は使いやすいよ
インテリセンス超速いし,徹底的に洗練されてる感じ
ゴテゴテのEclipseとは対照的

197 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:56:54 ]
ゲイツ乙

198 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 11:49:02 ]
俺が、VB2008がEclipseよりも劣っていると思うこと。

・スコープを考慮した変数名の一括置換が出来ないなど各種リファクタリング機能が無い叉は貧弱。
・編集ウィンドウのタブに閉じる「×」が無いため閉じるのが面倒。また全てを一度に閉じる機能も無い。
・プライベート変数からプロパティを自動生成する機能が無い。
・プラグインが作り難い。
・Javaで書かれたEclipseよりもなぜか重く感じる。


199 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 11:52:07 ]
あ、もうひとつあった。最大の欠点は、Windows専用であることだな。



200 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 11:53:45 ]
>>198
初心者が誤解するので、Express しか使ったことがないなら
そう書いて欲しいもんだ。

201 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 11:54:43 ]
じゃ、使わなきゃいいじゃん。

202 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:01:26 ]
あと、タブクリックで最大化する機能も欲しいな。

203 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 19:40:47 ]
スコープを考慮した変数名の一括置換はできる。
全てのドキュメントを閉じる、は付いてる。
プロパティはコードスニペットを使う。

いつからEclipseがVBに対応したのか知らないけど。

204 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:08:08 ]
このウインドウ以外全て閉じるはあったけど、全てを閉じるってあったっけ?
あんま使わないから覚えてないけど。

既にあるプライベート変数から、プロパティ作るのと
prop->のコードスニペットは別の動作だと思う。

205 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:51:58 ]
×ボタンとか

206 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:54:57 ]
EclipseよりVS2008が使い易いとか言ってる奴は素人だろ

207 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:19:24 ]
IDE付属のテキストエディタ如きで満足している奴は皆素人ってことだろ。
まあ、俺はテキストエディタ素人だから、JavaはNetBeans、.NET系はVisualStudio使うけど。

208 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:55:18 ]
釣りとは思うが時代錯誤な見解だね。

でも今時になってもリアルで「エディタにこだわる俺はお前らとは違うんだ」っていう
痛い奴がいたりするからあまり笑えないかも。

209 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:09:57 ]
Eclipseがいいと思うなら思えばいい
だがここはVB.NETスレだからEclipseとかいらん



210 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 03:14:44 ]
だがC#と同じぐらいのリファクタリング機能はVBにもつけてほしいのう

211 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 03:25:34 ]
VBプログラマはリファクタリングの意味すら分ってないから不要だろ

212 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 03:35:27 ]
ここで〜してほしいって愚痴るぐらいなら
VS2010ベータ試してフィードバックに投げた方がよほど建設的なの

213 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 03:54:20 ]
>>210
ツールがあったはず。
C#と同等のリファクタリング機能とか謳ってた記憶があるが名前忘れた。
少なくともメソッドの抽出は出来たはず。
'どうせウチの環境じゃ入れてもらえないけど…

214 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 08:04:21 ]
Refactor!ってやつがなかなかいいよ

215 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:12:39 ]
Function GetItems(type As Type) As Object()
  Dim items As Object()
  〜
  If type Is GetType(String) then items = new String() {}
  〜
  return items
End Function

Dim names() As String = GetItems(GetType(String))

とすると「InvalidCastException」になりました。
CTypeやDirectCastも試してみましたが同じ結果でした。
要素を1つずつコピーすれば出来ると思うのですが、もっと単純な方法はありませんか?

216 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:17:17 ]
普通に Generics 使えよ。

217 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:19:54 ]
そんなメソッドの使いどころが全く分からない

218 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:29:30 ]
戻り値やitemsの型をArrayにしたらいいんじゃね
普通はジェネリック使うべきだけど

219 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:32:56 ]
>>215
何がしたいのか意味が全然わからないが、
呼び出し側でString()を常に期待する(>>215のコードを見る限り、そう取れる)
のなら、GetItems()の返り値の型をString()にすれがいいんじゃないの?

Typeオブジェクトで指定した型の配列を返すようにしたいってこと?
それはできないから、どうしてもというならObject(Object()ではない)を
返すようにして、呼び出し側でキャストするしかない。



220 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:41:48 ]
  If type Is GetType(String) then items = new String() {}
  If type Is GetType(Integer) then items = new Integer() {}
  If type Is GetType(Double) then items = new Double() {}

みたいなことをやりたいんじゃないの?

221 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:04:54 ]
それだったら
Function CreateArray(Of T)(ByVal size As Integer) As T()
Return New T(size){}
End Function

222 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:15:10 ]
単純にArray.CreateInstance()使えば?

223 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:31:59 ]
要素コピーとかいってんだから配列作るだけじゃないんだろ

224 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:37:53 ]
>>215です。
やりたいこととしては>>220に近い感じです。
〜Collectionとかの要素をオブジェクトの配列として参照したり文字列の配列として参照したりしたかったのです。
ジェネリックは2005から使えるみたいなので私の使っている2003では使えませんね。
Object()ではなくObjectにすればキャスト出来るみたいなので試してみます。

225 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:38:15 ]
ああ、2003のことを忘れてた

226 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:40:53 ]
先に言えよハゲ

227 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:26:59 ]
はじめから配列も〜CollectionもIListとして扱えばいい
すべて共通のコードで扱える

228 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:36:45 ]
2003なんですが質問です。

DataGridで特定の行に色設定し、さらに行選択もできるようにしたいんです。
DataGridで特定の行に色設定することは、
DataGridTextBoxColumnを継承してクラスを作成し、
Paintメソッドをオーバーライドすることで出来ました。

行選択もHandles DataGrid1.Paintしたメソッドに
DataGrid1.Select(DataGrid1.CurrentRowIndex)
を書けばできました。

でも両方をいっぺんにやる方法が分かりません。><
たぶん、オーバーライドしたPaintクラスから
DataGrid1.Selectが出来れば良いんだと思いますが、
やり方が分かりません。
どなたか教えてくださいませんか?

229 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:06:28 ]
SELECT * FROM npcname_jp jp INNER JOIN npc eg ON jp.id=eg.id

上記SQLでセレクトしたテーブルをリストボックスに入れて
DisplayMemberpを jp.id などにすると、なぜかそのような列が見つからないようで、表示に反映されません。

なぜだか分かる方いませんか(;´Д`)



230 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:20:00 ]
SELECT jp.id as hoge, * FROM npcname_jp jp INNER JOIN npc eg ON jp.id=eg.id

としてhogeにしてみたら?


231 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:54:12 ]
超ありがとう
積年の恨みが一瞬で解決した
痔は治らないが

232 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:30:19 ]
「なぜそうなるのか」がわかってないと解決とは言えないと思うんだぜ?

233 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 19:10:56 ]
と思うんだが?
と思うぜ?

234 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 14:00:12 ]
>>233

まあ最近見ない表現だから解らんのも無理はない。<「〜だぜ?」

235 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:55:32 ]
表現だぜ?
無理だぜ?
と言っても
見ないんだぜ?
解らんだぜ?
とは言わなんだぜ?

236 名前:デフォルトの名無しさん [2009/09/08(火) 23:24:19 ]
vb2008express editionを使っています
ウインドウ左上のアイコンを変更するにはどうすればいいでしょうか?
ちなみにアイコンそのものは変更してみましたが変わりませんでした

237 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 23:45:02 ]
ttp://www.google.co.jp/search?q=vb.net+アイコン+変更

238 名前:デフォルトの名無しさん [2009/09/09(水) 00:13:38 ]
>>237
アイコンの変更は試しましたがウインドウの左上の絵がかわりませんでした

239 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 00:27:29 ]
>>238
どっちの?



240 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 00:46:36 ]
>>239
どっち?

241 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 03:08:40 ]
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
このキーに新しいキーを追加してメニューから自作アプリを起動たいのですが
レジストリキーの既定のところに
c:\test.exe
と書いても起動しないのですが他にどんな設定をしたら良いでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef