C♯相談室 Part21

このエントリーをはてなブックマークに追加
926デフォルトの名無しさん:05/02/27 18:04:01
>>921
同じアプリケーションドメイン内でRegisterChannelを2回やっちゃダメ。
927デフォルトの名無しさん:05/02/27 18:17:47
>>921

919です。
初心者で申し訳ありません。エンコードは、何を設定したらうまくいくでしょうか?
デフォルトはUnicodeになっているようです。
UTF-8でも文字化けします。
928デフォルトの名無しさん:05/02/27 18:33:02
>>926
はげしくThanxです。
直りました。
ClientサイドではUriで指定されてるからRegisterChannelしなくてもわかるのか。。
仕組み今一わかってないみたいです。ご迷惑おかけしましたm(_ _)m

>>927
漏れに聞かれてもなぁ^^;
書かれたEncodingじゃないのかな。WindowsならS-JISとか
原因違ったらスマソ
929デフォルトの名無しさん:05/02/27 18:39:09
>>927
普通はShift_jisだな。
Encoding.GetEncoding("Shift_jis")とかEncoding.GetEncoding(932)とかOSの言語を日本語にしてるならEncoding.Defaultとか。

>>928
> ClientサイドではUriで指定されてるからRegisterChannelしなくてもわかるのか。。
Uriがどうこうじゃなくて、リモーティングはアプリケーションドメイン単位だから。
「このAppDomainはこのChennel使います」って宣言みたいなもんだと思えば。
930デフォルトの名無しさん:05/02/27 19:48:25
printdocument とか、printersettingsとかといった
印刷関係のソース等を細かく公開しているHPはございませんか?
教えてください。

というか、
private void prndoc_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = e.Graphics;
Image image = Image.FromFile(fileinfo[number].FullName);
Rectangle rect = new Rectangle();
// myrect(image, rect);
g.DrawImage(image, 0,0, 667, 970);

// g.DrawImage(image, rect.X, rect.Y, rect.Width, rect.Height);
if (++number < _listFilenames.Items.Count)
e.HasMorePages = true;
else
e.HasMorePages = false;
}
ものすごく動作がとろいです。
Microfoft PhotoEditorで印刷するよりも
ものすごくとろいです。なぜでしょうか。
931デフォルトの名無しさん:05/02/27 19:52:34
>>929

919です。
いけました!!
ありがとうございました。
932デフォルトの名無しさん:05/02/27 19:55:22
C#でDOSコマンド使いたい場合は?
VCなんかではSystem("cd")
でオケだったけど。。。
933デフォルトの名無しさん:05/02/27 20:10:12
>>932
System.Diagnostics.Process.Start("C:\\WINDOWS\\system32\\cmd.exe",arg);
934デフォルトの名無しさん:05/02/27 20:32:21
>>933
Thx!!!!
935デフォルトの名無しさん:05/02/27 22:28:45
VSのデザイナで、ボタン等に表示する絵を設定したとき、
それは実行ファイルにリソース(?)として埋め込まれるんでしょうか。

自動的にリソースファイルができるのかな、と思ってたんだけど、
それらしいものも見当たらない・・・。
936デフォルトの名無しさん:05/02/27 22:36:24
ソースに反映されてるよ。
937デフォルトの名無しさん:05/02/27 22:36:58
>>935
プロパティウィンドウのImageプロパティに設定した場合って事だよね。
hoge.csに対するhoge.resxファイルに埋め込まれるよ。
普段は#regionで隠されてる自動生成コードの該当コントロール部分を見てみればどういう風にリソースを呼んでるか分かるだろう。
938デフォルトの名無しさん:05/02/27 22:43:12
あちゃ、イメージファイルの事か、>>936は間違いです。
939デフォルトの名無しさん:05/02/28 02:00:04
CLIの資料てないですか?
仕様書とか
940デフォルトの名無しさん:05/02/28 02:13:18
ECMA-335
941デフォルトの名無しさん:05/02/28 02:47:00
何故にECMA?
JavaScriptと何か関係が?
942デフォルトの名無しさん:05/02/28 02:49:31
>>941
CLIの仕様もECMA標準になってますが
943デフォルトの名無しさん:05/02/28 02:53:22
>>941
ワラタ
944デフォルトの名無しさん:05/02/28 03:04:28
ん、ANSIみたいなもん?>ECMA
945デフォルトの名無しさん:05/02/28 03:15:35
ECMAはヨーロッパの標準化団体の名称。
946デフォルトの名無しさん:05/02/28 03:17:31
947デフォルトの名無しさん:05/02/28 03:22:37
ちなみに
ISOなら、C#→ISO 23270、CLI→ISO 23271だぞ。
ECMAなら、C#→ECMA-334、CLI→ECMS-335
まぁISOに登録されたって事は、JISになるのは時間の問題さね。
948デフォルトの名無しさん:05/02/28 03:28:16
番号まで覚えている奴きもい
949デフォルトの名無しさん:05/02/28 03:31:44
>>947
MSの中の人によるとJISになるらすぃよ。
950デフォルトの名無しさん:05/02/28 04:23:13
CLIの日本語の資料ないの?
951デフォルトの名無しさん:05/02/28 07:07:20
Datagridがソートされたのを知らせる方法はないでしょうか?
またソートされたとき内蔵してるDatatable(DataSet)を同じようにソートするにはどうしたらいいでしょう
952デフォルトの名無しさん:05/02/28 21:22:12
画像の指定範囲を切り取って保存するのはどうやったらいいですか?
たとえば、SXGA(1280*1024)サイズの画像の、200*200座標から350*350座標の部分を切り取るとか。
953デフォルトの名無しさん:05/02/28 21:27:28
サイズ指定でBitmap作ってGraphics.FromImageしてDrawImageしてSave。
954デフォルトの名無しさん:05/02/28 22:07:53
処理に負荷がかかる処理だと、(応答なし)となってしまいすが、
これはスレッドを使えばこの表示は出なくなるのでしょうか?

スレッドは関係ない場合(応答なし)の表示を出なくするには
どのようにすればよいでしょうか?
955デフォルトの名無しさん:05/02/28 22:10:32
>>954
非同期処理とかスレッド関連のドキュメントを読み漁ると吉
要はイベント処理スレッドを可能な限り早くスレッドループに戻してあげればいい
956デフォルトの名無しさん:05/02/28 22:11:43
>>955
スレッドループじゃなくてメッセージループでしたすまぬ
957デフォルトの名無しさん:05/02/28 23:15:54
タスクトレイに常駐アイコンを持つソフトを作っています(言い方が変??)
今まではメッセージボックスでユーザーに状況などを表示していたんですが、
やはりメッセージボックスは目障りだとのことで、WindowsMessengaerのように
タスクトレイの↑からポコって表示させたいと思っています。

ただ、タスクトレイの↑の場所というのはどのように取得すべきでしょうか?
画面の解像度、Windowsのテーマによっても違ってきてしまいますので・・・
958デフォルトの名無しさん:05/02/28 23:24:52
>>957
VBPowerPack でぐぐってみ
NotificationWindow っていうズバリなコンポーネントがあるから
959デフォルトの名無しさん:05/02/28 23:41:13
早速、有り難う御座いました。凄いモノがあるのですね・・・Googleで調べ損ねていました。

もう一つ質問なのですが、NotifyIconでタスクトレイにアイコンを作るとアプリケーションを終了後もアイコンが残ってしまいます。
アイコンの上にマウスを持って行くと消えるのですが・・・
960デフォルトの名無しさん:05/02/28 23:45:30
>>959
それが既定の動作。
Application.ApplicationExitイベント当たりでVisible=falseにする。
961デフォルトの名無しさん:05/02/28 23:58:09
追加です、早速NotificationWindowを使ってみました。
凄いですね、本当に便利です。
今までメッセージボックスで行っていた作業を全てこっちにしてしまおうかと・・・

アプリケーション終了後もアイコンが残ってしまう件ですが、
終了前にDisposeさせてもやはり無理でした。
引き続き宜しくお願い致します。
962デフォルトの名無しさん:05/03/01 00:03:20
>>960
あ!入れ違いになってしまいました。
さっそく試してみますね。
963デフォルトの名無しさん:05/03/01 00:52:02
Datagridがソートされたのを知らせる方法はないでしょうか?
またソートされたとき内蔵してるDatatable(DataSet)を同じようにソートするにはどうしたらいいでしょう
964デフォルトの名無しさん:05/03/01 00:53:46
DataGridやListBOXで改行なしで100kbのデータとか
入力されたときのエラー処理はみんなどうしてるのですか?
表示しようとするとGDI+エラー出るし、編集は重くて耐えられない
(Ahtlon64FXでも)何かいい知恵ください。
965デフォルトの名無しさん:05/03/01 01:53:44
>>963
> Datagridがソートされたのを知らせる方法はないでしょうか?

表示してるDataTableのDefaultViewのListChangedイベント。

> またソートされたとき内蔵してるDatatable(DataSet)を同じようにソートするにはどうしたらいいでしょう

DataTableはもとより行の並びに意味はないのでその質問はナンセンス。
表示されている行の並びを取得するなら
ttp://dobon.net/vb/dotnet/datagrid/currentrow.html

>>964
どうやったらそんな事態になるんだ? コントロールの選択を誤ってるとしか思えないが。
その列は非表示にしといて、別に用意したTextBoxに連結させるとかさ。

どうしても表示しなくちゃなんないのなら、
入力文字列のLengthがある程度大きくなったらSubstringすればいいんじゃない?
元文字列は列をキーにしたハッシュテーブルに格納するとか。
いずれ編集を直接行うわけにはいかないでしょ。ユーザからしても。
966名無しさん♯:05/03/01 07:43:40
次スレ立てますた。( ゚д゚)ノ
http://pc5.2ch.net/test/read.cgi/tech/1109630502/l50
967デフォルトの名無しさん:05/03/01 10:10:48

前から疑問に思ってたんすけど、>>960みたいなアプリケーションを終了するときのイベントって
どうやって記述するんでしょう?
VBをやっていたときはコンボボックスから普通に選択すれば勝手に入力してくれたんですが、
C#だと全然わかりませぬ・・・
968デフォルトの名無しさん:05/03/01 10:20:46
>>967

云いたいことがよくわからんのだが、
Application.Exit()
ぢゃだめなの?
969デフォルトの名無しさん:05/03/01 10:23:29
イベントぐらい自分の手で書けるようにしておけ。
970デフォルトの名無しさん:05/03/01 14:16:12
その書き方をきぼん
971デフォルトの名無しさん:05/03/01 14:20:40
969の口調をまねるなら、

それくらい自分で調べられるようにしておけ。
972デフォルトの名無しさん:05/03/01 14:33:58
>>970
Application.ApplicationExit +=
と書いてTabキー2回。
973デフォルトの名無しさん:05/03/01 15:18:18
>>972
激しくThx!
974デフォルトの名無しさん:05/03/01 16:18:53


リストビューの指定した位置にアイテムを追加する方法ってありますでしょうか?
Items.Addを使うとリストビューの末尾に追加されてしまうのです・・・
Insertを使うにしても、InsertできるのはStringなのでSubItemまでString[]で追加することができません。
Insertで追加したあとに、そのアイテムのサブアイテムを指定すると無論、存在すらしていないのでエラーを吐きます。

リストビューの指定したインデックスにアイテムをAddする方法をご存じの方がいましたら宜しくお願い致します。
975デフォルトの名無しさん
>>974
Insert(int, ListViewItem)すればいいじゃないか。