1 名前:デフォルトの名無しさん [2007/07/10(火) 12:23:42 ] 前スレ VB.NET質問スレ (Part21) pc11.2ch.net/test/read.cgi/tech/1177299756/ テンプレは2〜10くらいまでの間にある予定
577 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 14:53:25 ] すみません、質問させて下さい。 DataGridViewにて、CellPaintingイベントで、セルの中身を自分で描画しようと思ったのですが、 Dim rect As New Rectangle(e.ClipBounds.X, e.CellBounds.Y, e.CellBounds.Width / 2, e.CellBounds.Height) e.Paint(rect, DataGridViewPaintParts.Background + DataGridViewPaintParts.Border) e.Handled = True イベント内に以上のように書いた場合、セルの左半分だけ背景とボーダーが描画されると思ったのですが、 実際実行してみたところ、セル全体に背景とボーダーが描画されてしまいました。 rectを(1,1,1,1)なんて指定してみたところで、関係なくセルの全体が描画されているようでした。 これってrectで範囲指定ができないバグなんでしょうか? それとも自分の書き方が間違ってるんですかね?
578 名前:デフォルトの名無しさん [2007/08/08(水) 16:18:26 ] >>576 FlatStyle プロパティを System にしていました。>< むかし VB6 のときは、GraphicStyle だとかにすると色関係が 帰られたかと思いましたが、VB.NETではどうやっても無理ということ なのでしょうか? >>575 VisualStyle はググッたのですが、もしかすると WinXpの ということでしょうか。
579 名前:デフォルトの名無しさん [2007/08/08(水) 16:22:11 ] >>578 FlatStyle プロパティを System にしていましたのは、 Flat ですと見た目のインパクトが弱いためで、 その形が使いからでした・・・
580 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 16:26:56 ] >>579 Standardじゃだめ?
581 名前:デフォルトの名無しさん [2007/08/08(水) 16:59:37 ] >>580 なるほどー。 ただやってみたのですが、BackColor が System のときと同じように、立体的なテキスタイルになる とうれしいのですが、可能でしょうか?
582 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 17:54:41 ] 自分の環境だとStandardとSystemの外観がまったく一緒なんだが、違うのかな…?
583 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 18:18:15 ] >>582 そうなのでした、これはもしかしたら、WinXPの設定なのですかね・・・。
584 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 18:19:37 ] 質問者はOSとIDEの環境くらい書いておくれ。
585 名前:デフォルトの名無しさん [2007/08/08(水) 20:03:51 ] >>584 すみません、OS は WindowsXp で、IDE は VS2005Pro でした。 そういえば、Xp は >>575 さんの VisualStyle がありました、 これで変更してるから表示が変わるのですね。
586 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:32:38 ] Delegate ステートメント ttp://msdn2.microsoft.com/ja-jp/library/twsk0311(VS.80).aspx Delegateについて勉強中なのですが教えてください。VB2005EEです。 上記の使用例で書かれているコードについてなのですが Delegateがどのように役立っているかが全くわかりません。 Protected Sub Test() AddNumbers(5, 3) SubtractNumbers(9, 3) End Sub と書いたほうが良い様に思うのですが。
587 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:34:27 ] @ITのデリゲート入門でも読めば? あんまりいい記事じゃないけど、デリゲートの存在意義は馬鹿じゃなきゃ理解できるはず
588 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:36:25 ] お前はいまとどめをさしてしまった…
589 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:37:49 ] イベントとか コレクションのSortとか
590 名前:586 mailto:sage [2007/08/09(木) 01:09:19 ] >>587 ,>>589 回答ありがとうございます。何となくわかった気がします。
591 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 11:30:48 ] Windowsアプリで質問です。 ユーザーコントロールを作成し中にLabelとPictureBoxを配置しました。 このユーザーコントロールを貼り付けたフォームで、このユーザーコントロールのMouseHoverイベントを 使用したいのですがLabelとPictureBox以外の領域でしかMouseHoverイベントが発生しません。 このユーザーコントロール中(LabelとPictureBoxとそれ以外の領域全て)でMouseHoverイベントを 発生させるにはどのようにすれば良いでしょうか。
592 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 11:44:20 ] Private Sub UserControl1_MouseHover() Private Sub Label1_MouseHover() Private Sub PictureBox1_MouseHover() でいいんじゃね?(未確認)
593 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:27:15 ] >>591 しばらく前にほとんど同じ質問があったなあ。 過去ログ見れば参考になるサンプルコードが見つかるはず。(確か俺が書いた) まあ要は、自分の内部コントロールのイベントを拾って、 あたかも自分のイベントのように偽装(っていってもOnXXXX呼ぶだけ)すればいいだけだよ
594 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:30:23 ] >>592 解答ありがとうございます。 その記述をフォーム側に書くと言うことはLabelとPictureBoxをパブリックなプロパティにするということですね。 この場合、ユーザーコントロール内のマウスの位置によって3種類のMouseHoverイベントが起こるのが ちょっとまずいです。 ユーザーコントロール内でマウスを動かしているだけで何度もイベントが発生するからです。 イメージとしてはユーザーコントロールと同じ大きさの透明のコントロールを最前面に配置して その透明のコントロールのMouseHoverイベントを使用したい感じです。
595 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:32:23 ] >>593 ありがとうございます。 過去ログを探してみます。 よろしければ検索のためのキーワードみたいなものを教えてもらえないでしょうか。
596 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:41:55 ] >>593 内部のイベントを全て自作のイベント(MouseHoverExみたいな)にまとめて外部に公開するってことですかね。 そうするとやっぱりそのコントロール内でそれぞれのコントロールにマウスを合わせる度に同じイベントが発生 してしまいます。 Clickイベントなどはこの方法で実装しています。
597 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:42:35 ] >>595 一個前のスレの363以降だね。 っていうか、593のヒントから自分でゼロから考えた方が楽しいぞ
598 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:43:31 ] >>594 じゃあさ、MouseHoverイベントを使って 何をやりたいのかも書いておいたほうが回答もらいやすいぞ。 君がこれだ!って思う方法が可能とは限らないんだから。
599 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:57:13 ] >>598 やりたいことはメニュー型のランチャーのサブメニュー項目のようなコントロールです。 使ってない人にはさっぱりかもしれませんがメニュー型ランチャーのOrchisでいう サブメニューのような感じです。 画像とテキストを含んだユーザーコントロールにMouseHoverすると新しいFormを Showすると言うような動きがしたいです。 >>597 了解です。 しばらくちゃんと自分で考えてみます。
600 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 18:19:38 ] vb2003でGraphicsオブジェクトを使用して画像を合成しています。 単純に合成はできるのですが、乗算で合成したいなぁ、と思って Graphics.MultiplyTransformなるメソッドを使用してみたのですが 乗算になっているようには見えません。 Photoshopでレイヤーを乗算にして描画される、あのイメージだったんですが このメソッドで良かったのでしょうか? g.DrawImage(imgA, rect) Dim transformMatrix AS New System.Drawing.Drawing2D.Matrix transformMatrix.Translate(1.0F, 1.0F) g.MultiplyTransform(transformMatrix, System.Drawing.Drawing2D.MatrixOrder.Append) g.DrawImage(imgB, rect) こんな感じでやってます。
601 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 19:35:40 ] ドキュメント読めばわかるが、MultiplyTransformはワールド変換のためのメソッド。 つまり座標変換。 System.Drawing.Graphicsというかその基になってるGDI+には色合成処理は用意されてない。 アルファブレンドはできるけど。 ので頑張って自前で実装するしかない。探せば見つかるかもしれないけど。 ttp://blog.livedoor.jp/junki560/archives/23254191.html DelphiのコードだけどGDI+の乗算カラーフィルタのサンプルを見つけた。 参考になるかもしれない。 // そういえばPaint.NETは今どうなってんだろ。
602 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 19:42:26 ] そりは変換行列の「積」なんでは?w レタッチソフトの「乗算」の処理内容を具体的に知らないので抽象的なアドバイスになって 申し訳ないけど、たぶんカラー行列を使うんじゃないかな?(DrawImageのオーバーロードを見るべし)
603 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 22:38:02 ] IME制御の質問です アルファベットしか入力し得ないテキストフィールドなので、そのフィールドでの 入力時はIMEの変換モードを英数に固定しようとして hWnd = TextBox1.Handle hIMC = ImmGetContext(hWnd) If hIMC <> 0 Then ImmSetConversionStatus(hIMC, IME_CMODE_ALPHANUMERIC, IME_SMODE_NONE) ImmReleaseContext(hWnd, hIMC) End If のようなことをFormのActivate時に実行してみたのですが、指定したフィールドだけでなく、 全ての項目にこの設定が適用されてしまいます。 その項目だけに効果を与えるにはどうすればよいのでしょうか?
604 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 22:50:04 ] >>603 MSDNライブラリのTextBoxのメンバ一覧を穴があくまでじっくり読む
605 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 23:09:33 ] >>604 お返事ありがとうございます。 ただ、もし ImeMode の事を言われているのであれば、それが使えない環境なので・・・・・・。 そうでないのであれば、ちょっと判りませんでした。
606 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 00:47:24 ] >>605 それどういう環境?
607 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 00:59:18 ] .NET Compact
608 名前:デフォルトの名無しさん [2007/08/11(土) 11:37:08 ] すみません、教えてください。 Labelコントロールにおいて、現れている文字列を、マウスの操作でクリップボードに コピーすることは普通はできないと思いますが、もしかしてそういうことができるように するためのプロパティとかは存在しないでしょうか? どうしても不可能な場合はボタンかまたはコンテキストメニューでもつけて クリップボードにコピーするなどは考えられるのですが、テキストボックスと同様に 手軽に使えて、しかも文字列が変更されてしまわないものが望みです。 ちょうど、プロパティ・ダイアログの中のURLなどがそのようにできるものでした。 同様の機能を実現するのには特別なコントロールを自作する必要があるでしょうか? すみませんがよろしくお願いします。
609 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 11:47:05 ] TextBoxでReadOnlyにしたらいいんでないの? あとはボーダーとか消してラベルっぽくすれば。
610 名前:デフォルトの名無しさん [2007/08/11(土) 12:26:22 ] >>609 おお、TextBox に ReadOnly というプロパティがあったのですね! わかりました、ありがとうございます! いろいろ新しくなっているのですね!助かりました。
611 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 12:33:18 ] おい大昔からなかったかい?
612 名前:デフォルトの名無しさん [2007/08/11(土) 12:43:08 ] 板違いかもしれません。ですが質問します。 C#.NETとVB.NETの違いって何ですか? 調べてみると、(触り程度) C#.NETにメモリーを切る概念が無くなったと。 だったら、方言とコンパイルの速度だけの違いになりますか?
613 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 13:56:52 ] ハァ?
614 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 13:59:46 ] メモリー切る機能ってなんだよ
615 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 14:26:34 ] 俺のおじいちゃんがメモリ確保することを「切る」と言っていたが 21世紀にその言葉を聞けるとは思わなんだ
616 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 17:57:37 ] 万能動詞、切る 何が何でも切るって言うんだぜ?
617 名前:デフォルトの名無しさん [2007/08/12(日) 10:06:08 ] コンソールアプリケーションの質問です ReadLineなどで、画面から読み込む文字列を [******]のようにマスクして、読み込む方法はあるのでしょうか? すみませんが、よろしくお願いします
618 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 13:05:52 ] >>612 VB.NETはリフレクションを使用するコードが勝手に生成されて凄く遅くなることがある 回避はできるからそれさえ注意すれば一緒
619 名前:デフォルトの名無しさん [2007/08/13(月) 09:08:53 ] 言語の違いなど飾りです。 PGさんにはそれがわからんとです。
620 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 10:44:01 ] つまらん
621 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 14:16:59 ] Graphicsクラスで1ピクセルの点をPenを使って書く時って Graphics.DrawLine(Pens.Black, New PointF(10, 10), New PointF(10.1, 10.1)) のようにPointF使うしかないの?
622 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 15:21:56 ] もう少しものの聞き方を勉強しなおした方がいいよ。
623 名前:621 mailto:sage [2007/08/13(月) 15:33:05 ] >>622 ごめんなさい。
624 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 16:24:46 ] DrawLineはPointFを引数にするものもあるけど、Singleを引数にしているものもあるだろ? あとなんで1ピクセルが0.1だと思ってるんだ?
625 名前:621 mailto:sage [2007/08/13(月) 17:38:46 ] >>624 Graphics.DrawLine(Pens.Black, 10, 10, 10, 10) だと何も描かれないですし、 Graphics.DrawLine(Pens.Black, 10, 10, 11, 11) や Graphics.DrawLine(Pens.Black, 10, 10, 11, 10) だと2ピクセル分描かれます。 10.1を指定するときれいに1ピクセル分描かれるのですが。 何かとんでもないトコを見落としているのかなぁ。 もうちょっと調べてみます。
626 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 17:48:01 ] ピクセルの操作はBitmap.SetPixel/GetPixelで。 短いラインがどのなんドットなるかなんて、 ディスプレイディバイスの種類が違ったり、 スケールとか座標系いじったりしたら意味ないだろ。
627 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:05:15 ] >10.1を指定するときれいに1ピクセル分描かれるのですが。 あほすぎて話にならん。 そんなのディスプレイの都合上、1ピクセル分の直線が引かれているように見えるだけだろ。 プログラム上では0.1ピクセルの直線を引いてる。 結果さえよければどうでもいいのか? 説明が面倒なので、答えを書く。 お前が書きたい1ピクセルの点というのは、数学的に言えば「一辺1ピクセルの面」だ。 面を書くのはDrawLineではない。 e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
628 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:07:38 ] >>626 .netじゃ座標や幅の基本単位がピクセルだから関係ないんじゃね? twipならディスプレイの設定で変化してくるが。
629 名前:621 mailto:sage [2007/08/13(月) 18:17:21 ] >>627 もちろんFillRectangleやSetPixelを使うことは知っています。 1ピクセルの点をPenを使って書く時に10.1のように 書くしかないのですかという質問なのですが。
630 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:17:57 ] .NET2.0用に作成したアプリケーションは、3.0しかインストールしていないWindowsでは 動作しないのでしょうか?
631 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:24:08 ] ポカーン
632 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:24:52 ] >>629 1x1のビットマップを作成してDrawImageという手もあるけど それならまだ10.1の方がスマートな気がする >>630 3.0は、2.0に一切手を入れずに新機能を追加しただけのもの MSを信じるなら全く問題ないはず
633 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 19:13:37 ] >>629 だからよ、お前はDrawLineの仕様がわかってないって言われてるの。 DrawLineはあくまで座標ペアで指定された2つの点を結ぶ直線を描画するんだ。 「点」ってのは直線じゃないだろう? Graphics.DrawLine(Pens.Black, New PointF(10, 10), New PointF(10.1, 10.1)) お前のこれは、「見かけ上」1ピクセルの点に見えるだけで、プログラム上じゃ(10, 10)to(10.1, 10.1)の直線なワケ。 お前が厳密に1ピクセルの点を書きたいわけじゃなく、ただ見かけだけそうなってりゃいいや、っていうならそれでいいよ。 ただ、そんなのに甘んじるようなお前は果てしなくセンスが無いってだけだ。
634 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 19:25:55 ] Penで点を描くのは確かにおかしいかも
635 名前:621 mailto:sage [2007/08/13(月) 21:25:54 ] >>633 すみません。怒らせちゃって。 確かにおかしいんですよ。 僕も通常点を描くだけならFillRectangleで済ますんですが ただ描画するのは違うクラスでこのクラスはもう変更きかなくて Penと座標しか指定できないので 困ってたんです。 で、やっとこさ10.1というのを発見してあなたの言う見かけだけ はできたのですが、他に何かないかなと思った次第でして。 あなたと私はたぶん似ているんだと思います。 私もDrawLineの仕様を言いたいですが、 Penと座標しか指定できない場合、10.1と指定するのことに 甘んじたくなくて質問したんです。 あなたも同じ状況なら他になにかないか探すと思います。
636 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:31:33 ] そもそもPenと座標しか指定できないのになんで他の方法を探してたの?
637 名前:621 mailto:sage [2007/08/13(月) 21:32:58 ] >>632 ありがとうございます。 少し気が楽になりました。
638 名前:621 mailto:sage [2007/08/13(月) 21:36:12 ] >>636 他の方法というのは 例えば独自のPenを作成するとか Penのプロパティにそういうのが指定できるとか もしあったらと思いまして。 ですのでPenを使って何かないのかなと質問しました。
639 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 02:14:46 ] フォームクラス以外のクラスからフォーム上のコントロールを操作したいとき、 My.Forms.Form1.TextBox1.text = "2ch2ch" とか使う?それとも引数で渡す? 俺はMSがせっかく用意してくれてるんだからMy使うんだけど、みんなはどっち?
640 名前:デフォルトの名無しさん [2007/08/14(火) 04:42:20 ] TreeView や ListView 上の ListViewItem というのは、 Selected 状態と Active 状態とで異なるでしょうか? Explorer上の TreeView や ListView では、点線でかこまれただけの状態の Item と、実際に選択されて薄いパープル色あるいはグレーのバックカラーになって現れている 場合の2種類がありますが、それらに対応するものなのでしょうか。
641 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 04:51:13 ] はて、Active 状態ってのは一体どのプロパティがどの値になってるのを指すんだ?
642 名前:640 [2007/08/14(火) 05:21:30 ] >>641 そうですね、よくわからないんですが、OnItemAvtivated() の Protected メソッドが 動くときのイベントが発生したとき、という意味のつもりでした。 Explorer では「単なる点線囲み状態」 と 「BackColorが色付く状態」 の両方があったので そういう違いがある2つの状態というものがあって、それが Selected とは別の何かなのかなと 思ったのでした。 そういうもの自体存在しないのでしょうか。
643 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 09:43:48 ] OnItemActivate の二つ先に Activation プロパティがある。その解説読んでみ。 > 「単なる点線囲み状態」「BackColorが色付く状態」 ListViewItem にそれぞれ対応するプロパティがある。 TreeView は単一選択なんでこの辺は無関係。
644 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 09:49:15 ] >>639 ほんとは引数で渡した方がいい テキストボックスも直接公開するんじゃなくてForm1にString型のプロパティを定義した方がいい でもどうせ使い捨てなら別にどうでもいい
645 名前:640 [2007/08/14(火) 14:15:33 ] >>643 ご指導どうもです、この 「点線囲み状態」 は ListViewItem の Focused プロパティに 関係ありそうですね。さらにあちこち見て調べてみます。 ありがとうございました!
646 名前:デフォルトの名無しさん [2007/08/14(火) 15:07:48 ] >>627 プププ何コイツ 久々に笑わせられたぜww >数学的に言えば「一辺1ピクセルの面」だ。 何が数学的だよ1ピクセルはプログラム上は点に決まってんじゃん。www >e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1) ちゃんと4ピクセルの面を指定しるじゃん。wwwうぇwww FillRectangleってのは領域の内側を塗るんだよ。おバカさん 内側ってのは右辺と下辺から1ピクセル分引いた値。w で結果1ピクセル分だけ塗られているだけだぽwww 直線上にない異なる3点以上を指定しないと面にならないことくらい 消防でも知ってるっつうの。 >一辺1ピクセルの面 プププププww 一番小さい面は3ピクセルの三角形だよwwwwww ってかムキになってる638はその前に氏ねよwww。 こいつらくだんね。
647 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 15:15:40 ] ( ゚д゚)ポカーン
648 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:09:05 ] >>646 >FillRectangleってのは領域の内側を塗るんだよ。おバカさん >内側ってのは右辺と下辺から1ピクセル分引いた値。w FillRectangleには下辺の指定とかないんだけど、勝手に定義を変更しているあなたはなんなの? >e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1) これは座標(10,10)から始まる幅1高さ1の面ってことだろ? ってか文章からして釣りだよなw
649 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:14:46 ] >>635 >僕も通常点を描くだけならFillRectangleで済ますんですが >ただ描画するのは違うクラスでこのクラスはもう変更きかなくて >Penと座標しか指定できないので >困ってたんです。 こういう背景も書かずに、いきなり>>621 みたいな聞き方するから、Bitmap.SetPixel/GetPixelやFillRectangleなんて話がでてきたんではないの? 『定義の使用上、通常1ピクセルの直線は描画できないDrawLineで、 1ピクセルの点を描画する方法はありませんか』 とか聞けばいいのに。
650 名前:デフォルトの名無しさん [2007/08/14(火) 17:13:09 ] >>648 >これは座標(10,10)から始まる幅1高さ1の面ってことだろ? これ読んだら吹いたwww お前633で「点」ってのは直線じゃないだろう? って言ってたじゃん。 点は直線じゃないが面になるのかよwww お前まさか座標のことピクセルとピクセルの間だと思ってないかww GetPixelでカラー取得できなくなるっちゅうのwwww Rectangle( 10, 10, 1, 1)ってのは (10,10)(10,11)(11,10)(11,11)の4点を表すんだよwww DrawRwctangleやってみろよwwうぇぇぇぇwwww >1ピクセルの面なんてねぇぇぇよwwうふ
651 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 18:14:34 ] >>650 俺は627で「1ピクセルってのは点じゃなくて幅1高さ1の面だ」って言ってるんだが…。 だからこそ1ピクセルの「いわゆる」点を書くのは、面を塗りつぶす e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1) だと言うているんだが…? 目に見える「点」なんて存在しないだろ? お前の言いたい事がてんでわからん。
652 名前:651 mailto:sage [2007/08/14(火) 18:16:58 ] >>650 e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1) ちなみにこれは座標(10,10)だけが塗りつぶされます。 あおる前に試してから書き込め、糞が。
653 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 19:52:58 ] どうでもいい
654 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 19:55:35 ] >>558
655 名前:デフォルトの名無しさん [2007/08/15(水) 11:52:54 ] VB.NETからエクセルに出力する時の質問です。 データベースの内容をエクセルに出力したいのですが(行は100行×列は10列くらい)、 この場合、VB.NETからエクセルのセルに直接書き込んだ方が早いですか? それとも、エクセルのマクロを呼び出して、マクロ側でデータベースの内容を セルに書き込んでいった方が早いですか?
656 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:23:04 ] 後者
657 名前:デフォルトの名無しさん [2007/08/15(水) 15:17:28 ] 教えてください。 DataGridViewにて、指定したセルの左上の座標を取得する方法はありますでしょうか? ありましたらその方法を教えてください。 宜しくお願いします。
658 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 15:22:30 ] DataGridViewのメンバに目を凝らすんだ
659 名前:657 mailto:sage [2007/08/15(水) 15:52:18 ] >>658 AccessibilityObjectプロパティを利用して解決できました。
660 名前:デフォルトの名無しさん [2007/08/15(水) 20:51:23 ] Windowsフォームで別スレッドからコントロールを操作するには? (www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html ) 引数がない場合、サンプルのように次の書き方でOK。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox2.Focus() End Sub ↓ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t As New Thread(New ThreadStart(AddressOf worker)) t.Start() End Sub Delegate Function FocusDelegate() As Boolean Sub worker() ' textBox2.Focus()の実行 Invoke(New FocusDelegate(AddressOf TextBox2.Focus)) End Sub 次のように引数も渡したい場合、どのように書きなおせばよいのでしょうか? Dim dtNow As DateTime = DateTime.Now Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox2.Text += dtNow.ToString() & vbcrlf End Sub ↓ ?
661 名前:デフォルトの名無しさん [2007/08/16(木) 09:59:26 ] 文字列のフォーマットについて教えてください。 "abcdefgh" という文字列を "abcd-ef-gh" という風に変換したい場合、 VB6の時は Format("abcdefgh","@@@@-@@-@@") で出来ました。 これをVB2005で表現するには、 VB6.Format("abcdefgh","@@@@-@@-@@") といった風にしかできないのでしょうか? VB6.Formatを使わずに簡単に上記操作が出来る方法があれば教えてください。
662 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 10:07:34 ] SubstringでぶったぎってConcatで繋げればいいよ
663 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:51:09 ] ToStringメソッドを調べると良いと。
664 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:05:33 ] TreeViewについて教えてください。 あるノードが、あるノードより上にあるか下にあるか 調べたいのですが簡単にわかる方法はありますでしょうか? If hogeNode.index > hoge2Node.index Then End If ですと階層が同じでないと比較できないので困っています。 よろしくお願いします。
665 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:22:03 ] 上?
666 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:29:26 ] >>665 ツリーを全展開したときに、より左上にあるものが上といった感じです。
667 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:34:31 ] TreeNode.Parentを辿って数えれば?
668 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:48:04 ] 右上にあっても上?
669 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:58:41 ] 上位という意味だろ より親
670 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 15:34:46 ] 右上も上です。
671 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:02:58 ] プロパティの質問です。 会社の先輩にクラスのフィールドは必ずプロパティで介せよ!って言われたのですが、 以下のコードのようにmfield1とmfield2の違いがよくわかりません。 mfield1はプロパティ内で入出力操作みたいなことはできるのですが、下のコードのように 特に何もしないプロパティなんて意味あるのでしょうか?こういうプロパティがクラスに沢山あるのですが、正直面倒です。 先輩に聞いたら元請にそう指示されたと言ってましたが・・・ Public Class Class1 Private mfield1 As String Public mfield2 As String Public Property Field1() As String Get Return mfield1 End Get Set(ByVal value As String) mfield1 = value End Set End Property End Class 確かに以前Javaの引継ぎの仕事で貰ったソースも、getter、setterが無数に書かれてましたが、return とクラスの変数の割り当て以外何もしていませんでした。 いまいち利点がわかりません。
672 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:11:34 ] >>671 そのうち昔は無駄なことをしていたなぁ ということになるからそれまでは我慢
673 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:41:00 ] C#3.0をまて
674 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:55:15 ] >>671 読み書きの処理をインターセプトして値のチェックや変換ができるというのも利点だが、 そういう処理の必要でない単純なプロパティを含む場合の利点としては フィールドと違いInterfaceにしたり継承でoverrideできること。 特にリモート呼び出しなどではInterfaceであることは重要になる。 その為プロパティが花盛りなのは事実だが大半が単純な構造のプロパティであることから、 プロパティによるコードの増大を何とかしようとする動きはある。 1.IDEのサポート機能で強引にsetter/getterを大量生産する。 2.基本的な構造のプロパティを簡単な構文で書けるようにする。 3.パブリックなフィールドは自動的にプロパティにする。 1は現状のJavaやらC#で盛ん。 2と3は言語の拡張で対応。次版のVBやC#はこの方向。 3はあまりみないが、VB6のActiveXクラスのパブルックフィールドがこのやり方だった。
675 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 20:02:10 ] >660 解決しました。 660の質問は却下します。
676 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 21:38:41 ] >>664 nodeにlevelってプロパティがあった様な。
677 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 21:48:32 ] 質問させてください。 ドラッグアンドドロップのコードを記述してるのですが、 ドラッグ元のオブジェクト名を取得するにはどうすればいいのでしょうか? VB2005EEを使っています