- 1 名前:デフォルトの名無しさん [2008/01/11(金) 15:41:00 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part22 pc11.2ch.net/test/read.cgi/tech/1197802312/
- 577 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:12:22 ]
- >>572みたいな問題って意外と難しいんじゃないの?
いつでも代数的に解ける図形が与えられるとは限らないし。 だからモンテカルロ法みたいなのがあるわけじゃないの? つーか、>>572は図形がどういうデータ構造で与えられるかをまず提示しなきゃ 話にならないね。
- 578 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:18:36 ]
- >>576も言ってるけどWPF使えば超簡単にできるよ
- 579 名前:578 mailto:sage [2008/01/26(土) 22:19:29 ]
- >>576が言ってるのは違うGeometryだったな
- 580 名前:572 mailto:sage [2008/01/26(土) 22:24:03 ]
- 図形の形状は不定です。
C言語上でやったときは メモリデバイスコンテキスト上に図形を描画して それぞれ配列に格納して論理演算で求めてました ↓みたいなかんじ ■■■■■■ ■□□□□■ ■□□□□■ ■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■ ■■■□□■ ■■■□□■ ■■■□□■ ■■■□□■ ■■■■■■ 重なり部分 ■■■■■■ ■■■□□■ ■■■□□■ ■■■■■■ ■■■■■■ ■■■■■■ C#だとメモリデバイスコンテキストに相当するものが あるのかよくわからないので聞いてみました WPFというのでできるんですか 調べてみます
- 581 名前:576 mailto:sage [2008/01/26(土) 22:25:14 ]
- >>578
WPFのGeometry.GetAreaでいけそだね。 だとしたら「標準にはない」は嘘になる。サンクス
- 582 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:43:15 ]
- >>580
メモリデバイスコンテキストに相当するものならSystem.Drawing以下にあるかな。 GraphicsPathからRegion作って残りとIntersectして共通領域のRegionを作る。 できたRegionをGraphics.Clipにセットして適当に塗りつぶして塗りつぶし色でピクセル数え上げか。 それでいいならできなくはないと思う。 WPFはSystem.Drawing以下のとは別の描画ライブラリ。
- 583 名前:572 mailto:sage [2008/01/26(土) 22:50:39 ]
- >>582
dobon.net/vb/dotnet/graphics/fillregion.html ↑のHPのやり方ですか? キーワードでググってみたら出てきました。 とりあえずこのやり方でやってみます。 ありがとうございました。
- 584 名前:566 mailto:sage [2008/01/26(土) 23:35:17 ]
- >>570
ありがとう
- 585 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:37:28 ]
- フォントの名前からフォントファイルの名前を取得する方法ってありますか?
"MS ゴシック"->"MSGOTHIC.TTC" みたいな感じで。
- 586 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:51:31 ]
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
- 587 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:41:37 ]
- 以下のような任意の2つのRectがあって、
□□□□□□□□□ □□□□□□□□□ Rect1 □□□□□□□□□ □□□□ □□□□ Rect2 □□□□ これを次のようにマージするには、空白部分をどうやって補完すればいいんでしょ。 □□□□□□□□□ □□□□□□□□□ □□□□□□□□□ Region1(=Rect1+Rect2+補完部分) □□□ □□□□ □□□□ □□□□
- 588 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:45:08 ]
- まず間違いなく必要なのは
「次のように」 の部分を厳密に定義することじゃないだろうか。
- 589 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:46:26 ]
- 書き込んでから閃いた。
Rect1のBottomをRect2のTopの位置まで下げ、新しいRect1とする。 Rect2のTopをRect1のBottomまで上げ、新しいRect2とする。 次に、新しいRect1とRect2の重なりを>>583のHPのやり方で求めると、 これが補完部分になる。 より簡単で、いろんな場合に使える方法がありましたら教えてください。
- 590 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:56:32 ]
- 矩形同士の重なりなんてRectangle.Intersectでいいだろ
- 591 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 03:09:06 ]
- menustripをウインドウの上に固定するにはどうしたらいい?
今は大きい画像を読み込んで↓の方にスクロールさせると menustripが消えてしまう
- 592 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 03:11:36 ]
- >>591
画像を表示するパネルに一緒にMenuStripを乗っける馬鹿がいるか。
- 593 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 04:40:33 ]
- 画像処理する時処理を少しでも軽くするため
ポインタ使おうかと思うんですが C#の流儀に反する?
- 594 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:04:16 ]
- 反しない。普通にunsafeで使え。
- 595 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:06:05 ]
- >>593
不安ならPaint .NETのソースをunsafeでgrepしてみたら?
- 596 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:13:08 ]
- C#のエントリポイント、なにを書くところかさっぱりわからない
- 597 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:30:56 ]
- プログラムを開始してやりたいことを書けばいい。
イベントドリブンなプログラムなら、ハンドラを登録しまくれ。
- 598 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:36:39 ]
- とりあえず自動生成されたのを眺めていたけどクラス(デフォだとForm1)を呼び出して起動、みたいになってる様子
その呼び出されたクラス内のコンストラクタでハンドラだとかコモンコントロール?だとかを登録してる
- 599 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:42:15 ]
- enum型のToString()って独自定義出来ないものだろうか。
ComboBox.Itemsにするのに出し入れで変換するのが面倒くさいから日本語で要素を定義してみた。 IntelliSenseは特に問題ないけど違和感ありまくり
- 600 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:57:49 ]
- >>599
enumみたいな構造体を自分で定義すればいいのでは?
- 601 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 13:28:42 ]
- struct EnumWrapper<T> where T : struct {
private T value; public T Value { get { return value; } } public EnumWrapper(T value) { this.value = value; } public static explicit operator T(EnumWrapper<T> value) { return value.Value; } public static explicit operator EnumWrapper<T>(T value) { return new EnumWrapper<T>(value); } public override string ToString(){ ToStringAttribute[] attr = (ToStringAttribute[])typeof(T) .GetField(Value.ToString()).GetCustomAttributes(typeof(ToStringAttribute), false); return (attr.Length != 0) ? return attr[0].String : Value.ToString();}} [AttributeUsage(AttributeTargets.Field)]class ToStringAttribute : Attribute { public string String { get; private set; } public ToStringAttribute(string str) { this.String = str; }} enum MyEnum { [ToString("いちばん")]One, [ToString("二番")]Two, } こんな風にするとか
- 602 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 14:07:34 ]
- enum の要素に属性ってつけられたっけ
- 603 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 14:14:32 ]
- フィールド扱いだからAttributeTargets.Fieldで可
- 604 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 14:44:51 ]
- >>601
ぼやきのつもりで書いたのに、あっさりこんなコードが出てきて驚きました。 中程のreturnの行の真ん中のreturnだけ削除したと思います。 使い方にちょっと悩んだけど 初期設定で ComboBox.Items.Add((EnumWrapper<MyEnum>)MyEnum.One); 使うときには (MyEnum)(EnumWrapper<MyEnum>)ComboBox.SelectedItem ですね。 ありがとうございました。 なんかC#ってなんでもできそうな気がしてきた。
- 605 名前:デフォルトの名無しさん [2008/01/27(日) 17:21:47 ]
- 質問なんですが
struct Foo{...}という構造体があって Foo foo = new Foo(10, 20, 30); とやる場合と foo.a = 10; foo.b = 20; foo.c = 30; では後者のほうが高速なのですか? 構造体のコピーが発生する時ってnewとかreturnとか、あと何がありますか?
- 606 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:23:29 ]
- しるか。
- 607 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:38:34 ]
- >>605
構造体のnewでコピーは発生してない。
- 608 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:55:59 ]
- 後者の方が最適化されやすい場合があるみたいだけど基本的にはほとんど変わらないみたい
Foo foo = new Foo { a=10, b=20, c=30 };はだいぶ遅い
- 609 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:03:13 ]
- C#わかんねーな。
>560は只の基地外だと思ってスルーしてたけど、 もしかして最適化狙いかと、勘ぐってしまう。
- 610 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:14:35 ]
- >>606>>607>>608
ありがとうございました
- 611 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:16:01 ]
- >>556は単に図形の頂点か何かを直接書きたかっただけだろ
たまたま規則性のある例を挙げたから誤解されただけで
- 612 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:18:20 ]
- >>608
確かにC#3.0のその構文のときはコピーが発生してるね。 妙なコードを吐いてる。構造体のときは要注意か。
- 613 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:58:07 ]
- Foo temp = new Foo();
temp.a = 10; temp.b = 20; temp.c = 30; Foo foo = temp; になるんだっけ。
- 614 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:03:26 ]
- >>613
それがなぜかスタック3つも使ってる。 Foo temp1 = new Foo(); Foo temp2 = temp1; temp2.a = 10; temp2.b = 20; temp2.c = 30; Foo foo = temp2; クラスだと2つなのだが。
- 615 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:05:12 ]
- それって何が嬉しいんだろう。
クラスの場合も良く分かんないんだけど。
- 616 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:12:46 ]
- >611
ありがとう。質問するときの参考になった。
- 617 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:17:31 ]
- 800*600の画像があったとします。
逆透視変換のためにその画像を上辺900、下辺800、高さ1000の等脚台形に変換したいのですが、 .NETのクラスを使って簡単な方法があれば教えていただきたいです。 OpenCVのアフィン変換とかになるんですかねやっぱり。
- 618 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:34:15 ]
- >>614
初期化をatomicにするためじゃないかな。 ttp://d.hatena.ne.jp/siokoshou/20071123#p1 ttp://community.bartdesmet.net/blogs/bart/archive/2007/11/22/c-3-0-object-initializers-revisited.aspx
- 619 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:45:36 ]
- atomicってなにwww
下の方読んで何となくわかったけど。
- 620 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:37:41 ]
- 同期のためか。
もう>>608みたいな書き方するときはパフォーマンスなんて気にするな、 ってことかな。
- 621 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:05:59 ]
- >>617
うまく計算してWPFの3D機能でやるとか ピクセルロックして頑張るとか
- 622 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:46:20 ]
- 初歩の初歩だとは思うのですが
ラベルやテキストボックスの文字列をセンターでそろえるというのはどうすればいいのでしょうか? ググってもなにやらコードを書く必要があるような記述ばかりなんですが、プログラムから制御を 行わないとできないのでしょうか?
- 623 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:53:38 ]
- VS使えばいいと思うよ
- 624 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:41:41 ]
- へたな本読みながら一つずつ機能を知っていくより
Visual C# Express Editionと、それと一緒に入ってくるMSDNドキュメント 見ながら遊んでる方がずっとコントロール廻りは理解できるよ
- 625 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:49:40 ]
- VS6.0からVS2008に移った俺はMSDNの進化に感動した
- 626 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:20:44 ]
- >>622
フォームデザイナ上で、 複数コントロールを選択した状態で ツールバー>書式>整列 最初に選択したコントロールを基準に整列してくれる。
- 627 名前:デフォルトの名無しさん [2008/01/28(月) 17:57:40 ]
- 2001のMSDNはウンコだったが2005あたりからようやくマシになった
- 628 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:06:23 ]
- >>627
通信回線が発達してオンラインがまともに使えるようになってから かなり使えるようになったと感じる
- 629 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:16:14 ]
- いやローカルにインストールするライブラリのこと>>625は言ってるんだと思いますが。。
- 630 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:19:36 ]
- オンラインなんてレスポンスが悪すぎて使ってられない
- 631 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:52:21 ]
- おまけにブックマークしといても数ヶ月でリンク切れになるしねw
- 632 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 01:17:42 ]
- MSは何故C#の匿名メソッドをレキシカルクロージャーにしなかったの?
理由分かる人いたら教えて。
- 633 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:54:59 ]
- プログラマが選択できるようにしてあるし
- 634 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 09:54:01 ]
- VC#であるプログラムを作っていて、アイコンを埋め込みたいと思いました。
そこから少し話は反れて飛びます ソリューショネクスプローラのResources以下にicoファイルを入れ Form.Icon = ((System.Drawing.Icon)(resources.GetObject("アイコンファイル名"))); ↑このようにするとアイコンをセット出来るのではという結論に至りました しかしコンパイルは通るもののデバッグになるとこの記述の部分でエラーが出ます 'System.Resources.MissingManifestResourceException' のハンドルされていない例外が mscorlib.dll で発生しました。 エラーはこの通りです 見たところ、アイコンファイル自体みつけられてないのか・・?と思いましたがアイコンファイル名はいくら確認しても正しいです 何が間違っているのでしょうか?
- 635 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 10:12:26 ]
- ああ、大間違いだよ
- 636 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:24:23 ]
- 違うよー
- 637 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:12:32 ]
- よく覚えてないけどソリューションエクスプローラにぶちこんだら相対指定で使えるだろうに
- 638 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:38:20 ]
- System.Collections.Generic.List#Add が
System.ArgumentOutOfRangeException: 容量が現在のサイズより小さい値です。 なんて投げてくるんですが、これって .NET Framework のバグですか?
- 639 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:41:24 ]
- あーごめん。3秒で疑問が氷解。複数スレッドが一度に Add しようとしてました。すみません。
- 640 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:49:24 ]
- >.NET Framework のバグですか?
これって見る度ネタなのかどうか理解に困る
- 641 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:56:09 ]
- 大抵はそれを本気で言ってるし言う奴は低レベルと相場が決まってる
- 642 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:01:58 ]
- いや、今日初めて言ってみて、初めて言う輩の気分がわかったwwww
マルチスレッド関係はやっぱ鬼門だわ……
- 643 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:19:57 ]
- 画像処理関連で質問です。
1600*1200のbmp1があり、そのbmpの指定した座標(x,y)を支点として、 300*300のbmp2を重ねたいのですがどのようにすればいいのでしょうか。 Bitmap bmp1 = new Bitmap(filename1); Bitmap bmp2 = new Bitmap(filename2); bmp1.Add(x,y,bmp2); のような感じでできないのでしょうか? BitmapクラスとImageクラスのメンバをオブジェクトブラウザで眺めてみましたが、 そのようなメソッドを見つけることができませんでした。 GetPixelしてSetPixelするという操作を全量に対して行うしかないですか?
- 644 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:23:14 ]
- >GetPixelしてSetPixelするという操作を全量に対して行うしかないですか?
それでもいいし bmp1のGraphicsを取得してそれでbmp2をDrawImageしてもいいよ
- 645 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:48:46 ]
- そしてIndexedなBitmapという落ち
- 646 名前:643 mailto:sage [2008/01/29(火) 18:56:08 ]
- >>644
ありがとうございます。 追記になりますが、その画像をjpegで保存したいと思っています。 描画にGraphicsクラスを使ったことはありますが、描画した画像を保存したことがありません。 DrawImageして出来上がったGraphicsクラスのインスタンスを使って 画像保存をすることはできますか?
- 647 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:01:30 ]
- >>646
Image.Save
- 648 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:19:09 ]
- >>647
は?
- 649 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:51:18 ]
- は?じゃないが
- 650 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:57:34 ]
- >>648
知らないならレスすんな
- 651 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:20:33 ]
- Graphicsクラスのインスタンスでは出来ないが、Graphicsには描画対象となるImageなりなんなりが必ずあるので、そっちの機能で保存すればOK
- 652 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:41:01 ]
- pictureboxより大きい画像を表示したばあい、スクロールバーを自動で表示したいけど無理ですか?
- 653 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:42:04 ]
- Panelに入れればいいだろ
- 654 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:19:46 ]
- kami
- 655 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:47:31 ]
- どーんと行こうや
- 656 名前:デフォルトの名無しさん [2008/01/30(水) 10:13:51 ]
- こんにちは
ToolStripMenuItemのAllowDropをtrueにしてもOnDragEnterのイベントがきません MenuTripだと正常にイベントがきます 何かご存知な方がいましたら 教えて頂けると助かります。 よろしくお願いいたします。
- 657 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:22:37 ]
- 自分でイベント追加したら?
- 658 名前:656 [2008/01/30(水) 13:52:55 ]
- デリケートでイベントを追加しましたが
うまくいきません 開発環境はvs2005、vistaです
- 659 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:09:18 ]
- 似たような質問どっかで見たな。ここか前スレだったかなー
- 660 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:07:19 ]
- 前スレ945ぐらいかな
- 661 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:43:09 ]
- ユーザーコントロール作ってみた
で、完成度が高くなったので コントロールライブラリにしようと思ってDLL作ったんだが このDLLの使い方がわからない漏れはどうしたらいいですか?
- 662 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:06:19 ]
- 完成度低いから心配いらないよ
- 663 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:50:37 ]
- 我々の社会って連呼かよ
中国って何回言った? 死ねや
- 664 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:51:01 ]
- 誤爆スマソ
- 665 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:00:37 ]
- プログラマにもネトウヨ君っているんだね
まあ近頃は一口にプログラっていっても知的水準はいろいろだからなw
- 666 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:05:35 ]
- プログラマ(笑
- 667 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:10:34 ]
- >>665
>>663をネトウヨって言ってる時点でチョンか学生だな
- 668 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:19:22 ]
- うんチョンで学生でいいよ別に。
で「チョン」って何ですか? ネトウヨ君の仲間うちで通じる「ヲタ用語」みたいなもの?w
- 669 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:26:07 ]
- 他所でやれ
- 670 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:30:06 ]
- PGはリベラル派が多いんだろうな。
- 671 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:39:32 ]
- 「PG」だと微妙かもなw
- 672 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:42:32 ]
- >>665は例の餃子たべちゃったんだよ。
そっとしといてやろう……( -人-)
- 673 名前:デフォルトの名無しさん [2008/01/30(水) 22:12:15 ]
- 餃子とか右翼の話は他でやれよ
スレタイ読めないバカども
- 674 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:36:36 ]
- フォームの位置とか状態(最大化、最小化とか)を次回起動時に復元しようと
プロパティのApplicationSettingsからLocation, ClientSize, WindowStateを保存するようにしたんだが なんか挙動がおかしい。 最大化ボタン押しても最大化しなくて何故か位置が変わったり。 なんでだろう。
- 675 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:46:31 ]
- なんでだろうね。
- 676 名前:656 mailto:sage [2008/01/31(木) 02:04:44 ]
- 前スレ945とは症状が違うようです。
ファイルのドラッグ&ドロップなら私の環境でも問題ありません。 Googleで探してますが、なかなかヒントが見つかりません。
- 677 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 08:20:44 ]
- TreeViewの中身を保存しようとしています。
TreeView.Nodes[0]をBinaryFormatter.Serializeで保存し、 読み込みはBinaryFormatter.Deserializeした結果をTreeView.Nodes.Addすることで一応実現できました。 ただこの方法だとツリーの展開状態と選択状態が復帰できません。 現時点ではTreeNodeと下のクラスが混在しているのですが、 TreeNode自体ではなく、TreeNodeから派生させたクラスを使うようにして そのクラスのDeserializeで展開状態とかを一旦内部フィールドに保存して、 TreeViewに追加した後に復帰させるしかないかなと思っているのですが もっと良い方法があるのでしょうか? [Serializable] public class TVKeyword : TreeNode { public TVKeyword() : base() { } protected TVKeyword(SerializationInfo serializationInfo, StreamingContext context) : base(serializationInfo, context) { } protected override void Deserialize(SerializationInfo serializationInfo, StreamingContext context) { base.Deserialize(serializationInfo, context); Keyword = serializationInfo.GetString("Keyword"); } protected override void Serialize(SerializationInfo si, StreamingContext context) { base.Serialize(si, context); si.AddValue("Keyword", Keyword); } public string Keyword { get; set; } }
|

|