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


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

ふらっとC#,C♯,C#(初心者用) Part23



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; }
}






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

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

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