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


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

C♯, C#相談室 Part34



1 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 20:45:59 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part34
pc8.2ch.net/test/read.cgi/tech/1157549657/

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。

411 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:07:17 ]
C++にこだわる奴は言語にこだわり過ぎ。
本当に大事なことは必要な機能を実装すること。
ややこしい機能はチーム開発や保守性をぶっ壊してくれるから
簡単にすることは大事。


412 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:08:08 ]
>>411
楽しいのも判るけどさスルーする事も大事。

413 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:26:01 ]
いろんな言語やってきて思うんだけど、結局のところ言語の文法って本質的に言語間の差にはならないんだよね。
foreachなんかでも、マクロ使えば簡単にCでも使えるわけだし。
本当に言語選択で大事なのは、VMだとかOS依存部分だとかのもっと大局的な部分なんじゃないかなあ。

414 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:36:54 ]
言語選択は技術者の経験やシステムの構成に左右されるところが多いから、
何が良いとかは断言できない。
自分にとって、一番スマートにプログラミングできるのはC#だけど、
サーバサイドプログラミングでLinuxならJava、UnixならCを選択するのが良いと思う。
なにせ、並列処理はやはりUnix系使うのが一番堅実だから。

415 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:38:25 ]
堅実ってなあに?


416 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:39:59 ]
堅実というより堅牢性
・プログラムにおいて、エラーや例外などに強く簡単には暴走しないもの。
・少なくともすぐに「不正な処理」と表示し、データ諸共および自分自身までふっ飛ばすようなOSのような作りではない事。


417 名前:デフォルトの名無しさん [2007/11/18(日) 00:40:08 ]
ググレカス

418 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:42:08 ]
いまどきそんなサーバ用OSはない。


419 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 04:36:13 ]
なんか見てると最近WebBrowserコントロールの質問はやってんな
同一人物なのか 流行なのかwwww



420 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 01:24:28 ]
ちょっと前に、スプラッシュウィンドウの実装についてあちこちで議論があったのを見たんだが、
こんなやり方では駄目なんだろうか?

public static class Program
{
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Idle += Application_Run;
Application.Run();
}

private static bool _applicationRunning = false;
private static void Application_Run(object sender, EventArgs e)
{
if (_applicationRunning) { return; } else { _applicationRunning = true; }
Application.Idle -= Application_Run;

//ここにスプラッシュウィンドウだの、メイン処理だのを書く
//プログラムを終了させるべき場所にApplication.Exit()を書く
}
}


421 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 10:47:43 ]
初期起動時の処理にアプリケーション関連のイベントを記述するのは常識だから、
それでおk。

422 名前:420 mailto:sage [2007/11/23(金) 16:41:04 ]
>>421 さんくす

423 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 16:42:35 ]
そのあとのスプラッシュの表示と初期処理の
同時処理から完了までの流れがないと
大して意味ない気がするが…

どうでもいいが最近の書籍ではタイマー使って
一定時間同期的にスプラッシュ表示するやりかたばっか書かれてるな。
スプラッシュの意味ないっつうの。
まあ平気でビジーループ使ってる例よりはちょっとだけましだが。


424 名前:420 mailto:sage [2007/11/23(金) 17:23:29 ]
>>423
ご意見どうも。
実のところを言うと、スプラッシュウィンドウというよりは、
Form_Loadに全体の初期化処理を書きたくないので、
それをどこに書こうか、ということです。
必ずしも最初からFormを使うというわけでもないし。

あとは>>420の例で、何か過失を犯していないかを知りたかったのです。




425 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:03:56 ]
メッセージループに入ってからやる必要のある初期化ならそんなんじゃないの。
そうでないならなんもいらんと思うが。


426 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:00:35 ]
Bitmapを綺麗に回転させたいのですが、
RotateTransformは中心で回転していないのか一定以上の角度になると上手くいきません。
画像中心で回転させるにはどう指定すればいいのでしょうか?
教えてください。m(_ _)m

public static Bitmap BitmapRotate(Bitmap bmp, float angle)
{
// 出力用
Bitmap dst = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb);

// Graphics オブジェクト
Graphics g = Graphics.FromImage(dst);

// 透明色でクリアする
g.Clear(Color.Transparent);

// 回転させる
g.RotateTransform(angle);

// 綺麗に回転させるフィルタ
g.InterpolationMode = InterpolationMode.HighQualityBilinear;

// 描画
g.DrawImageUnscaled(bmp, 0, 0);

// 解放
g.Dispose();
return dst;
}

427 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:45:04 ]
>>426
画像の中心を回転中心にするならそいうふうに移動させないと。
msdn.microsoft.com/library/ja/cpguide/html/_gdiplus_why_transformation_order_is_significant_usecsharp.asp?frame=true

移動→回転→元の位置に戻す

回転させたことないから間違ってたらスマンね

428 名前:426 mailto:sage [2007/11/26(月) 05:37:10 ]
RotateTransformの前後に下記のコードを入れることで解決しました。
ありがとうございました。m(_ _)m

// 中心を指定する
g.TranslateTransform(bmp.Width / 2, bmp.Height / 2);

// 回転させる
g.RotateTransform(angle);

// 元に戻す
g.TranslateTransform(-bmp.Width / 2, -bmp.Height / 2);

429 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 19:57:23 ]
C#がJavaより勝っている点を教えてください。



430 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:13:42 ]
教えてあげないよ

431 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:16:46 ]
じゃん

432 名前:デフォルトの名無しさん [2007/11/29(木) 04:54:20 ]
さくさくさんかくぽりんきー

433 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 05:48:08 ]
コイケヤ







ココ行ケヤ
JAVAとC#どちらが優れているか教えてください Part2
ttp://pc11.2ch.net/test/read.cgi/prog/1189919634/

434 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:56:41 ]
データバインド対応のコンポーネント作りたいんですけど
どのクラスから調べればいいですか?
ぜんぜん見つからない・・・

435 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:00:29 ]
意見の割れそうなネタですが、皆様 using ステートメントをどの程度
使用していらっしゃるのでしょうか。

自分は今まで、ルート名前空間を汚したくない、或いは名前空間の
構造を崩したくないといった理由で using ステートメントを一切
使わず、愚直にも省略せず全部記述していたのですが、横に長く
なりすぎていよいよ疲れてきて、それに追い打ちをかけるように、
拡張メソッド (C# 3.0 言語仕様) を使うにはそのメソッドの属する
クラスの属する名前空間をインポートしてらねばならないという
ことを知って悩んでおります。

それなりに多様な名前空間を使用していますが、あまり多くインポートしても
逆に読みづらくなりそうに感じます。使用する名前空間それぞれどういった
基準でインポートするか否かを決めるか等、皆様どうか私に何らかの指針を
示して頂けませんでしょうか。

436 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:02:27 ]
全部インポートしてる。
型名重複するのなんてTimerぐらいだろ。

437 名前:435 mailto:sage [2007/12/01(土) 00:02:39 ]
>>435 の 9 行目:
 誤: してらねば
 正: せねば
失礼いたしました。

438 名前:デフォルトの名無しさん [2007/12/01(土) 00:10:26 ]
基本的に全部インポートする
クラス名が重複する場合は完全修飾名で書く

439 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:16:27 ]
>>435
文脈からしてひどく実直そうな人物と見るが、
努めてソフトにいうと、usingは普通衝突が発生しない限り使う。衝突しても、名前空間の張り替えをして使う。
よって、あなたがしてるようなコーディングはひどく非効率で例外的だ。今すぐusingステートメントを使うことをおすすめする。
それと、なんとなくIDEなどのコーディング補助を一切使ってない雰囲気があるのだが、
この際にそれらの機能を使ってみたらどうだろうか?
VisualStudio2005を使ってるなら、クラス名を書けば左下になにかでるはず。そこをクリックするか、Ctrl+Alt+F10を押して、
メニューから任意の名前空間を選べば、自動的にusingを書いてくれる。



440 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:21:23 ]
usingはクラス名を省略したいから書き込むんだよ。
つまり、一回しか宣言しないクラスは完全修飾名で記述してもいいが、
例えば、ファイルアクセスクラスでSystem.IOを何回も呼び出す可能性が
多い名前空間はあらかじめ宣言しておいた方が効率が良い。
この効率が一番重要なのがRAD。

441 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:22:07 ]
>>439 ( ・∀・)つ〃∩ ヘェーヘェーヘェー

442 名前:デフォルトの名無しさん [2007/12/01(土) 00:23:09 ]
ユーザコンポーネント内のコードからページに直接貼り付けたテキストボックスを参照するもっとも効率的な方法はどうすればいいのですか

443 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:28:48 ]
テキストボックスに限らず、クラスを参照する一番の方法は
プロパティを使うこと。

444 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:59:34 ]
たしかにC++なんかだと、C#のそのusingに相当する
usingディレクティブは使うなって言われるけどね。

ただ、それはエイリアスとかusing宣言とか代替があるから言えるわけで、
C#はガンガンusingする言語だと思っている俺。

445 名前:443 mailto:sage [2007/12/01(土) 01:25:47 ]
それと忘れてたけど、コントロールのアクセス修飾はprivateがデフォルトだから、
変えなければいけない。

446 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:30:23 ]
>>435
「using ステートメント」じゃなくて「using ディレクティブ」だろというか
そんなこと気にする前に基本的な言葉をだな(ry

まぁそれはいいとして >>444 もいっているように C++ で using namespace
が気になるのは、その他の仕様含めた総合的な要因によるもので、
その前提を元に C# は考えられていてほぼ危険性がクリアされているので
普通に使え。そっちのほうがみやすい。


447 名前:デフォルトの名無しさん [2007/12/01(土) 10:19:35 ]
ありがとう。
でもユーザコントロールから親のページクラスをどうすればアクセスできるのか想像できません

448 名前:デフォルトの名無しさん [2007/12/01(土) 11:54:24 ]
ページクラスを継承したクラスにコントロール検索プロパティを実装したとしてもユーザコントロールからはスコープの範囲外だからみれないですよね

449 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 12:24:22 ]
マスターページに実装。



450 名前:デフォルトの名無しさん [2007/12/01(土) 13:47:00 ]
マスターページに検索ののプロパティを作ってその配下のページコントロールに配置したテキストボックスを参照するのですか?
できそうな気がする。。

451 名前:デフォルトの名無しさん [2007/12/01(土) 14:22:26 ]
DataGridVewでデータバインディングしている時、主キー、ユニークの重複チェックは皆どうしてるの?

主キーは複合もあるので行でチェックするのがいいという前提で。チェック場所はいろんなイベントがあると思う
・DataGridVewのRowValidatingイベント
・DataTableのRowChagingイベント
※DBに問い合わせは論外。
他にもあるかもしれんが・・・。あったら教えて欲しいんですが。

で、入力された値をチェックと言うことでDataGridVewのRowValidatingでチェック。(ViewのことはViewでチェック)
他のクラスでチェックすると、調査時いろんなソースを追いかけないといけないので。

ほんでと、主キー重複、ユニークチェックメソッドはあるのか? → 調べたけどないと思う。
じゃ、別の方法でチェックするにはどうしたらいい?となると。

クラス内部で主キー、ユニークの値を配列で保持して、配列内をチェックしかないのかなと思ってるんだけど。
複合主キーの時は、それぞれの列の値を文字列連結して1つの文字列として保持する。

これ以外になんかいい方法ってないですか?




452 名前:デフォルトの名無しさん [2007/12/01(土) 14:25:06 ]
あ、DataGridVewのDataErrorイベントは論外で。あんなの使いようがねぇって感じなので。

453 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 14:49:10 ]
バインド先がDataTableならPrimaryKey設定しとけば
DataGridVewの入力時エラーになるけど


454 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:24:19 ]
>>450

逆、参照するのがテキストボックス

455 名前:デフォルトの名無しさん [2007/12/01(土) 17:25:07 ]
逆とはどうゆう事?マスターページからページのテキストボックスを参照でいいんだよね。


456 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:25:42 ]
設定値はマスターページの値で、テキストボックスが更新されたら
マスターページの値を更新。

457 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:29:06 ]
説明が面倒だから、これをやるってこと
www.atmarkit.co.jp/fdotnet/dotnettips/469aspmasterpage2/aspmasterpage2.html


458 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:36:58 ]
UdpClient.BeginReceive(〜)
から
byte [] buffer = UdpClient.EndReceive(〜);
の間に複数の受信接続が在った場合

bufferに入るのは最後に受け取った1つのデータだけですか?

459 名前:デフォルトの名無しさん [2007/12/01(土) 23:09:37 ]
結局はテキストボックスがトリガーとなってマスターページに値をあたえないとだめなんだね。
ユーザコントロールがトリガーとなって見に行くことがしたいけど無理なんだよね



460 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 08:48:15 ]
>>458
最初のだ

461 名前:デフォルトの名無しさん [2007/12/02(日) 14:07:57 ]
>>459
これは無理そう。
FindControlsみたいなメソッドをマスターページにプロパティで実装して、
ユーザコントロールのイベント内から呼び出したいんだろ?
これはできそうでできない領域。それに気付いただけでも天才だよ。お前
>>456
も言っていること意味不明。


462 名前:デフォルトの名無しさん [2007/12/02(日) 20:44:44 ]
やっぱり無理なんですね

463 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:07:10 ]
>>461
parent経由で親PropertyにSetなら出来るだろ

464 名前:デフォルトの名無しさん [2007/12/02(日) 21:53:27 ]
ページといえどもクラスでしょ参照できる分けない

465 名前:435 mailto:sage [2007/12/02(日) 23:13:03 ]
書き込みが遅れてしまいすみません。

他の方々が書かれたソースを読んでいても薄々感じていましたが、やはり皆様
using を積極的に使うものなのですね。確かに衝突など滅多に起きませんし、
名前空間の構造が崩れることよりも行が横に長い方が害悪かもしれません。
皆様のご助言のお陰で漸く using を使うべきとの考えへと至ることができました。
ありがとうございました。

>>435
自分はむしろ真逆な質の人間だと思っていたのですが。一応 IntelliSense 等、
少しは使っています (というより IntelliSense を使わないで日々コーディング
できる方が居たら尊敬してしまいます)。

>>446
仰る通り、using ディレクティブでした。>>437 といい、きちんと見直したはずだった
のですが。お恥ずかしい限りです。

466 名前:435 mailto:sage [2007/12/02(日) 23:17:31 ]
>>465 中のレスアンカ 誤: >>435 → 正: >>439 でした。
またしてもやらかしてしまった。度々の訂正、申し訳ありません。

467 名前:デフォルトの名無しさん [2007/12/03(月) 12:18:45 ]
質問があります。環境はVS2003のC#です。

const Point pos = new Point(1, 1);

とやると
「'pos' に割り当てられた式は定数でなければなりません。」
というエラーが出ます。
定数にnewは使えるないんでしょうけど、どのようにしたら上記のような定義を実現できるでしょうか?

468 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 12:26:56 ]
static readonly Point pos = new Point(1, 1);
ふらっとC#スレに行け

469 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 12:30:39 ]
>>467
残念なことに、constはプリミティブ型(int, double)か、後は例外的にString型のみしか認められない。
非常に不思議なことに、C#には改変不可を示す修飾(C++のconstやJavaのfinal)がない。
一応readonlyという似たようなものがあるが、これはコンストラクタでしか使えないのでメソッド内などでは使えない。



470 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 13:43:13 ]
いたいことは何となく分かるがかなり変なこと書いてるぞ。

471 名前:467 mailto:sage [2007/12/03(月) 13:58:16 ]
>>468-469
ありがとうございます。
readonly修飾子を使用することにしました。

472 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 16:09:37 ]
>>471
プロパティの使用も検討してみては。

473 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 20:10:03 ]
StreamReader sr = new StreamReader("C:\\test\\時間集計.txt", Encoding.GetEncoding("Shift_JIS"));
string text = sr.ReadToEnd();
sr.Close();
this.rtbIndication.Text = text;

Regex R_Ex = new Regex("this.");

//TextBox1.Text内で正規表現と一致する対象を1つ検索
Match M_stPath = R_Ex.Match(this.rtbIndication.Text);

while (M_stPath.Success)
{
int iFind = this.rtbIndication.Find(M_stPath.Value, RichTextBoxFinds.MatchCase);

this.rtbIndication.SelectionStart = iFind;
this.rtbIndication.SelectionLength = M_stPath.Value.Length;
this.rtbIndication.SelectionColor = System.Drawing.Color.Red;

M_stPath = M_stPath.NextMatch();
}

リッチスプレッドの中から特定の文字だけを抜き出して、そのフォントカラーを赤くしたいのですが
この場合、thisが複数あるにも関わらず、最初に見つかったthisしか赤くなりません。
どこがまずいのでしょうか??

474 名前:デフォルトの名無しさん [2007/12/08(土) 21:30:40 ]
↑"this"です

475 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:45:22 ]
とりあえずステップ実行でもしてみたらー?

476 名前:デフォルトの名無しさん [2007/12/08(土) 22:12:01 ]
>>475
原因は解っています。
int iFind = this.rtbIndication.Find(M_stPath.Value, RichTextBoxFinds.MatchCase);
の部分で、リッチテキストボックス(rtbIndication)のテキストの最初から読み込んでるから
必ず最初の"this"で止まってしまうのです
なにかいい方法はないでしょうか?

477 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 22:17:56 ]
Findの任意の位置から検索開始できるオーバーロード使えばいいんじゃね

478 名前:デフォルトの名無しさん [2007/12/08(土) 22:23:12 ]
>>477
すいません、たとえばどのように書けばよろしいのでしょうか?

479 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 22:37:03 ]
いやまずヘルプ見ろよ



480 名前:デフォルトの名無しさん [2007/12/08(土) 22:37:58 ]
>>all

解決しました!>>477ありがとう!

481 名前:デフォルトの名無しさん [2007/12/11(火) 18:21:35 ]
namespace IEnumeratorTest
{
public class Sample : IEnumerable<char>
{
public IEnumerator<char> GetEnumerator()
{
yield return 'C';
}
}
class Program
{
static void Main(string[] args)
{
foreach (char c in new Sample())
{
Console.Write("{0}", c);
}

}
}
}

C#2.0 yieldの勉強をしています。
このコードで何故コンパイルエラー(CS0536)が出るのかわかりません。
下記のどれにも違反していないのですが。。
・public キーワードが省略されている。
・戻り値の型が一致しない。
・static キーワードがある。
何か足りないものでもあるのでしょうか?
Visual C# 2005 Express Editionを使用しています。

482 名前:デフォルトの名無しさん [2007/12/11(火) 18:46:25 ]
MSDNを見るとIEnumerator<>は非ジェネリックのIEnumeratorを継承
していました。

また、以下の記述がありました。
実装時の注意 このインターフェイスを実装するには、非ジェネリックの IEnumeratorインターフェイスを実装する必要があります。

そこで
IEnumerator IEnumerable.GetEnumerator()
{
//ここでIEnumeratorオブジェクトを戻さないとエラーになる
}

を実装する必要がありそうなのですが、何を書けばよいのかわかりません。

483 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:49:49 ]
>>481
エラーメッセージ読め。

IEnumerable<T> は non-generic な IEnumerable を継承してるんで、
そっちの GetEnumerator も実装しないとだめ。

System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()


484 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:50:59 ]
>>482
IEnumerator IEnumerable.GetEnumerator() の中身は、
return this.GetEnumerator(); にでもしとけ。

485 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 19:02:48 ]
Yieldの使い方を根本的に間違ってるわけだけどな。
Yieldを含む IEnumerableなファンクションが暗黙にいろいろやってくれる。
この例だとstaticにしてもいいな。

public class Sample { 
  public IEnumerable<char> Hoge() { yield return 'C'; } 
}

foreach (char c in new Sample().Hoge())
  Console.Write("{0}", c);


486 名前:デフォルトの名無しさん [2007/12/11(火) 19:28:55 ]
>>483
>>484
>>485
ありがとうございました。解決しました。

>>485
別法でしょうか。まだ詳しいことは分からないのと
サンプルの方法も間違っていなそうなので、とりあえず
これを使っていこうと思います。

487 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 20:12:58 ]
int x = 100, y = 200;
private Storyboard story;
private DoubleAnimation myDoubleAnimation;
private DoubleAnimation myDoubleAnimation2;
private void WindowLoaded(object sender, RoutedEventArgs e) {
Rectangle rect = new Rectangle();
rect.Width = 10;
rect.Height = 10;
. (省略
myDoubleAnimation = new DoubleAnimation();
myDoubleAnimation.From = 10;
myDoubleAnimation.To = x;
myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(2000));
myDoubleAnimation2 = new DoubleAnimation();
myDoubleAnimation2.From = 10;
myDoubleAnimation2.To = y;
myDoubleAnimation2.Duration = new Duration(TimeSpan.FromMilliseconds(2000));
Storyboard.SetTargetName...(省略
story = new Storyboard();
story.Children.Add(myDoubleAnimation);
story.Children.Add(myDoubleAnimation2);
story.Begin(this, true);
}
private void click(object sender, RoutedEventArgs e) {
story.Stop(this);
x = 200;
y = 300;
story.Begin(this, true);
}
.NET3.0ですが、ストーリーボードの子要素の中身を変更するのってどうやるんでしょうか?
xとyの値をクリックで変えたいのですが、上記の方法ではうまくいかず、
クリックしてもx,yは100,200のままで変わりません 。どうすればいいのでしょうか?

488 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 01:25:48 ]
yieldって使うか?用途が見えないのは理解不足なだけなのか?

489 名前:デフォルトの名無しさん [2007/12/12(水) 01:27:37 ]
うん



490 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:07:33 ]
用途ってか、Enumerable返すメソッドが簡単に作れるから便利ってだけだけど。
状態を持つ場合なんか手で書きたくないしね。


491 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 04:35:41 ]
>>487
myDoubleAnimation.Toはint?だからclickの中でx変えただけじゃ元の値のままですよ。
意図通りの挙動をさせるにはこんな感じ?

private void click(object sender, RoutedEventArgs e) {
story.Stop(this);
x = 200;
myDoubleAnimation.To = x;
y = 300;
myDoubleAnimation2.To = y;
story.Begin(this, true);
}

492 名前:491 mailto:sage [2007/12/12(水) 04:38:58 ]
×int?
○double?
寝ぼけてました。

493 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 07:41:59 ]
yieldは列挙とマイクロスレッドが主な用途だろうな
こう言語機能をこんな風に使うとこんなことができるよてきなTips( ゚д゚)ホスィ…

494 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:22:21 ]
foreachと組み合わせるとなかなかいい塩梅だよ。

495 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:22:41 ]
オライリーのプログラミングC#見たけど
ユーザー定義型のソート基準を決めるのに
IComparerを実装するのって面倒ですね。
この点はC++のほうが分かりやすくて楽チン。

496 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:34:29 ]
>>>493
その手のサイト運営してる身だけど、
そういう Tips は結構まとめるの面倒なのよね。
日記とかにちまちま書いてる人はいるけど、それを1箇所に集めるとなると。
「この辺りを Tips にまとめて欲しい」みたいなの列挙しといてくれたら
そのうちページに起こすけど。

>>495
いや、IComparison<T> デリゲートでもソートできる。
C# 3.0 だと、
list.Sort((x, y) => y.CompareTo(x));
とか書ける。

497 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:36:10 ]
2.0でも、十分楽だと思うけど。

    Array.Sort(table, delegate(Hoge x, Hoge y)
      {
        return ・・・;
      });

498 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:44:30 ]
delegateは未読です。
C#は記法がキモイのはC++と同じで、
慣れるまで時間がかかりそうです。


499 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:47:37 ]
C++ がキモイって。
いったい、元々どこの畑にいたんだ。



500 名前:デフォルトの名無しさん mailto:omanuke@hotmail.com [2007/12/12(水) 12:57:45 ]
>>496
よかったらサイトのアドレス教えてください@メアド

501 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 18:52:31 ]
TextBoxに色付けたり
インデント開始と停止する系の命令はあるですか?

502 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:28:42 ]
釣り?

503 名前:デフォルトの名無しさん [2007/12/12(水) 20:35:34 ]
はい

504 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:47:52 ]
リッチなやつにしとけ

505 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:14:34 ]
ブルジョワテキストボックスでも開発するか

めちゃくちゃリソース食うの。

506 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:15:23 ]
word呼べよ

507 名前:デフォルトの名無しさん [2007/12/13(木) 04:30:30 ]
例外をcatchするとデバッグしにくいという問題は、
IDEのメニュー「デバッグ」「例外」で対応できる。
基本的にはSystem.IO系やNullReferenceExceptionの「スルー時中断」にチェックを入れる。
あとは発生したベースで必要な例外を追加していけばいい。


508 名前:デフォルトの名無しさん [2007/12/13(木) 04:34:09 ]
今は特に言う事無いけど何か思いついたら次からここに書き込むよ

509 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 09:26:21 ]
スルー時中断ワロタ



510 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:23:06 ]
にゃるるで言及されてたC#のお偉いさんの話は本当なのだろうか。
もしマジだとしたら、ガクブルもので正直この先も使うか考えてしまう。

511 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:27:37 ]
何の話か言えよ






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

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

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