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


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

VB.NET質問スレ (Part22)



1 名前:デフォルトの名無しさん [2007/07/10(火) 12:23:42 ]
前スレ

VB.NET質問スレ (Part21)
pc11.2ch.net/test/read.cgi/tech/1177299756/

テンプレは2〜10くらいまでの間にある予定

684 名前:671 mailto:sage [2007/08/17(金) 00:09:30 ]
>>674
ありがとう。とりあえずプロパティにしておくのは間違いではないのですね。
ググルと既にJava界ではgetter setterでいろいろ賛否両論が行われてました(@ITの掲示板はついて行けませんでしたが…)
しかし、オブジェクト指向のソースとか何の為?って思う箇所が多々あって辛い。
周りに詳しい人もいないんで、何を頼りにすべきか…。デザインパターンとかとりあえず目を通した方が良いのかな。

685 名前:デフォルトの名無しさん [2007/08/17(金) 10:49:21 ]
質問です。
DataGridViewで、”スクロールバーが現在表示されているかどうか”を取得できるプロパティみたいなものはあるのでしょうか?
それともDataGridViewの高さ(幅)と、表示されている行(列)の高さ(幅)の合計を比較するしかないでしょうか?

686 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 13:40:41 ]
DataGridViewを継承したコントロールですと、
HorizontalScrollBar.Visible
で判定できるみたいですね。
それでいってみます。

687 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 15:27:14 ]
Textbox(Multiline)のIMEModeの挙動がおかしいです。

No Control に設定(デフォのまま)してあるのに、実行時に
普通に入力できていたのに突然、カナ入力になったり、
オフ固定になったりします。

フォーカスが、他のアプリなどへ移動して、再度該当の
TextBoxに来た時に症状がおきやすい様ですが、明確な
発生状況の原因は突き止められていません。

ネットで検索した所、似たような症例が見受けられたが、
クリティカルな回避方法が分かりません。

何か良い方法はありませんでしょうか?

688 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 21:52:19 ]
以下のソースで文字をPictureBox1に描画してるのですが、
この文字を、BMP保存したい場合どうすればいいのでしょうか?

Dim g As Graphics = PictureBox1.CreateGraphics() ' PictureBox1のGraphicsオブジェクトを取得
Dim fnt As New Font("MS 明朝", 20, FontStyle.Bold) ' フォントオブジェクトの作成

g.DrawString("文字をを描画", fnt, Brushes.Blue, 50, 20) ' 文字を描画

'リソースを開放する
fnt.Dispose()
g.Dispose()

689 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 21:56:53 ]
普段から直接描くんじゃなくてBitmapに描くようにすればいいよ

690 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 21:57:14 ]
Graphics.FromImage(Bitmap)で取得したオブジェクトに対して描画してBitmap.Save
保存しない場合でもPictureBoxに直接書くよりBitmapに描画してDrawImageの方がいいと思うよ

691 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 22:04:38 ]
>698,690
うまくいきました、ありがとうございます

692 名前:デフォルトの名無しさん [2007/08/17(金) 22:58:20 ]

すみません、教えてください。

TreeView において、+ 印をクリックしたときにも、MouseUp イベントが発生する
のですが、、

それを、Node 本体をクリックしたときと区別する方法はあるものでしょうか?
IsSelected プロパティを見てみたのですが、無関係のようで、どうしたらいいもの
かと思いまして。すみませんがよろしくお願いします。




693 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 23:13:02 ]
NodeMouseClick とかじゃ駄目か
.NET 1.1 以前なら駄目か、じゃあ HitTest だな

694 名前:デフォルトの名無しさん [2007/08/17(金) 23:26:06 ]
>>693

どうもです。

2.0でしたが、NodeMouseClick でもやはり + 印の方でも反応していました。
HitTest でしたか。調べてみます、ありがとうございました!



695 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 08:47:26 ]
>>692
TreeViewMouseDownで
マウスダウンポイント = New Point(e.X, e.Y)
選択ノード = ツリービュー.GetNodeAt(マウスダウンポイント)
範囲 = 選択ノード.Bounds()
If 範囲.Contains(マウスダウンポイント) Then
 ボディを選択した
Else
 +を選択した
End If

696 名前:デフォルトの名無しさん [2007/08/18(土) 12:15:27 ]
>>695

おお!!そうやってやるのですか!!!
すばらしい、どうもありがとうございました!!
助かりました!!!


697 名前:デフォルトの名無しさん [2007/08/18(土) 15:07:21 ]
VS2005のIDEですが、ソースコード・エディタ上でマウスであちこちクリックしたり、
検索で移動したり、「シンボルの検索結果」での選択で移動したり、とこれらの操作で
キャレットの位置が変わっていったとき、その位置を復元して逆たどるためのツールボタン
があったと思うのですが、

PCが壊れて、別のPCに変えて同じボタンと思われるものを使ってみたのですが、
同じその機能が働いてくれません。

この機能のボタンはありますよね。なんという名前のボタンかがわかりません。

(試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」
「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で
右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)


698 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 15:13:24 ]
そういうのって人に聞くより自分で実際やってみる方が早くないか?

それともIDEのメニューやツールバーのカスタマイズ方法を知らないの?

699 名前:デフォルトの名無しさん [2007/08/18(土) 15:56:40 ]
>>697

ですから、それをやってみたと書いていますが・・・。それでもできなかったもので。
           ↓
(試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」
「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で
右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)


700 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:14:24 ]
進む、戻る、かなんかのボタンだよね
俺も見つかられんのだわw


701 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:14:55 ]
たしかすごい意外なとこにあった記憶はあるんだが…


702 名前:デフォルトの名無しさん [2007/08/18(土) 17:46:36 ]
分類:表示 の 一番下のほうにある 戻る か?



703 名前:697 [2007/08/18(土) 20:36:38 ]
>>702

あー、それでした!!どうもありがとうございました!



704 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:05:24 ]
質問なんですが、フォントスタイルに太字と斜体の両方を
設定した場合に、太字(もしくは斜体)のみを標準状態に
戻す場合のコードってどう書けばいいのでしょうか?

705 名前:704 mailto:sage [2007/08/20(月) 01:12:05 ]
自己解決しました、お騒がせしました。

706 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 09:31:20 ]
どれだけ下らなく稚拙な質問でも、同じ疑問を持ってるやつがいるかもしれないから、
自己解決した場合でも、解決法は書くべき。

現在のスタイル-太字
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Bold)

ちなみに
現在のスタイル+太字
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold)

707 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 12:31:46 ]
地獄への道は善意で舗装されている、という言葉の意味を706は噛み締めるべきだね。

そういう「善意」は、結局のところ、基礎の理解や自分の頭で考えることをスキップする
「コピペ馬鹿」を生み出すだけだと思うが。

708 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 13:14:31 ]
>>707
善意から莫迦が産まれるとでも思ってんのか?
莫迦は元々莫迦なんだよ。

709 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:47:18 ]
まあ少なくとも馬鹿を矯正するスレじゃないからね

710 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:43:07 ]
質問答えたらだめじゃんw

711 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 17:36:01 ]
コントロールを名前で選択するにはどうすればいいのでしょうか。

例えばForm1上にButton1があったとすると、
Dim btn As Button = hoge("Button1")
みたいなことがしたいのです。
ググると、Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで
探すというのは見つけたのですが、名称からダイレクトに選択したいです。

712 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:27:44 ]
またコントロールを名前で選択したいです厨か




713 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 20:42:55 ]
>>711
>Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで
>探す
という関数を作成すれば
>名称からダイレクトに選択
できますよ。

714 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:01:40 ]
>>711
Form.Controls(string)
やめとけやめとけやめとけやめとけ

715 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:04:12 ]
712じゃないけど(いや712は別に何も言ってないがw)
>>711みたいな「要求」は、ほとんどの場合勘違いの産物だと思うぞ。
ありていに言えば頓珍漢なんだよたぶん。

716 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:49:53 ]
>>711は結局それで何がやりたいのだろう

717 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:53:11 ]
ちゃんと理解してて目的があって使うならいいんだけど
>>711はそれ以外に方法がないと思い込んでるだけだろうな

718 名前:デフォルトの名無しさん [2007/08/20(月) 23:06:46 ]
ListView上をMouseでClickしたとき、何かのListViewItemをHitすると
MouseUpイベントが連続して2回立つ、ということはありうるでしょうか?

そういう現象が出て悩んでいました。

下に何もないところをClickしたときはMouseUpは正常に一回しか立たない
のですが、下にItemがあるところをMouseでClickすると、2回連続してMouseUpが
立つのでした。

そのためか、そのListViewItemは、選択された印のBackColorが付かず、
Selected状態になっているのかどうかわからないのでした。

MouseDownイベントを挟まずにMouseUpが2回連続するというのは変だと
思うのですが、どこを通ってきてそうなっているのかわからないのでした。
こういう現象になった方いらっしゃったら何かご指導ください。よろしくお願いします。



719 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 01:21:52 ]
>>718
ありうるかどうかはdebug.printしてみればわかる。

720 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 07:53:11 ]
DirextXを使用しているものから色を取得して判定したいのですが
Win32APIのGetPixel等では不可能のようでしたが、何か良い方法は
ないでしょうか。

721 名前:711 mailto:sage [2007/08/21(火) 09:20:41 ]
>>714さんの方法でできました。ありがとうございました。

やりたいことは、

722 名前:デフォルトの名無しさん [2007/08/21(火) 09:59:05 ]
>>719
そうなのです、それをやってみた結果、それがわかったのでした。

MouseUpというのはMouseDownが起きて初めて起こるはずなので、Upだけ
2回連続するというのは、理屈でいけばおかしいと思われました。

しかし、確かにDownを挟まずに、2回通っているのでした。

これは、どこかでDownに準じる何かが起きているが、それがおもてに
現れずにいるというようなことなのか、それとも、どこかまだ不明なところを
経由して再びMouseUpが実現してしまうという構造なのか・・・??

それで、そういったことは起こりうるのか、それが疑問になったのでした。

で、現実にItemが選択状態のBackColorにならない、ということは、その
2回連続しているMouseUpがおきてしまうことと関係があるのだろう、
と推測されたわけでしたが、どなたかアドバイスがありましたらお願いしますです。



723 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:14:55 ]
>>720
DirextXを使用している「もの」って具体的に何
>>722
再現しなかったのでした。
そのListViewItemについて詳しく教えてほしいと思ったのでした。

724 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:19:28 ]
>>723
スルーされるの覚悟ですが、フルスクリーンで動作するゲームです。
DirectXについて詳しくないのですが、普通にSpy++でハンドル調べて
Findwindow等で取得したハンドルを使ってGetPixelしたのですが
駄目でした。

725 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:29:50 ]
普通にGraphics.CopyFromScreenでできない?

726 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:35:20 ]
有り難う御座います。帰ってから試してみます。

727 名前:デフォルトの名無しさん [2007/08/21(火) 11:31:28 ]
行列クラスを作ろうとしています。今、
Dim ary(,) As Integer = {{1, 0}, {0, 1}}
Dim matrix As New Matrix(ary)
のようにやっていますが、
Dim matrix As New Matrix({{1, 0}, {0, 1}})
とやることはできないでしょうか。

また、a22 = matrix(2, 2) で a22に1が入るなどとやりたいのですが、
そういうことは可能でしょうか。

Array は Inherits できないようなので、無理なんですかね?


728 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:34:12 ]
>>724
FPSゲームのチートソフトでも作る気かw

729 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:38:29 ]
>>727
>Dim matrix As New Matrix({{1, 0}, {0, 1}})
コンストラクタの引数に配列をとる
>a22 = matrix(2, 2)
既定のプロパティ

730 名前:729 mailto:sage [2007/08/21(火) 12:00:46 ]
すまん上の方はもうやってたな
Dim matrix As Matrix = New Matrix(New Integer(,) {{1, 0}, {0, 1}})
にするだけ

731 名前:724 mailto:sage [2007/08/21(火) 13:23:15 ]
>>728
チートだなんてとんでも無い。ちょっとしたマクロ程度です。
>>725も試してみたんですが、上手く使えずWin32APIで
GetWindowDC(0)としてデスクトップ全体のDCからGetPixelしたん
ですが、DirectX(フルスクリーン)だと上手く行かないみたいですね。
今会社なので試せてませんが…。

ググってみると、どうも出来ないという話ばかりありました。

もう何て言うか、他のソフトで窓化してから組んだ方が手っ取り早い
気がしてきました。UWSCのPeekColorなんかだと出来るんですが
どうやって実現しているんだろう…。


732 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:23:02 ]
DirectXとフルスクリーンには、何にも因果関係はないと思うが。

DirectXで描画しているDCを取得しないと駄目なんでないの?



733 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:39:07 ]
WebBrowserコントロール内のドキュメントの反転範囲の取得は可能ですか?

734 名前:733 mailto:sage [2007/08/21(火) 14:40:27 ]
連レスすいません、「クリップボードの利用は無し」が条件です。

735 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:43:37 ]
>>733
可能です

736 名前:733 mailto:sage [2007/08/21(火) 14:45:27 ]
>>735
ありがとうございます

737 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:54:33 ]
VB2003で開発しています。

ここで質問していいかわからないので、もし他スレが適切なら
誘導をお願いします。


OSがWin2003Serverでドメインコントローラになっているサーバに
Everyoneでフルコントロールできる共有フォルダがあります。
この共有フォルダに、LANで繋がっているOSがXpHomeEditionのPC
からファイルをアップロードしたりダウンロードしたりするアプリを
作りたいのです。

使用するPCはちょっと特殊なPCでHomeEditionしかプリインストールされていません。
ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは
しません。

クライアントがProfessionalEditionなら問題はないのですが、HomeEdition
なのでサーバの共有フォルダにアクセスしようとすると、ユーザ名と
パスワードを要求されてしまいます。

最初にエクスプローラから共有フォルダを開こうとしてユーザ名とパスワードを
通しておけば次からは要求されないので問題がないのですが、この開発中の
アプリからいきなり共有フォルダにアクセスしようとすると、ユーザ名と
パスワードが通っていないためにエラーになります。

プログラムからユーザ名とパスワードを認証させる方法はありますでしょうか?

738 名前:724 mailto:sage [2007/08/21(火) 14:55:53 ]
>>732
そうなんですか。すいません。あまり詳しくなくて。。
oshiete1.goo.ne.jp/kotaeru.php3?q=1145477
この辺みて勘違いしてたかもしれません。

取りあえず、↓みたいな感じの関数で帰ってから試してみます。
有り難う御座いました。

Private Function PeekColor(ByVal x As Integer, ByVal y As Integer) As Integer

Dim ret As Integer

ret = GetWindowDC(0) 'スクリーン全体のデバイスコンテキストを取得
PeekColor = GetPixel(ret, x, y)
ret = ReleaseDC(0, ret) 'スクリーン全体のデバイスコンテキストを解放

End Function

739 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 15:00:47 ]
>>737
WNetUseConnection


740 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 15:03:46 ]
>>738
どんなフルスクリーンか知らんが解像度が変更されている場合もあるので気をつけれ
多分デスクトップのDCのピクセル情報はフルスクリーンキャプチャに移るのと一緒だと思うから一回撮ってペイントに貼り付けてみて確認してみるのもいいかも

741 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 15:16:15 ]
>>737

>ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは
>しません。

これだけの為にProにアップグレードするべきだとは思わんが、一応教えておく。
ドライバはHomeだろうがProだろうが一緒。互換性を心配するのは間違い。

742 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 17:20:47 ]
VB2005です。
TextBoxで未入力のときに数値の0とみなしたいのですが、次のようなやり方以外に
簡単な方法はありますか?
if textbox1.text.length = 0 then
val = 0
elseif isnumeric(textbox1.text) then
val = cint(textbox1.text)
else
'error
end if



743 名前:737 mailto:sage [2007/08/21(火) 17:47:49 ]
>>738
さっそくWNetUseConnectionをぐぐってみました。
で参考になるサンプルを見つけたので
ttp://64.233.167.104/search?q=cache:e1IfQnfsW9UJ:www.vbalab.net/vbaqa/c-board.cgi%3Fcmd%3Dntr%3Btree%3D36579%3Bid%3Dexcel+WNetUseConnection&hl=ja&ct=clnk&cd=9&gl=jp&lr=lang_ja
真似てやってみたのですが
その関数の戻り値が 487 となり、失敗します。

で、その戻り値を調べたら
ERROR_INVALID_ADDRESS 487 0x000001E7 無効なアドレスにアクセスしようとしています。
とありました。
しかし、そのアドレスは確実に間違っていないはずなんですが・・・。
そのアドレスをエクスプローラのアドレス欄に貼り付けるとちゃんと表示されます。

これ以上はスレ違いでしょうかね?
apiスレに移動したほうがいいでしょうか?


>>741
ドライバの互換性云々というのではなく、ドライバ類がOSの再セットアップ用に
提供されていないという問題なんです。
一応、ハードディスクにはリカバリイメージが格納されているのですが
隠蔽されているっぽいのです。
ドライバCDもなく、webでも公開もされておらず・・・

744 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 18:14:50 ]
>>743
ヒント:上書きインストール

745 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 18:33:56 ]
>>742
それで十分簡単だと思われ。

746 名前:727 mailto:sage [2007/08/21(火) 18:57:05 ]
>>729
a22 = matrix(2, 2) はできました。ありがとうございます。
Dim matrix As New Matrix({{1, 0}, {0, 1}})
の方は、以下のようにしてみましたが、式が必要です
というエラーが出ます。対策を教えていただけないでしょうか。


Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim matrix As new Array2({1, 0})
End Sub
End Class
Public Class Array2
Public elements As Array
Public Sub New(ByVal ary As Array)
elements = ary
End Sub
End Class

747 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:15:26 ]
>>743
Win32APIの意味や失敗の原因を調べるならWin32API質問箱スレに移動すべきだが、
Win32APIを呼び出すためのVB.NETの記述方法について知りたいなら、ここのままでも
よいのでは?

748 名前:737 mailto:sage [2007/08/21(火) 21:10:20 ]
Win32API質問箱スレにいってきます。
ありがとうございました。

749 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 21:24:00 ]
>>746
>>730

750 名前:746 mailto:sage [2007/08/22(水) 09:59:10 ]
>>749
見逃してました。。。
うまく行きました。ありがとうございました。
型に配列就職誌をつけられるとは知りませんでした。

751 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 10:15:43 ]
配列型という型なんだよ
変数名じゃなくて型名の後に括弧を付ける方がその意味では正しい

752 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 11:06:56 ]
746はVBしかしたことないんかな



753 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 12:16:12 ]
>配列就職誌
誤変換に生活史が見て取れる

754 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 12:44:18 ]
Dim array As Int32() = New Int32() {1, 2, 3}
こう書いたらもうC#だなw

755 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:19:29 ]
友達からVS2005をコピーしてもらったのですが、インストール方法がわかりません。
どうやらキーを入れるみたいなんですが、キーを教えてもらえませんか?

756 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:46:24 ]
>>755
お前頭悪過ぎ

わざとボケたならすまない。
だが、ここでなく低脳スレに行くことをオススメする。

757 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:53:17 ]
>>755
マイクロソフトに問い合わせればいいじゃん

758 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:13:09 ]
VB2005を使っています。

フォームのNew()の中でInitializeComponent()が呼ばれますが、InitializeComponent()内で
設計時に設定したプロパティを設定するときに、それぞれのイベントハンドラが呼ばれたりします。

全てが初期化されるまでに呼ばれると困るイベントハンドラもあるので、今のところは
以下のようなコードでしのいでますが、VB2005に用意されている機能でこれを実現することはできますか?
Class Form1
  Dim mConstructed as Boolean

  Public Sub New()
    InitializeComponent()
    mConstructed = True
  End Sub

  Private Sub SomeEventHandler(...)
    If Not mConstructed Then
      Exit Sub
    End If
  End Sub
End Class

759 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 12:39:16 ]
>>758
まあ別にそれでも良いんじゃない?
(ただ、未確認だけど自分で判定用のフィールド作らなくてもForm.Createdが使えると思う)

そういう場合はHandles句を使わずに自分でイベントを紐付けするのが正攻法だと思うけど。

760 名前:758 mailto:sage [2007/08/23(木) 13:04:41 ]
>>759
前者の方法も知りませんでしたし、後者の方法も目から鱗でした!
ありがとうございました。

761 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:11:07 ]
タブコントロールを使っているのですが
タブが多くなり2段になりました。
どうせなら自分の好きなタブで区切り2段になるようにしたいのですが
タブ何個で段分割するとかいう指定はないでしょうか?


762 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:13:15 ]
タブサイズ調整するしかないんじゃね?



763 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:54:00 ]
あきらめました!

764 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:58:38 ]
諦めんのはええぇぇぇぇwwwwww

765 名前:733 mailto:sage [2007/08/23(木) 22:05:44 ]
あれから探して見つかったので、聞かれていませんが一応。
WebBrowser.Document.ActiveElement.InnerText
WebBrowser.Document.ActiveElement.InnerHtml
を使ってWebBrowserの選択範囲・クリックした画像のソース等の取得ができました。クリックイベントと併用したら便利でした。

766 名前:デフォルトの名無しさん [2007/08/24(金) 11:56:51 ]
質問させてください。
継承コントロールでプロパティを追加した場合、デザイナでそのコントロールの該当プロパティを選択した時の説明文
(例えばFormのTextプロパティなら「コントロールに関連付けられたテキストです」)は、どこに書けば反映されるのでしょうか?
プロパティの<summary></summary>に書けば良いのかと思いましたが、そうではないようです。
解かる方、ご教示お願いします。

767 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 12:16:58 ]
DescriptionAttribute(属性)だったかな

768 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 12:37:22 ]
というか、そんなの自分で調べる能力がない人間がコントロールなんか作ると
間違いなくハマるよw

769 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 12:44:16 ]
.netでEE用のソースは問題なく使えますか?

770 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 12:58:39 ]
いーいーっていったいなんのことかな?

771 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 13:00:02 ]
いーいーではなくEEです。

772 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 13:14:48 ]
Erotic Elementary school girl



773 名前:766 mailto:sage [2007/08/24(金) 13:19:07 ]
>>767
ありがとう!

>>768
思いつく限りの単語で調べてみたけど、わかんなかったのよ!

774 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 20:59:58 ]
>>773
TextBox プロパティ

これでググったりMSDN見たりする頭もないのか
先行き不安だな

775 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 21:12:15 ]
>>774
>思いつく限りの単語で調べてみたけど、わかんなかったのよ!

776 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 21:15:27 ]
>>774
MSDNのメンバの説明ではDescription属性は省かれてる

777 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:44:23 ]
>>774
継承しているコントロールがTextBoxでも無い限り、そんな単語で検索しないと思うぜ?

778 名前:デフォルトの名無しさん mailto:age [2007/08/27(月) 17:06:12 ]
VC++から書き込まれた共有メモリを
OpenFileMapping()、MapViewOfFile()にて読み出しております。

VC++から
struct data{
char str1[256];
char str2[256];
char str3[1024];
}

という構造体、または構造体の配列が書き込まれた場合、
VB側ではどのようにすればそれぞれを受け取ることができるでしょうか

779 名前:778 mailto:age [2007/08/27(月) 18:03:29 ]
一つ思い浮かびました

Private Declare Function MovePointer Lib "mydll" _
(ByVal ptr As IntPtr, _
ByVal movesize As Integer _
) As IntPtr

・・・他に真っ当な方法は無いでしょうか(汗

780 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 18:05:03 ]
Marshal.PtrToStructure

781 名前:778 mailto:age [2007/08/27(月) 18:31:03 ]
>>780
ありがとうございます。
nAddress = MapViewOfFile(hOpened, FILE_MAP_READ, 0, 0, 0)
str1 = Marshal.PtrToStringAnsi(nAddress)
と先頭を取ることはできるのですが、

Public Structure DATASTRUCT
Dim str1 As String
Dim str2 As String
Dim str3 As String
End Structure
Dim cds As DATASTRUCT
cds = CType(Marshal.PtrToStructure(nAddress, GetType(DATASTRUCT)), DATASTRUCT)
ですと、
「オブジェクト参照がオブジェクト インスタンスに設定されていません」のエラーが出てしまいます。

Marshal.PtrToStructure()をどのように使えば宜しいでしょうか

782 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 18:47:35 ]
>>781
MSDNライブラリ読めばいいのに。
たぶんDATASTRUCTの定義が不適切。
msdn2.microsoft.com/ja-jp/library/795sy883(VS.80).aspx



783 名前:778 mailto:age [2007/08/27(月) 19:02:11 ]
>>778
ありがとうございます。
どこを読めばいいのかさっぱりの状態でしたorz

Public Structure DATASTRUCT
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> _
Dim str1 As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> _
Dim str2 As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=1024)> _
Dim str3 As String
End Structure

としたところうまくいきました!
構造体のメンバのサイズを宣言できるんですね!
(散々ググったページには「できない」とあったのですが・・・)

大変助かりましたありがとうございましたm(_ _)m

784 名前:778 mailto:age [2007/08/27(月) 19:04:37 ]
間違えました>>782さんでした。

>構造体のメンバのサイズを宣言できるんですね!
Stringのサイズ(固定長文字列)でした。。。






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

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

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