1 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 17:41:19 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part26 pc11.2ch.net/test/read.cgi/tech/1206238049/
40 名前:デフォルトの名無しさん [2008/04/22(火) 00:24:20 ] C#, C♯, C#相談室 Part45が、そろそろ限界なんだが規制で新スレが立てられない。 誰かお願いします
41 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:31:16 ] スレチガイです
42 名前:デフォルトの名無しさん [2008/04/22(火) 00:32:20 ] >>40 C#, C♯, C#相談室 Part46 pc11.2ch.net/test/read.cgi/tech/1208791919/
43 名前:デフォルトの名無しさん [2008/04/22(火) 00:38:25 ] >>42 乙です、ところでテンプレは? 一緒になって書いてぐちゃぐちゃになったら困るので、もし書かないなら返答お願いします。
44 名前:デフォルトの名無しさん [2008/04/22(火) 00:44:01 ] いなくなった? 無責任だな、とりあえずテンプレ自分書きます、他の人書かないでください。
45 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:46:55 ] スレ立ててもらったんだから、 テンプレぐらい自分ではれよw
46 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:47:34 ] >>39 youtubeにファイルをアップする際のバッファのどの部分にどのように記述すれば public/privateの設定ができるのかを教えてくれたら考えてもいい。
47 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:49:04 ] >>45 立てて放置はねぇーだろ
48 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:52:38 ] あるよ
49 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:57:00 ] 全然あるな
50 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 01:05:31 ] >>46 お世話になります これから調べてくるッス 日付が変わるまでにはなんとか
51 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 03:28:01 ] dllの中身が void hoge(char *str){ printf("%s",str); } のとき [DllImport("hoge.dll")] static extern void hoge(string str); とすると hoge("hoge"); で呼び出せて [DllImport("hoge.dll")] static extern void hoge(char[] str); とすると hoge("hoge".ToCharArray()); で呼び出せるみたいなんだけど、これってコンパイラがstringをchar[]に勝手に変えてくれてるの? 仕組みとか注意点とかあれば教えていただきたい。
52 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 06:33:59 ] >>51 StringがChar[]に変換されるのではなく、StringもChar[]もchar*に変換されてDLLに渡される。 .NETの型ごとに、プラットフォーム呼び出しの時、どんな型に変換されるか決まっている。くわしくは「規定のマーシャリング」でググれ。
53 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 07:13:09 ] >>46 おそらくここだけだと思う。宜しくご検討お願いします。 <form method="post" enctype="multipart/form-data" action="lax-v133.lax.youtube.com/my_videos_post " name="theForm" id="theForm" onSubmit="return formValidator();"> // private(非公開) <input type="hidden" id="field_privacy" name="field_privacy" value="private"> // public(公開) <input type="hidden" id="field_privacy" name="field_privacy" value="public"> </form>
54 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:36:00 ] >>52 サンクス
55 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:48:28 ] ヘジは人をラムダに導くためにイベント、匿名メソッド、ラムダと段階を踏んできたんだな
56 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:43:32 ] 前スレで質問をしたのですが、回答を見る前にdat落ちしてしまいました。 どなたかdatファイルをいただけないでしょうか。
57 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 10:20:32 ] vs2005のtabcontrolなんですが、タブ6つを | 5 | 6 | | 3 | 4 | | 1 | 2 | って風に3段に並べたいだけなんだけど、ビルドすると勝手に | 3 | 4 | | 5 | 6 | | 1 | 2 | のように並べ変えられる。これって自分だけ? 何か対処法を知ってたら教えてください。
58 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 11:19:32 ] C#ではUInt型は扱えないのでしょうか? DBにInt型で保存されてる値を取り出す時にUInt型として扱いたいのですが
59 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 11:41:39 ] >>58 uintやUInt32はあるけど?
60 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 13:27:34 ] >>56 www-2ch.net:8080/up/download/1208838402670654.eu5h9t pass: furatto
61 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 13:38:06 ] 初期値やデザイナへの表示の有無を変えたい=属性を変える必要がある と思って下のようにコードを書いたのですが、 もっと簡単に属性を変える方法はありますか? public class MyListView : ListView { public MyListView() { View = View.Details; } //[Browsable(false)] [DefaultValue(View.Details)] public new View View { get { return base.View; } set { base.View = value; } } }
62 名前:デフォルトの名無しさん [2008/04/22(火) 18:54:11 ] if文から強制的に抜けるにはgoto文以外でだったらどうすればよいですか? breakを使うとwhile文の中のif文では、while文を抜けてしまいます。 どうすればいいかおしえてください。
63 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:55:03 ] >>60 ありがとうございます。助かりました。 回答をくださった方もありがとう。
64 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:55:57 ] >>62 強制的に抜けなくてもいいよう、もう一段ifをネストする
65 名前:46 mailto:sage [2008/04/22(火) 20:55:06 ] >>53 手が空いてるときにやるから気長に待ってておくんなさい。
66 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:56:50 ] 小学生のトキ、夏休みの宿題に昆虫採取をするコトにしました。 まぁ、毎日アミ持って野山を駆け回って遊んでただけなんだけど、ある日すごいのを捕まえました。 体長13.5cmのトノサマバッタ(足含まず) まぁ、もちろん標本にして学校に提出したんだけど、次の日には学校中の噂が広がって展示場の理科室は昼休みなんかメチャ混みになっちゃったんだよね。 でも、2日ほどで撤去されちゃった上、学校が全校生徒にこんな内容のプリントを配った。 理科室にあった標本のバッタは、トノサマバッタではなく、外国のバッタである事がわかりました。 日本の生物では無いので、気にしないように。 その後、両親と共に校長室に呼ばれ、先生ではない数人の大人と話をし、両親はハンコを押したり、生活指導方針がどーとか難しいコトを言われてました。 子供心に「怒られてるんだ」ってのはわかりました。 それから十数年が経ち、なにげなく当時の事を思い出して両親に尋ねると・・・ 名前 大きさ つかまえた場所 トノサマバッタ 13.5cm 浜○原子力発電所緑地公園 ↑ コレが、まずかったらしい。
67 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:58:10 ] コピペ君って馬鹿だな、まで読んだ。
68 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:14:15 ] C#暦2週間ほどなのですが、ちょっと教えてください。 public class hoge{ ・・・ } と定義してあって、 hoge Vhoge = new hoge(); でインスタンスを生成し、Vhogeにはバイナリのデータが入ってるとします。 System.Io.File.WriteAllBytes を使ってバイナリを出力したいのですが、 そのような場合、第二引数としては、何を渡したらよいのでしょうか?
69 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:23:34 ] 出力したいバイナリを、byteの配列で渡す
70 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:36:21 ] もっと真摯に回答しろよ。
71 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:38:59 ] 分からないなら答えないでください><
72 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:39:48 ] ローカルルール 一、UCがセゾン傘下である事実を受け入れること 一、UCは流通系となった事実を受け入れること 一、クレディセゾンを誹謗中傷しないこと 一、セゾンUCを大切にすること
73 名前:68 mailto:sage [2008/04/22(火) 23:17:32 ] >>69 やっぱり、Vhogeをbyte[]に変換しないとダメですか・・・。 変換する方向で考えてみます。
74 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:20:14 ] >Vhogeにはバイナリのデータが入ってる からbyte[]のメンバを持ってるんじゃないの? 何か別のかたちで持ってる?
75 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:21:23 ] >>68 bytes 型 : System.Byte[] ファイルに書き込むバイト。
76 名前:68 mailto:sage [2008/04/22(火) 23:43:11 ] >>74 実際には、こんな定義になってます。 (とあるサンプルなので、中身は置いておいてもいいとは思いますが) [StructLayout(LayoutKind.Explicit)] public class hoge { [FieldOffset(0)] public short type_a; [FieldOffset(2)] public short type_d; [FieldOffset(4)] public short datano_s; [FieldOffset(6)] public short datano_e; [FieldOffset(8), MarshalAs(UnmanagedType.ByValArray, SizeConst = 10000)] public byte[] cdata; } これを、そのままのイメージでバイナリ出力したかったのですが・・・。 で、Vhogeのアドレスを渡したら、出力できるかと思ったのですが、 型の変換ができなかったので、いい方法はないかと思案中です。
77 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:32:19 ] Marshal
78 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 06:47:30 ] >>76 なんでそこまできっちり定義してるのに、>>68 に略したのかわからん。 68の書き方じゃ求めていた答えが返ってくるわけがない。 P/Invokeで出来るんだから、何か方法があると思うのが普通。 初めて調べたけど正解は、Marshal.StructureToPtrかな?
79 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:13:49 ] ってbyte[]にする必要があるんだった。コンパイルもしてないけど、こんな感じ? 2回コピーするのが気に入らん。 int size = Marshal.SizeOf(Vhoge); byte[] data = new byte[size]; IntPtr pnt = Marshal.AllocHGlobal(size); try{ Marshal.StructureToPtr(Vhoge, pnt, false); Marshal.Copy(pnt, data, 0, size); } finally { Marshal.FreeHGlobal(pnt); }
80 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:19:26 ] AllocHGlobalなんて怖いことしなくてもfixedやGCHandle.Allocで十分ですよ
81 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:53:15 ] マネージメモリに unsafe でアクセス != marshal レイアウト
82 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:17:47 ] >>81 お前は何を言っているな
83 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:55:01 ] あ一回はコピー生成してるのかごめん
84 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:01:28 ] コンテキストメニューの項目数を設定で自由に変更できるプログラムを作成したいです。 とりあえず下記の様に通常コードを作成しましたが headlineの項目をこの様に決め打ちするのでなくforループなどで動的に追加したいと思っています どのようなに書けばいいでしょうか。ご助言願いたいです。 // コンテキストメニューの動的作成 public void ContextMenuCreate(int number) { // イベントハンドルを宣言 EventHandler eh = new EventHandler(MenuFactorOnClick); MenuItem[] ItemMenu = { new MenuItem("headline_" + 1, eh), new MenuItem("headline_" + 2, eh), new MenuItem("headline_" + 3, eh), }; ContextMenu = new ContextMenu(ami); }
85 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:04:08 ] 二つほど記述ミスがありました、申し訳ありません。 引数のintはforループに用いようと思っていたのを消し忘れました。 ContextMenuの宣言で[ami]となっていますが[ItemMenu]の間違いです。
86 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:19:44 ] ContextMenu.MenuItems.Add()又は MenuItem.MenuItems.Add()
87 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:09:37 ] 迅速なお返事ありがとうございます。 下記の用に書くことで目的の動作を果たせました。 // コンテキストメニューの動的作成 public void ContextMenuCreate(int number) { // イベントハンドルを宣言 EventHandler eh = new EventHandler(MenuFactorOnClick); // コンテキストメニューを作成 ContextMenu = new ContextMenu(); // メニュー数を設定 ItemMenu = new MenuItem[number]; // メニューの追加 for (int i = 0; i < number; i++) { ItemMenu[i] = new MenuItem("headline_" + i, eh); ContextMenu.MenuItems.Add(ItemMenu[i]); } }
88 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:15:33 ] サーバー側で接続待ちをしていない状態で、 クライアント側からTcpClient.Connect();で接続しようとすると 「接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。 または接続済みのホストが応答しなかったため、確立された接続は失敗しました。」 ってエラーが発生します。 エラーになるまで20秒くらいかかってしまうのですが、 もっと早く接続できないと判断することはできないのでしょうか?
89 名前:62 [2008/04/23(水) 16:22:39 ] ifを入れ子してやってみたのですが、できません。 どうすればいいですか?
90 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:25:03 ] コードも出さずにどうすべきか聞くとはどういう事だ? 何故それで駄目かくらい書け。
91 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:32:33 ] >>88 とりあえずMSDNみてみ
92 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:37:41 ] >>90 いや、62はコード出す・出さない以前の問題じゃね? if 文を break で抜けれるとか思ってる時点で何かおかしい。
93 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:55:00 ] >>91 レスありがとう。 だがMSDNのどこを調べればいいのかわからない。 できたら場所を、教えてください。
94 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:56:16 ] breakは括弧閉じまでジャンプするもんだと誤解してるのかも
95 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:57:46 ] そこで括弧閉じればいいのにね
96 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:01:31 ] 目的: Control.ModifierKeysを使ってモディファイアキーを判定したい。 詰まっている箇所: 複数のモディファイアを判定する方法がわからない(Shift + Alt + Vなど) どなたかアドバイスいただけないでしょうか
97 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:06:01 ] >>96 Keys構造体はただのビット値。 (Control.ModifierKeys & Keys.Shift) != Keys.None) & ((Control.ModifierKeys & Keys.Control) != Keys.None) こんな感じでいけるはず
98 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:11:12 ] (Control.ModifierKeys & (Keys.Shift | Keys.Control) != 0)
99 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:13:16 ] Delphiの列挙値は比較が楽だったんだけどなあ。 なんでC#は似たような比較方式を採用しなかったんだろう
100 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:10:06 ] ヘジたん的になにか気に入らないところがあったのでは
101 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:10:31 ] TcpListener で質問なんですが 0.0.0.0 とやれば全指定なんですが 範囲指定したい場合、例えば 192.168.1.0とかやると 192.168.1.0〜192.168.1.255 とかできるんでしょうか?
102 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:24:02 ] >>97 >>98 ありがとうございました。 うまく動作させることができました
103 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:25:10 ] >>101 192.168.1.0であれば192.168.1.0のみになる。 0.0.0.0は特例でそういう使い方は普通ワイルドカードを利用する。
104 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:51:06 ] >>103 ありがとうございました。
105 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:15:26 ] >>95 do { } while(false) とか? >>99 ((enumValue & flag) == flag) を返す演算子があってもよさそうだよな
106 名前:68 mailto:sage [2008/04/23(水) 22:17:31 ] いろいろヒントありがとうございました。C# Marshalでぐぐって、 MyStruct o = new MyStruct(); ... IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(o)); try { Marshal.StructureToPtr(o, ptr, false); byte[] bytes = new byte[Marshal.SizeOf(o)]; Marshal.Copy(ptr, bytes, 0, Marshal.SizeOf(o)); ... } finally { Marshal.FreeHGlobal(ptr); } に当たったので、>>79 さんのサンプルでいいみたいです。 助かりました。
107 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:38:29 ] >>105 フラグはわざと便利にしてない感じがするなあ 分からないなら使わなくていい,使うにしても控えめに,っていうような意図を感じる
108 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:51:00 ] >>107 間違いなくその通りだろうな、Win32APIのラッパーが避けられない以上、やむなく残した としか思えないところがあるな。
109 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:53:43 ] javaからc#に転向することになって本読んでます。 パッと見javaと似てるけど、なんじゃこれは? というのもあります。 public xclass() : base(xclass.MethodA()) { Console.WriterLine("XClass constructor"); } xclass()メソッドの後ろにある、コロンとメソッド、 これは一体なんですか。 メソッドの直後にメソッドて・・・・??。 想像もつかんです。 しかもこの本には意味が書いてない。。 どういう動作になるんでしょう?
110 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:55:42 ] なんとなく理由が分かった、ビットフィードが無くなったのもこれが理由だな マルチスレッドだね、使用しないビットに対してもリードもライトもロックが必要になるが、どこまでロックが必要か訳わからんようになる。
111 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:56:14 ] 基底クラスのコンストラクタに引数を与える構文。
112 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:02:39 ] >111 ありがとうございます。 他の本で読んだ記憶がうっすらよみがえってきました。。
113 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:06:04 ] 少し不思議なことがあるのですが・・・xclass.MethodA() って何、コンパイルできないような気がしたので、自分の知識が不足しているのか、間違っているのか気になる。
114 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:12:42 ] >>113 デリゲートが引数になっているメソッドには、そのデリゲートに合うメソッドを引数として渡せる。 実際には、デリゲートのインスタンスが生成されているんだけど。
115 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:18:03 ] MethodA の後ろの () が、タイプミス? MethodA の正体は static 関数? ちょっと原文みてみたいですね、'WriterLine' だしw
116 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 07:02:10 ] kakenai
117 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 07:05:22 ] C#で sakuratan.ddo.jp/uploader/source/date79504.png 上の画像のようなGUIを扱いたいのですがどうすればよいのでしょうか?
118 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 07:50:04 ] そのPNG画像を読み込んで貼り付ければいんじゃね?
119 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:22:53 ] >>117 ユーザコントロールを作る OnPaintBackgroundをオーバーライドして背景を描画しないようにする OnPaintをオーバーライドして各頂点およびエッジを描画する その他にも細々と設定しないといけないプロパティとかあるかも。 パフォーマンス?さぁ…
120 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:03:00 ] enum.first.tostring()で"first"は得られるのですが enumに同期させてenum.firstならば"最初" enum.secondならば"二回目"とか任意の文字列を得るのに スマートな実装方法を教えて下さい
121 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:09:42 ] enum使わないでstructにする
122 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:16:13 ] TypeConverter 実装するとか
123 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:32:34 ] (int)enum.first 明示的にバラバラしてるんならできないけど
124 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:00:02 ] >>120 Dictionaryじゃダメな理由を聞こうか
125 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:27:06 ] >>88 だけど どなたか知ってたらヒントください。
126 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:57:38 ] >>125 ttp://bbs.wankuma.com/search.cgi?no=0&word=%94%F1%93%AF%8A%FATCP&andor=and&logs=17.txt&PAGE=50
127 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 12:57:58 ] >>125 Recieveにはタイムアウト設定できたと思うが、Connectには無理だったと思う
128 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:46:50 ] >>127 はい、できません。 最近のWindowsなら、レジストリいじればシステムグローバルな 値は変更できると思うけど。 TCP周りのいろんな設定値はユーザーランドではいじれない実装の OSがほとんどです。
129 名前:88 mailto:sage [2008/04/24(木) 18:30:05 ] >>126-128 ありがとうございます。
130 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:58:22 ] Equalsって何と発音するのでしょうか・・?
131 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:01:02 ] 辞書引けよ
132 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:16:01 ] コンテキストメニューにショートカットを設定したいです。 メニューの数が可変であるためにVSに頼らず動的に作成しているのですが 生成番号に対応したショートカットを動的に与えるにはどのようにすればいいでしょうか 下記の様なイメージです。 Item1(&Alt + 1) Item2(&Alt + 2) Item3(&Alt + 3)
133 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:17:18 ] >>130 無理矢理日本語で言うなら「いーくぉーる」かな。 ちなみに日本語で言う「イコール」のことな
134 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:42:20 ] C#でWindowsUI付きのFTPクライアントを作っているのですが、 UI(WinForm)をロックさせないためにBackgroundWorkerを使用しています。 BackgroundWorkerからはFTPコマンドを扱うクラス(FTPClass)のメソッド(UploadMethod)を呼び出しています。 この時、UploadMethodの進捗をUI(WinForm)に表示させたいのですが、 この場合UploadMethodの中でWinFormのコントロールを操作する処理をさせるしか ないのでしょうか? (実際にはWinFormはSTAなのでBackgroundWorkerのメソッドを介してUI変更を行います) というのも、その場合UploadMethod内のUI変更の処理は上位クラス(WinForm)の 実装を意識しないといけなくなるわけで、クラス間の結合が密になってしまうのは 好ましくないかなと感じまして。
135 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:43:02 ] >>130 いーくぁるず >>132 ちょっと↑の方のレス見ろ
136 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:48:12 ] >>132 ショートカットを設定することは出来るが、Altは使えないんじゃないかな。 Altを押した時点でコンテキストメニューは消えると思う。 ショートカットの設定は、ToolStripMenuItemなら .ShortcutKeys = (Keys)(Keys.D0 + i); でできる。
137 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:49:45 ] >>135 レスありがとうございます。 >>84-87 のところでしょうか? 私が行いたいのは(&Alt + 1)の数字の部分を要素にあわせてインクリメントする(イメージ)なので コンテキストメニュー自体を動的生成している>>84-87 とは問題が違ってしまいます。 説明不足申し訳ありません。
138 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:50:39 ] >>134 UploadMethodが進捗を返すのなら(返すか知らんけど)BackgroundWorker内で PeportProcessイベントを発生させればフォームに進捗を伝えられる
139 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:55:59 ] >>132 なんか発想が変な気がするよw 別にコンテキストメニューである必要もないし、メニュの数を動的に変える 必要も必ずしもないんじゃないの? ディセーブルにすれば十分に思うし、その方がユーザーにとっても明示的で わかりやすいよ。 もしコンテキストメニュー「も」必要なら、ポップアップするタイミングで メインメニューのメニューを丸ごと奪い取ればいいんだし。
140 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:00:15 ] >>137 括弧でアンダーラインが入ってるパターンのなら ToolStripMenuItem.Text = "背景色に設定(&1)"; みたいに前に&つけるだけだよ