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


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

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



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/26(木) 21:32:32.95 ID:RzRn9VkL0]
ふらっとVisual C#,C♯,C#(初心者用)

このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

関連スレ
ふらっとC#,C♯,C#(初心者用) Part91
toro.2ch.net/test/read.cgi/tech/1335089085/
C#, C♯, C#相談室 Part71
toro.2ch.net/test/read.cgi/tech/1332575004/


こんな感じでソフトウェア板に立てたらどうかな

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/21(木) 13:30:59.90 ID:XTsjM3La0]
var sentences = text.Split(".");
var list = new List<StringBuilder>();
list.Add(new StringBuilder());

foreach(var sentence in sentences)
{
 list.Last().Append(sentence + ".");
 if(IsOneWord(sentence) == false){ list.Add(new StringBuilder()); }
}

return Sort(list);

こんなかんじ?

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/21(木) 13:39:41.01 ID:K9S0VvT90]
>>330-331
ありがとうございました
参考にして作ってみます!

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/21(木) 13:46:05.56 ID:mk4m3Qvr0]
WPFでListboxを2つ配置して、ItemsSourceを同一のコレクションに設定した時の挙動についてなんですが
コードでこのようにしたとき

public partial class MainWindow : Window
{
ObservableCollection<Object> obj
= new ObservableCollection<Object>();

public MainWindow()
{ InitializeComponent();

for (int i = 0; i < 50; i++)
{ obj.Add(CreateRectangle());
obj.Add(i.ToString()+"s String");
}

listBox1.ItemsSource = obj;
listBox2.ItemsSource = obj;
}

Rectangle CreateRectangle()
{ Rectangle r = new Rectangle();
r.Width = 20;r.Height = 20;r.Stroke = Brushes.Black;
return r;
}
}

片方のListboxに表示されているRectangleはもう片方のListboxの表示からは取り除かれてしまいます
stringについては両方同時に表示されますし、片方のDisplaymenberPathをNameなりHeightなりに設定した場合も同時に表示されます
このWPFの図形の表示の仕組みについて解説お願いします

334 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/21(木) 13:53:56.22 ID:/1f0rY470]
UIElementがデータソースになった場合、
それは直接ItemsControlの子孫要素になる
UIElementは一つの親にしか属せない
普通はRectangleはDataTemplateにして
ItemsSourceにバインドするのはその構成要素だけ持つクラスにする

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/21(木) 19:56:05.31 ID:C/I3uX5s0]
XmlSerializerを使ってデータを一時的に保存したいと思っています.
今作っているクラスはUserとEventListとEventの三つになり,こんな感じに他にデータも含みます.
User
-string name
-EventList
--Event
---int x,yなど

保存したいのはUserクラスで,List<Event>を含んでいたので,
handcraft.blogsite.org/ComponentGeek/ShowArticle/60.aspx
を参考に,IXmlSerializableを実装してリストを保存するだけのクラスEventListを作りました.
そしてEventやEventList単体のシリアライズ化には成功しました.

ですがUserクラスのシリアライズが上手く行きません…

Userクラスはこうなっています
public class User {
public EventList event_list;
public string name;
public User() { }
}


336 名前:335 mailto:sage [2012/06/21(木) 19:57:19.59 ID:C/I3uX5s0]

シリアライズのコードはこうなっています.
XmlSerializer serializer = new XmlSerializer(typeof(User));
using (FileStream fs = new FileStream(@"C:\test.xml", FileMode.Create)) {
serializer.Serialize(fs, user);}

実行すると
$exception {"There was an error reflecting type 'mtest.User'."} System.Exception {System.InvalidOperationException}
というエラーがXmlSerializer作成時に出ます.
event_listをコメントアウトすると上手く行くのですが,クラスの中に自作クラスを持つ場合は別の処理方法があるのでしょうか?
よろしければ解決方法などを教えて頂けると幸いです.

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/21(木) 22:40:14.42 ID:XTsjM3La0]
>>336
別に普通にやればいいだけなはずだけどなあ
Listも変なことしなくてもそのままSerialize出来ると思うけど

publicなゲッターセッターと引数なしのコンストラクタを持っていること
コレクションの場合はAdd(T item)を持っていること といった感じだったと思う

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/22(金) 00:18:49.52 ID:D9lptrmf0]
駄目なのはList<T>[]であってList<T>じゃないよ?

339 名前:335 mailto:sage [2012/06/22(金) 22:10:59.58 ID:bY8JRY9Z0]
>>337 >>338
おうふ…勘違いしてました,Listのシリアライズは問題無いのですね.
いまやったところ単体で普通にできました.

またUserごとシリアライズしようとしたときのエラーですが,そちらも解決しました.
行数が多すぎて怒られた&そんなに関係ないだろうと思って消していたのですが実際はXmlAttributeをつけていて
Userクラスはこうなっています
public class User {
[XmlAttribute("user_event_list")]
public List<Event> event_list;
[XmlAttribute("name")]
public string name;
public User() { }
}

これでエラーが出たのでEventListクラスを作ったのですが,どうやら問題はXmlAttributeにあったらしく,
event_listの直前のものを消したら問題無く動きました.


皆さんどうもありがとうございます,とても助かりました.



340 名前:333 mailto:sage [2012/06/22(金) 22:51:30.84 ID:VRm8BDOa0]
>>334
解説ありがとうございます
表示されない理由はばっちり腑に落ちました

> 普通はRectangleはDataTemplateにして
> ItemsSourceにバインドするのはその構成要素だけ持つクラスにする
よければ、ここについてもう少し教えてください

いま、Rectangle型のmyShape をメンバにもつクラス c1 を設定し、これのコレクションをListboxのソースとしたとき

<DataTemplate x:Key="myTemplate">
<StackPanel>
<Rectangle Height="{Binding Path=myShape.Height}" Width="{Binding Path=myShape.Width}" Stroke="{Binding Path=myShape.Stroke}"/>
</StackPanel>
</DataTemplate>
とし、Listboxのテンプレートとして適用すれば、全ての項で長方形は同時に表示することができました
ここでmyShapeの型をRectangleと限定せず、flameworkElementなどにして、
c1のインスタンスにはEllipceやその他のShapeを自由に入れられるようにし、それらを表示することは可能でしょうか


341 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 16:57:23.81 ID:4W1+go0K0]
int型配列a(要素数100)から等確率でランダムに10個の要素を選んで選んだ順に
配列b(要素数10)に代入するというプログラムを作りたいのですが、
自分が考えたのはひたすら100個のなかから1個ずつランダムで選んでいき、
前選んだ要素とかぶった場合はやり直し(棄却) という感じで作ったのですが、
選んでいくにつれて棄却する回数が多くなってしまい、時間がかかってしまいます。

この場合どのようなアルゴリズムで作るのが効率がいいのでしょうか?

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 16:59:23.81 ID:VvicIvbe0]
配列からランダムに一個選ぶ
選んだのを末尾のと交換する
個数を一個減らしてランダムに選ぶ・・・

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 16:59:57.81 ID:F1v3/Dpc0]
配列じゃなくて動的配列(List)を使えば、使用した要素を捨てられる
どうしても配列でやりたいなら被ったら上か下を選ぶって処理を入れる

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 17:37:18.45 ID:8zHjbdI20]
いわゆる重複しない乱数と同じ考え方だからググれば腐るほどでてくる

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/24(日) 15:54:12.67 ID:5cM7Ezza0]
配列内の要素をシャッフルして先頭から10要素取り出せば?

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/25(月) 01:06:49.19 ID:2vZfjApk0]
>>345
それだとM個からN個を取り出すときO(M)になるから非効率

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/25(月) 01:49:47.37 ID:QcDMISKM0]
>>346
そうか。
要素数100程度みたいだからそんなんでいいかな、と勝手に思ったんだ。
そこまで考えてなかったよ。

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 09:46:52.99 ID:/TbFwKc10]
>>340
データソース側にUIElementは使うもんじゃないってば
DataTemplateのTargetTypeでデータソースの型によって適用するDataTemplate切り替えたりする
<ListBox ItemsSource="{Binding ...}">
  <ListBox.Resources>
    <DataTemplate DataType="{x:Type my:RectanglePattern}">
      <Rectangle Width="{Binding ...}" Height="{Binding ...}" Stroke="{Binding ...}"/>
    </DataTemplate>
    <DataTemplate DataType="{x:Type my:EllipsePattern}">
      <Ellipse Width="{Binding ...}" Height="{Binding ...}" Stroke="{Binding ...}"/>
    </DataTemplate>
  </ListBox.Resources>
</ListBox>

あるいはデータソースをGeometry(を持ったクラス)にしちゃって
DataTemplateはImage/DrawingImage/GeometryDrawingでやるとか

349 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 16:08:21.13 ID:yCJdNuh10]
XAMLグロいなー
誰が考えたんだコレ



350 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 18:21:10.14 ID:q2NBJkUf0]
XML自体人が読み書きすることは重視してないからねー
構造的であることは人間にも利点があるが
人間にとってはせいぜい段組がしてあれば十分だ

こんなガチガチな仕様にしたのはコンピューターに合わせたからで
そのフォーマットの拡張系なんだから、よりコンピューターしか理解できないようになっていくのは当然だな
俺の好きなフレームワークにも

…and one more thing: Making humans edit XML is sadistic!

と書いてある

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 19:17:05.04 ID:00qqaFC30]
デリゲートって、クロージャみたいに親のメソッドで扱われる変数を保持できるけど、

public void Hoge(object obj)
{
 var act = new Action<obj>((o) => Fuga(o));
 this.actionList.Add(act);
}

これみたいに、Actionをフィールドのリストに入れてずっと保持する場合だと、
objの参照元はずっとGCされないまま(メモリリーク)になるの?

これなら実行タイミングを好きにずらせるから便利だなーと思ったけど、
objの参照をずっと掴んでるなら微妙だな。

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 19:21:22.63 ID:q2NBJkUf0]
そう
便利だけどよく分からずに手を出すのはお薦めできない

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 19:21:49.11 ID:/TbFwKc10]
そりゃListに保持するってことはいつか使うって宣言も同然なんだから
いつの間にか黙って消えてたら困るだろ
それをリークというのはおかしい

354 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 19:27:48.27 ID:yCJdNuh10]
ラムダの中でobj使ってないから参照もされないでしょう
Action<obj>っていうのもコンパイルエラーじゃないの

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/27(水) 01:25:25.97 ID:CEBjiC+M0]
objを使いたい場合
var act = new Action(() => Fuga(obj));

引数をとりたい場合
var act = new Action<object>(o => Fuga(o));

引数をとりながらも無視してobjを使いたい場合
var act = new Action<object>(o => Fuga(obj));

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/27(水) 14:23:59.88 ID:ea0YHqGT0]
パワポの左側のスライド一覧や、デスクトップ上でのアイコンの並び替えみたいに、
画像オブジェクトをD&Dによって移動・挿入可能なUIを作りたいと思っています。

ListViewに画像を表示させればかなり近いことが出来るのですが、
動画編集ソフトのタイムラインのように横方向に並べたいと思っています。

わりとよくあるUIだと思うのですが、既にコンポーネントとして利用できるようなものはありませんでしょうか?


357 名前:名無しさん@お腹いっぱい。 [2012/06/27(水) 19:44:31.88 ID:VN8+g37h0]
ListViewのAutoArrange切って自前で配置すれば行けるような気もするけどどうだろ。

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/27(水) 20:06:12.30 ID:j1UJcMae0]
WPFなら既存のコンポーネントを使うまでもなく一瞬でできる

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/28(木) 03:36:32.96 ID:Tqgyy0T20]
どうやんのそれ



360 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/28(木) 10:27:09.98 ID:+mVAWSDX0]
>>359
ideone.com/zKXvF
カレントディレクトリの画像の水平リスト表示

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 16:26:48.34 ID:XSFFZlBa0]
>>360
ほう
随分シンプルになるね

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 17:16:06.56 ID:RwTE6+Al0]
ttp://msdn.microsoft.com/ja-jp/library/ms734785(v=vs.90)

上のページで説明されている、

「If ステートメントの true 分岐部で、結果の TextBox コントロールから Invoke メソッドを呼び出します。その際、WorkflowCompletedEventArgs 型の新しいジェネリック EventHandler、workflowRuntime.WorkflowCompleted を渡します。
イベント ハンドラへのパラメータとして、sender および e ローカル変数を渡します。」

という部分では実際にどのようなコードを書けば良いのかわかりません。
どなたか教えて頂けないでしょうか。よろしくお願いします。

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 17:47:20.97 ID:WHdThZGy0]
WFってAsyncがあれば不要じゃね

364 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 17:50:26.45 ID:RwTE6+Al0]
>>363
会社で上からやれって言われまして。。
今までJavaだったもので、チュートリアルですら何言ってるのかわからない有様です。

365 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 17:53:18.26 ID:WHdThZGy0]
それでなんでいきなりWFなんだw
Javaが使えるならC#の文法は使いながら慣れればいいから、本屋でVisual C#の入門書を買ってこい

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 17:55:55.36 ID:RwTE6+Al0]
>>365
シェアポイントとWF使って業務系のアプリ作るんだそうです。
C#やってる人に聞いてみたのですが、>>362の内容分からないって言うんですよね。。

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 18:05:07.13 ID:WHdThZGy0]
どういうことか知らんが英語版に切り替えたらその部分のコードが表示されたぞ

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/29(金) 18:12:02.03 ID:RwTE6+Al0]
>>367
ありがとうございます!!英語版に切り替えるというTipsを頂きました。

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/30(土) 00:26:26.46 ID:mUaSV7pq0]
Control..::..ControlCollection Controls

..::..
ってどういう意味ですかね?



370 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/30(土) 01:04:34.73 ID:/TAxHS/T0]
内部クラスだとMSDNではなぜかそうなってるがC#でそう書けるわけではない
内部クラスを区別したいときは Control+ControlCollection のように
ドットの代わりにプラスで区切る方が普通だと思う

371 名前:356 mailto:sage [2012/06/30(土) 16:06:24.27 ID:TtGpnjWE0]
>>357 >>360
返事が遅れてすみません.
後者のListBoxを使ったやり方で結構いい感じに出来ました!
後はD&Dを実装してみることにします.
どうもありがとうございました!

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/30(土) 16:51:28.38 ID:bOu8zaDv0]
昨日、MOBについて確認をしていて、以下の通りだと考えました
もし間違っている点があったら指摘していただけませんか?

@StreamWriter(Name, false, Encoding.xxx)、AEncoding.xxx.GetBytes()、BEncoding.xxx.GetString()
と共通の「Encoding.xxx」があったとして、UTF8などBOMが付く可能性があるEncodingの扱いは

A.「Encoding.xxx」が「UTF8Encoding」の場合、@BOMあり、ABOMなし、BBOMなし
B.「Encoding.xxx」が「UTF8Encoding(true)」の場合、@BOMあり、ABOMなし、BBOMなし
C.「Encoding.xxx」が「UTF8Encoding(false)」の場合、@BOMなし、ABOMなし、BBOMなし

となり、@はBOMの有無を選択できるが、A、Bは常にBOMが付与されない
てっきりEncoding.xxx.GetString()は選択できるものかと思っていたら、違ってました

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/30(土) 17:13:44.19 ID:bOu8zaDv0]
× 昨日、MOBについて確認をしていて、以下の通りだと考えました
○ 昨日、BOMについて確認をしていて、以下の通りだと考えました

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/30(土) 21:29:25.30 ID:T5RC3JM20]
確認したなら合ってるんじゃないの

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/03(火) 02:33:11.58 ID:QUnrlhAEP]
BOM自体UTF16用のコンテナフォーマットで、プレーンテキストだとは思えない。
だからファイル保存に用いるWriterだけがそれを意識するで違和感は無いけどね。

>てっきりEncoding.xxx.GetString()は〜〜
GetStringで返却されるものは文字列オブジェクトだよ。
しかもその内部形式はUTF16LEを元にしているはず。

ちなみにUTF8だと基本BOM不要。


376 名前:356 mailto:sage [2012/07/04(水) 17:05:03.96 ID:lYNmBOff0]
WPFでListBoxを作るときに,ItemsPanelTemplateにStackPanelを指定することで横方向に要素を並べることはできました.
ですが今やっている方法だとXAMLで指定した数しか使えないため,例えばボタンを押すとListBoxが増えていくといったことができません.
この場合どのようにやれば良いのでしょうか?

ListBoxと横方向のStackPanelを作ることはできたのですが,コード上でどのようにこの2つを関連づければいいのかがどうしてもわからなくて…

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/04(水) 17:07:01.83 ID:gyGKV+Vm0]
動的に増えるものはコードで書くしかないんじゃないのかな?


378 名前:356 mailto:sage [2012/07/04(水) 17:10:11.74 ID:lYNmBOff0]
>>377
はい,なので今はボタンを押したらコードが動いて横方向のListBoxを作る,といった事をやろうとしています.
ですがXAMLで横方向のListBoxを作る方法しか知らず,コードでどのように作ればいいのかがよく解りません…

XAMLだと
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Height="{Binding PhotoListBox.Height}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
でいけるのですが…

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/04(水) 17:24:57.33 ID:gyGKV+Vm0]
XAML
ideone.com/T6pIf

cs
ideone.com/fwfcg



380 名前:356 mailto:sage [2012/07/04(水) 18:05:35.20 ID:lYNmBOff0]
>>379
ありがとうございます,追加の方法はわかりました.

ただ,今 >>360 さんの ideone.com/zKXvF のように,画像を横方向に並べたいと思っています.

ですがListBoxは初期状態では縦方向に追加されていってしまうので,
コード上で作ったListBoxも横方向に並べることはできたりしませんでしょうか?

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/04(水) 18:09:14.74 ID:gyGKV+Vm0]
>>380
できるよ
WPFの場合カスタムクラス作り放題でそういう細かいところの情報がよくわからないので
いれられなかっただけなんだけどね

テンプレート作っておけばインスタンス作って所定の親の配下に入れる前に適応すれば
同じような物が作れるよ

382 名前:356 mailto:sage [2012/07/04(水) 19:08:38.79 ID:lYNmBOff0]
>>381
なるほど…とりあえず不可能ではないのですね.
テンプレートについてよく解ってないので,その辺を中心に勉強してみます.
どうもありがとうございました.

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/04(水) 19:10:32.28 ID:gyGKV+Vm0]
>>382
まずは>>380を参考にしてるのならテンプレートとかを分離して
リソース化することだね

最近触ってないのでうまくまとめて上げられないけど

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/05(木) 10:34:39.47 ID:tOoFlwMl0]
カスタムコントロールを作った方が簡単だと思うよ
>>360のルート要素と基底クラスをUserControlに変更するだけ

385 名前:356 mailto:sage [2012/07/05(木) 16:43:11.64 ID:Ss1RhDP50]
>>383
ありがとうございます!
リソース化する,という方法があることを知って思い通りになりました!

<Window.Resources>
  <ItemsPanelTemplate x:Key="HorizontalPanel">
    <StackPanel Orientation="Horizontal" Height="{Binding PhotoListBox.Height}" />
  </ItemsPanelTemplate>
</Window.Resources>

ListBox lb = new ListBox();
lb.ItemsPanel = (ItemsPanelTemplate)this.Resources["HorizontalPanel"];


>>384
ありがとうございます.
ですがすみません,カスタムコントロールとかは全く知らなかったので活かせませんでした…精進します.

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/08(日) 00:29:36.30 ID:ec05ZSJJ0]
Rijndaelmanagedを使って暗号化を試みています
CipherMode列挙体がCBC他の時には問題なく暗号化が出来るのですが、CTSとOFBの時にはエラーになります
エラー「指定された cipher モードは、このアルゴリズムには有効ではありません。」

RijndaelManaged RM = new RijndaelManaged();
として、CTSはRM.Mode指定時に、OFBはRM.CreateEncryptor()生成時にエラーが発生します

モードにこだわりはないのでCBCを使えば良いのですが、調べてみてもRijndaelmanagedでCTS、OFB使えないという事例がなく、何かミスがあるのではないかと気になっています
もし思い当たることがあれば教えて下さい

RijndaelManaged RM = new RijndaelManaged();
//ブロックサイズ
RM.BlockSize = 128;
//キー最大長 ※事前に128、192、256から選択
RM.KeySize = Cipher_Rijndael_Size;
//CBCモード ※事前に各モードから選択
RM.Mode = Cipher_Rijndael_Mode;
//パディングモード
RM.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
//初期化ベクトルの設定と取得(ブロックサイズと同サイズ=128bit)
RM.GenerateIV();
byte[] bytesIV = RM.IV;
//処理済みパスワードをセット
RM.Key = Cipher_Rijndael_Key;

//暗号化オブジェクトの作成
ICryptoTransform encrypt = RM.CreateEncryptor();

387 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/10(火) 12:07:54.64 ID:vnyv6GV90]
WPFで好きなタイミングで画面全体のスクリーンショットを取って保存しようとしています.
やたたいことは普通のC#で書くとこんな感じなんですが,WPFだとScreenやCopyFromScreenが使えません.

string take_screenshot()
{
Rectangle rect = Screen.PrimaryScreen.Bounds;
Bitmap bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);

using (Graphics g = Graphics.FromImage(bmp))
{
g.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size, CopyPixelOperation.SourceCopy);
}

DateTime time = DateTime.Now;

long now = time.ToFileTimeUtc();
string filename = now.ToString() + ".png";
string filepath = screenshot_folder + "\\" + filename;
bmp.Save(filepath, ImageFormat.Png);

return filename;
}


一応SendKeysで取る方法はあったのですが,キーイベントを使わない方法を探しています.
www.ipentec.com/document/document.aspx?page=csharp-wpf-screen-capture-sendkey-winform
このページのCopyFromScreenメソッドを用いる方法も,上のコードと同じ理由で動きません.
どなたか他の方法をご存じの方はいらっしゃいませんでしょうか?

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/10(火) 12:23:52.79 ID:y0AM8kSz0]
System.Windows.Forms.dllとSystem.Drawing.dllを参照すれば
WinFormのときのコードでいけるよ

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/10(火) 17:05:29.33 ID:WdTj8ymG0]
WPFのウィンドウ内のスクリーンショットを撮るのであればRenderTargetBitmapでできるけど
画面全体はWPF全然関係ないな
そもそもそんなもんWPF使って作る必要あるのかと



390 名前:387 mailto:sage [2012/07/11(水) 11:06:59.65 ID:bXFj3Hio0]
>>388
動きました、ありがとうございます!

>>389
元々WPFで作っていて、そこに全体をキャプチャする機能をつけようとして詰まっていました。
私の説明がはしょりすぎでしたね、すみませんでした。

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/20(金) 14:57:37.20 ID:+FWU6vnR0]
ウィンドウ上のボタンを押すと,
ウィンドウが消える→処理実行→ウィンドウが元に戻る
といった動作をしたいと思っています.

そこでこのようなコードを書いてみたのですが,それぞれ独立に動かすと上手くいきますが,
上記のように一連の流れにすると上手くいきません.

public void window_visible()
{
Visibility = System.Windows.Visibility.Visible;
WindowState = System.Windows.WindowState.Normal;
}

public void window_close()
{
//ウィンドウを非可視にする
Visibility = System.Windows.Visibility.Collapsed;
}

public void play()
{
window_close();
      長い処理
window_visible();
}

おそらくは非表示にしても,こちらの処理中なのでウィンドウの再描画が行われないのが原因ではないかと思っているのですが,
再描画をするにはどのようにすれば良いのでしょうか?
window_close()の後にShow()を実行してみましたが最終的に非表示になってしまい,処理中に非表示にはなってくれませんでした…

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/20(金) 15:20:17.18 ID:ooVlvWEf0]
これWinFormじゃないよね
WPF?


393 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/20(金) 15:29:58.29 ID:Ku4ZC7nA0]
window_close();
Task task = Task.Factory.StartNew(長い処理);
task.ContinueWith(_task => this.Dispatcher.Invoke((Action)this.window_visible));
こんな感じ?
.NET 3.5までならBackgroundWorkerで

394 名前:391 mailto:sage [2012/07/20(金) 16:36:09.50 ID:+FWU6vnR0]
>>392
はい,WPFでした.

>>393
動きました,ありがとうございます.
C#だと別スレッドで動かすのはこんなに簡単なんですね.

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/20(金) 17:23:17.65 ID:+FWU6vnR0]
Listboxの要素をウィンドウ外にD&Dすると削除するようなコードを書こうとしています.
D&D自体のコードはこちらを参考にしており,同じウィンドウ内の別のListboxへは問題無くD&Dできています.
main.tinyjoker.net/Tech/CSharp/WPF/ListBox%A4%CE%A5%A2%A5%A4%A5%C6%A5%E0%A4%F2%C8%BE%C6%A9%CC%C0%A5%B4%A1%BC%A5%B9%A5%C8%A4%C4%A4%AD%A5%C9%A5%E9%A5%C3%A5%B0%A5%A2%A5%F3%A5%C9%A5%C9%A5%ED%A5%C3%A5%D7%A4%C7%CA%C2%A4%D9%C2%D8%A4%A8%A4%EB.html

古いですが似たような事をしようとしていた人がいましたが
oshiete.goo.ne.jp/qa/2668253.html
ウィンドウ外でドロップしてもe.ActionがDropになりません.
Continueは出続けているのですが,ドロップしたときのイベントが取れていないようです.

ドロップしようとしてもマウスカーソルが道路標識の通行止めマークになるので,それが原因だと思うのですが…
どなたか解決方法をご存じの方はお教え下さい.

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/20(金) 19:25:37.01 ID:tVdxnnS40]
無理

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/20(金) 21:35:04.33 ID:s2qLDoTI0]
マウスカーソルの移動をピクチャーボックス内に制限したいんですけど
Cursor.Clip = pictureBox1.Bounds;
としても、ピクチャーボックスのクライアント領域とは全然違う領域に
制限されてしまうんですけどどうしてですか?

ちなみに、Cursor.Clip = this.Bounds;
とすると、ちゃんとピクチャーボックスがのっているフォーム内に
きっちりと移動が制限されます。
Cursor.Clip = pictureBox1.ClientRectangle;
としてみても駄目でした。

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/21(土) 00:33:29.87 ID:vgwO4anV0]
>>397
スクリーン座標

399 名前:395 mailto:sage [2012/07/23(月) 10:48:31.41 ID:ElUZG2xN0]
>>396
無理ですか…
D&Dが開始されたけどドロップできる要素にドロップされずに終了した事を検知できればいけると思ったんですが,
やっぱり無理なんですね…



400 名前:395 mailto:sage [2012/07/23(月) 11:17:14.75 ID:ElUZG2xN0]
自己解決しました.
>>399 の観点で探したら

DragDrop.DoDragDropの戻り値がドロップ失敗した時にDragDropEffects.Noneとなるので,
それを判定して処理すれば良かったようです.



401 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/27(金) 21:33:17.33 ID:Csfv2Zcb0]
テキストファイルの中身をそのままstring型の変数に代入するにはどうやればいいですか

第二表示.txt
というテキストファイルのテキストをそのままstring型変数にいれたいんだけど。


402 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/27(金) 21:34:26.76 ID:Dpsmk2s/0]
File.ReadAllText

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/27(金) 21:40:36.93 ID:Csfv2Zcb0]
402
ありがとう

404 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 16:18:32.30 ID:XfGkqQ3q0]
404 Not Found

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/30(月) 22:00:31.79 ID:pkNqJGc30]
DGVだけの画面があって、
DGVはセルの大きさに応じてサイズが変わるようにしてあるんですが、
肝心の画面サイズがデフォルトのままで困っています。
AutoSizeプロパティをtrueにするだけでは不十分なんでしょうか・・・

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/30(月) 22:04:32.04 ID:9qGqvDtq0]
DGV.Dock = Fill;
って話?

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/30(月) 23:10:46.00 ID:pkNqJGc30]
いえ、
例えばDGVのサイズが(100,50)の時にFormをロードしたらFormサイズは(100以上、50以上)となり、
(200,100)の時は(200以上、50以上)となるような設定をしたいと考えています。
FormのサイズプロパティにDGVのHeightとWidthを当てようとしたのですが、エラーとなってしまいました

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 00:34:21.44 ID:TkWW1iZxP]
dgvはAnchor=Top|Left
Dock=None
FormはAutoSize=True
それだけ

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 00:43:39.97 ID:TkWW1iZxP]
でも"以上"の部分によるから晒してみれば?



410 名前:名無しさん@お腹いっぱい。 [2012/07/31(火) 01:34:27.17 ID:9WuHUHVs0]
itpro.nikkeibp.co.jp/members/NSW/ITBASIC/20050427/160243/
このサイトを参考にして作業を進めているのですが表示させる絵柄は
どこにどのようにして用意すればいいのでしょうか?

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 01:35:26.63 ID:9WuHUHVs0]
sage忘れすみません。

412 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 01:55:31.11 ID:XZMweJmZ0]
以前似たようなカード欲しい人が居たので作ったのがあった
www.dotup.org/uploda/www.dotup.org3257846.zip.html

著作権フリーつーか絵カードの中味は用意してないので

欲しければカードを出力するソースもあるよ

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 02:26:02.19 ID:KndnsOOq0]
VS2003にトランプ画像なんて付いてたんだ。
サンプル用かな?知らなかった。

>>412
準備良すぎだろw

414 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 18:18:28.45 ID:r1hnuSpm0]
>>>410
プロジェクト作って貼り付けて実行すればOK
ideone.com/JvCiv

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 23:08:26.03 ID:9WuHUHVs0]
>>412 >>414
亀ですがありがとうございます。
そして>>414のプログラムが何がなんだかわからないです・・・
実行したらフォームが表示されるだけでデスクトップに空のファイルができてたのでそこに画像入れればいいんですかね?

416 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/31(火) 23:14:36.90 ID:r1hnuSpm0]
しまった
LoadとShownはデザイナから先に追加しておかないと駄目なんだな

じゃあこれで。こっちはプロジェクト作って貼り付ければOK
ideone.com/Z2WDG

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/10(金) 14:31:22.34 ID:Ni+qk6Zt0]
ユーザーコントロールを作っているのですが、
TableLayoutPanelの GetRowHeightsとGetColumnWidths が
'System.Windows.Forms.TableLayoutPanel' に 'GetColumnWidth' の定義が含まれておらず、型 'System.Windows.Forms.TableLayoutPanel' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
というエラーになります。

Windows 7 professional
Visual Studio 2010 professional
.NET Framework Client Profile 4
でやってます。

using System.Windows.Forms;
も入ってます。
どうしたら、このメソッドが使えますか?
使えないなら使えないで、こんな糞みたいなメソッドじゃない、クールな方法はありませんか?



418 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/10(金) 14:35:43.71 ID:8esUUh1G0]
糞みたいなメソッド
じゃなくて
糞みたいなコード
書いてるんじゃないの?

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/10(金) 14:40:35.40 ID:IFN3OfFB0]
ま、ソース見ないと分からんね



420 名前:417 mailto:sage [2012/08/10(金) 14:41:17.78 ID:Ni+qk6Zt0]
すいません。s が抜けてました。

421 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/10(金) 14:43:06.49 ID:8esUUh1G0]
これが間違ってないとすれば書いてるコードがおかしいとしかいえない
msdn.microsoft.com/ja-jp/library/system.windows.forms.tablelayoutpanel.getcolumnwidths.aspx
msdn.microsoft.com/ja-jp/library/system.windows.forms.tablelayoutpanel.getrowheights.aspx

422 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/10(金) 14:44:48.72 ID:IFN3OfFB0]
プロジェクトの形式でクラスライブラリを選んでて、アセンブリ追加していないとか

423 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/10(金) 15:39:15.98 ID:ggeryw4P0]
>>418
正解w

424 名前:名無しさん@お腹いっぱい。 [2012/08/14(火) 01:59:51.20 ID:KAfHN7UAO]
はじめまして。
C#のTimer使ってピクチャーボックスを表示したり非表示にしたりってどう書いたらいいんでしょうか?
モグラ叩きみたいのにしたいんでできれば表示する場合はランダムにしたいです。


425 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/14(火) 03:11:22.51 ID:KC/ugEqj0]
>>424
コピペすればそのまま動くと思う
ideone.com/fjYPG

部分的に未完成

426 名前:名無しさん@お腹いっぱい。 [2012/08/27(月) 21:29:03.92 ID:DD8oSj/T0]
libmp4v2.dll をVC#で使っている方おりますでしょうか?
code.google.com/p/mp4v2/downloads/detail?name=mp4v2-r479-windows-binaries.zip&can=1&q=

ここを参考にしているのですが、MP4Readの段階でPInvokeStackImbalanceを出すので
難儀しております。。
social.msdn.microsoft.com/Forums/en-US/clr/thread/d8197416-0447-4e3a-a159-004d20a92f30

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/27(月) 21:48:39.38 ID:72/ENMn20]
しょっぱなじゃねえか
dllの呼び出し規約がcdeclなんじゃないの

428 名前:名無しさん@お腹いっぱい。 [2012/08/27(月) 21:49:38.20 ID:7nW8yddP0]
なぜコードを晒さないんだろうな・・・

429 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/31(金) 08:58:01.69 ID:2PB5qGf20]
こういう似たような条件同士のif文があったとして
.if(strChinko == "黒" || strChinko == "白"){
.  MessageBox.Show("Good!");
.}

こういう風に省略して書く方法がC#にはありますか?
.if(strChinko == "黒" "白"){
.  MessageBox.Show("Good!");
.}



430 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/31(金) 09:30:22.86 ID:WZcIV23T0]
ない
if (new[] { "黒", "白"}.Contains(strChinko))
というのもあるが、数個くらいなら普通に||で並べろ

431 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/31(金) 15:23:39.98 ID:cC27pdt50]
>>429
ifじゃないけど
ideone.com/UqFEn






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

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

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