1 名前:デフォルトの名無しさん [2008/01/11(金) 15:41:00 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part22 pc11.2ch.net/test/read.cgi/tech/1197802312/
152 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:53:30 ] C#のことでなく.NET Frameworkのことですれ違いなんだけど、 C#で文法のことはいいとしてライブラリのことが知りたいんだけど いい情報源教えてください。 dobon.net/ は読みました。 とりあえず プログラミングMicrosoft .NET Framework 第2版 (マイクロソフト公式解説書) (単行本) は買ってみようと思います、 よろしくお願いします。
153 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:15:19 ] >>152 MSDN
154 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:33:43 ] アンマネージドなリソースについてなんですが、やり直し等の機能でいつ解放 したらいいかわからないものが出てきた(ファイルとか)ので、ゴミ箱クラス作って そこで一括管理しようと思ったのですが、対象となる変数の参照カウンタって 取得できないのでしょうか? やっぱり自分で皮をかぶせるしかないですかね?
155 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:40:28 ] 何が言いたいのかよく分からんが、 LRのガーベジコレクタは参照カウント方式じゃないぞ
156 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:40:59 ] s/LR/CLR/;
157 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:48:42 ] >>155 ありゃ、そうなんですか… orz 今ざっと調べたところ、Finalize()を積んでおけばGCが勝手に実行 してくれるみたいなんですが、どうしてもDispose出来ないときは それでいいんですかね?
158 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:03:32 ] GC される前にランタイムが落ちるとか、結構ありそうだけどな。 ところで 「やり直し等の機能」 って何?
159 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:24:53 ] >>157 アンマネージリソースを扱うなら、必ず適切なタイミングで Disposeを呼ぶような設計しなきゃ駄目だよ。 細かい話が多いので割愛するけど、 ファイナライザに頼るスタイルは色々問題があるのヨ。 ぶっちゃけマネージドな世界では、例えばC++において参照カウンタ式スマートポインタで 自動化できてたリソース管理の一部は使えなくなると思っていた方が良いかと。
160 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:30:02 ] VBの参考書で勉強しているのですが Label1.Text = DirectCast(Me.PreviousPage.FindControl( _ "TextBox1"), TextBox).Text をC#で書くにはどうしたらいいですか?
161 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:42:54 ] 自己解決しましたm(_ _)m
162 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 08:30:22 ] >>158 ペイントなどに良くあるやり直し・元に戻す操作です。 >>159 やっぱり自前でDisposeしなきゃだめなんですね… ちょっと基本設計見直してきます orz
163 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:07:03 ] Form1とForm2を定義して Form1内で Form2 f2 = new Form2(); f2.ShowDialog(); でForm2を呼び出した後にf2内のbutton_Clickイベント処理内でf2の中のテキストボックスや、コンボボックスの値をForm1で取得したいのですが どうしたらよいでしょうか?
164 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:56:14 ] Form2がイベント公開してf2内のbutton_Clickイベントハンドラ内でfire イベントデリゲート自分で定義してテキストやコンボボックスの値をEventArgsにつっこむか またはプロパティで公開しとく
165 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:31:40 ] fireってなんでしょうか?ぐぐってもよくわかんないです・・・
166 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:39:14 ] イベントを起こす、ってことじゃね? //Form2.cs public event EventHandler HogeEvent; private void button_Click( object sender, EventArgs e ) { if( this.HogeEvent != nul ) this.HogeEvent( this, EventArgs.Empty ); // ← ココ } ------------------------------------------- //Form1.cs ... Form2 f2 = new Form2(); f2.HogeEvent += new EventHandler( f2_HogeEvent ); ... private void f2_HogeEvent( object sender, EventArgs e ) { //ココが呼ばれる }
167 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:47:13 ] >>f2.HogeEvent += new EventHandler( f2_HogeEvent ); これは何をしているのでしょうか? form1では private void button_add_Click(object sender, EventArgs e) { Addition add = new Addition(); add.ShowDialog(); } でform2(Addition)を呼び出し、手動で、form2内のテキストエリアやコンボボックスに入力してOKボタンを押す そのとき、したのイベントに遷移して、このメソッド内で、form1内のデータグリッドを更新できないか?ということなんですが。 private void button_OK_Click(object sender, EventArgs e) { }
168 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:52:38 ] (´・ω・`)しらんがな
169 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:03:28 ] 恥をしのんで質問いたします。 初めてコンソールアプリを作ろうとしているのですが、 エクスプローラーからコマンドプロンプトにディレクトリパスをD&Dで使わせようと思っています。 そのとき、長いフォルダ名を含む場合、絶対パスを表す文字列がダブルクォーテーションで囲まれてしまいます。 そのため、"入力文字列補正処理"を入れるようにしましたが、なんだかスッキリしません。 皆様どうやってやってますか? 以下にソースを書きます。宜しくお願いいたします。
170 名前:169 mailto:sage [2008/01/15(火) 19:04:04 ] static void Main(string[] args) { string[] str; //検証用変数 string Input, Output; //フォルダパス Console.WriteLine("入力フォルダパスを入力して下さい"); //入力文字列補正 str = Console.ReadLine().Split(new char[] {'\"'}); if (str.Length == 3) { Input = str[1]; } else { Input = str[0]; } Console.WriteLine("出力フォルダパスを入力して下さい"); //入力文字列補正 str = Console.ReadLine().Split(new char[] { '\"' }); if (str.Length == 3) { Output = str[1]; } else { Output = str[0]; } if (Directory.Exists(Input) & Directory.Exists(Output)) { Console.WriteLine("valid"); Console.ReadLine(); } else { Console.WriteLine("invalid"); Console.ReadLine(); } }
171 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:07:37 ] >>167 form2でセットするんじゃなくて、form2はセットさせたい項目をpublicなプロパティで返すようにする form1でDialogResultをチェックしてform2のプロパティからセットするのが正解
172 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:07:40 ] Trim(char[])
173 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:18:45 ] >>167 個人で作ってるだけでプロパティ作るのが面倒くさかったら、 form2の該当の入力フィールド(textBoxとか)のModifiersをPublicにするのも手だけど
174 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:22:07 ] >>171 丁寧にありがとうございます。 >>セットさせたい項目をpublicなプロパティで返すようにする というのがいまいちわかりません。 ソース載せます。 //form1(Main) public partial class Main : Form { public Main(){ InitializeComponent(); } private void button_add_Click(object sender, EventArgs e) { Addition add = new Addition(); add.ShowDialog(); } } //form2(Additon) public partial class Addition : Form { public Addition() { InitializeComponent(); } private void button_OK_Click(object sender, EventArgs e) { //MessageBox.Show(textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text); } }
175 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:24:50 ] public partial class Addition : Form { public string 結果 { return textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text; } }
176 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:24:57 ] >>173 publicにしたら、Form1.csの補完機能からform2のコントロールが見えました! ありがとうございます!
177 名前:175 mailto:sage [2008/01/15(火) 19:25:16 ] ミス public string 結果 { get { return textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text; } }
178 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:37:02 ] はじめまして。 まことに簡単な質問で恐縮なのですが、DataGridViewのculomnsのプロパティで オートインクリメントをしたい列があるのですが、どうすればよいでしょうか? よろしくお願いいたします。
179 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:33:34 ] >>169 な、何を言ってるのかね?
180 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:53:51 ] >>169 ただファイルを開くとかくらいなら、 ダブルクォーテーションがあっても問題なかった気がするけど。
181 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 10:43:24 ] >>169 dos窓でドロップやったことないのか? スペース含むパス取り込むためにデフォルトで""囲みになるのが普通だよー
182 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:16:56 ] 問題あるならTrimでもすりゃいいんでは?
183 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:40:31 ] C#でExcelを操作しようと調べているんですが、断片的な 情報しか見つける事ができませんでした。 何か参考になる本やサイトなど知っていたら紹介して貰えませんか?
184 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:33:03 ] COM Excel C# でググるとか
185 名前:169 mailto:sage [2008/01/16(水) 13:21:32 ] >>180 そうだと思ったんですが、パスを変数に格納した後にフォルダの存在確認を>>170 の下の方で 行っているんですが、""つきのパスだと存在しないよって言われちゃうんですよ。 >>182 調べてみます
186 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:51:48 ] つか、D&Dできるの始めて知ったぜ。いつもいちいちコピペしてた。
187 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 14:00:08 ] Vistaでできないな、、、XPをリモートデスクトップで出してみたらこっちではD&Dできるが・・・
188 名前:デフォルトの名無しさん [2008/01/16(水) 14:38:39 ] VS2005でC#の勉強をしています。 質問なのですが、テキストファイルに 1 200 2 356 3 1250 4 870 5 692 といったような行列があり、それをC#のプログラムで読み込み 1000以上の値を持つものだけピックアップすることはできるでしょうか。 ピックアップした後に計算もしたいので、変数にその値を代入したいのです。 よろしくお願いします。
189 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:00:03 ] StreamReaderとかで開いて ReadLineして パースすればいい
190 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:01:21 ] var hoge = from line in File.ReadAllLines(@"...") from str in line.Split(' ') let value = Int32.Parse(str) where value >= 1000 select value;
191 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:05:51 ] VS2005や言うてるやろスカタン
192 名前:169 mailto:sage [2008/01/16(水) 15:46:16 ] >>188 StreamReader sr = new StreamReader(filepath); List<int[]> list = new List<int[]>(); do { string str = sr.ReadLine(); if (str != "") { string[] ary = str.Split(new char[] { ' ' }); int n1 = int.Parse(ary[0]); int n2 = int.Parse(ary[1]); if (n2 > 999) { list.Add(new int[] { n1, n2 }); } } } while (sr.Peek() != -1);
193 名前:169 mailto:sage [2008/01/16(水) 15:51:20 ] どうやら手動で削除するほかなさそうですね。 splitを使って面倒なことをしてましたが、 Trim(もしくはReplaceでも可)を使って少しコードがすっきりしました。 ありがとうございました。 Console.WriteLine("入力フォルダパスを入力して下さい"); Input = Console.ReadLine().Trim(new char[] { '\"' }); Console.WriteLine("出力フォルダパスを入力して下さい"); Output = Console.ReadLine().Trim(new char[] { '\"' }); if (Directory.Exists(Input) & Directory.Exists(Output)) { Console.WriteLine("valid"); Console.ReadLine(); } else { Console.WriteLine("入力したフォルダパスが不正です"); Console.ReadLine(); }
194 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:00:02 ] オマイラそれ絶対なんか間違ってるだろwww
195 名前:デフォルトの名無しさん [2008/01/16(水) 21:20:34 ] すみません、教えてください。 VS2005 .netでプログラムしていますが、HOMEPATHの取得法はあるのでしょうか? もしあるならば方法をご教授ください。 よろしくお願いします
196 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:23:02 ] 994 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/11(金) 12:14:20 Environment.GetEnvironmentVariable( "HOMEPATH" );
197 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:27:22 ] \r\n と \n の差がわからないんだが どっちも改行するわけだが動違うの?
198 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:31:50 ] >>197 サイズが違う。
199 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:38:14 ] おおまかにはOSによって改行コードが違う。 Unix:\n Windows:\r\n Mac:\r ってか基本だと思うけど。
200 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:40:24 ] >>199 トンクス Cとかだと\nが改行だから\r\nって何かと思ってたんだが Windowsなら\r\nでいいってことでつね
201 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:46:35 ] >>200 Cは、テキストモードだと、\nは\r\nに変換される。(winでは)
202 名前:デフォルトの名無しさん [2008/01/16(水) 21:52:10 ] >>196 ありがとうございました。無事解決です
203 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:09:14 ] >>200 どうでもいい話ではあるんだが意味的に言うとWinがたぶん正しい なのでhttpとかも\r\n。この辺はCRとLFを調べてみれ
204 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:28:13 ] むかしタイプライターというものがあってのう
205 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:57:06 ] LFだけってのはおかしいと思う。
206 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:00:21 ] それ言ったらCRだけなのもおかしい
207 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:16:31 ] CRってキャリッジリターンなのは聞いたことあるけど、LFってなんて言うの? ラインフィニッシュ?
208 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:20:38 ] ラインフィード
209 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:21:27 ] CR=キャリッジリターン=キャリッジ(紙を左右に動かす装置)を初期位置に戻すこと。 LF=ラインフィード=紙送り。
210 名前:デフォルトの名無しさん [2008/01/17(木) 00:53:22 ] C#相談室から誘導されてきました。 たとえば、こういうコードがあったとします。 if (Result == null) { transaction.Rollback(); MessageBox.Show("エラー0です。"); return false; } if ((int)Result == 1) { transaction.Rollback(); MessageBox.Show("エラー1です。"); return false; } if ((int)Result == 2) { transaction.Rollback(); MessageBox.Show("エラー2です。"); return false; } transaction.Commit(); return true; これをスッキリ表記するのに何かいい手段はないですかねぇ…。 throwで例外起こしてtry〜catchってのもスッキリしなくて…
211 名前:デフォルトの名無しさん [2008/01/17(木) 01:08:54 ] C#でLispみたいなカッコイイプログラミングするにはどうすればいいの?
212 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:13:40 ] F#をダウンロードします
213 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:20:46 ] そして卵を御飯にかけます
214 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:27:18 ] >>210 result = (Result == null) ? 0 : (int)Result; switch(result){ case 0: case 1: case 2: transaction.Rollback(); string temp = "エラー" + result + "です。"; MessageBox.Show(temp); return false; break; default: transaction.Commit(); return true; break; }
215 名前:デフォルトの名無しさん [2008/01/17(木) 01:39:34 ] xmlファイルをphpのsimple xmlみたいに簡単に扱える方法はないのでしょうか?
216 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:07:05 ] C#のswitchのcaseは絶対に下に降りられないと思ってたが、何も書かなければ並べられるのか。 しかし不必要なbreakを強要されるのが面倒くさいな。 Cの文法に慣れてる人がバグを作らないようにってことなのかな。
217 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:10:59 ] returnの下のbreakいらんだろ
218 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:22:09 ] いらん以前に到達できないコードな警告出たりしないかそれ確か
219 名前:デフォルトの名無しさん [2008/01/17(木) 13:16:16 ] 構造体のマーシャリングについて質問いいっすか? 自分よく分かってないんですが typedef struct tagDESKBANDINFO { DWORD dwMask; POINTL ptMinSize; POINTL ptMaxSize; POINTL ptIntegral; POINTL ptActual; WCHAR wszTitle[256]; DWORD dwModeFlags; COLORREF crBkgnd; } DESKBANDINFO; の WCHAR wszTitle[256];って [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode)] にした上で [MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)] string wszTitle; じゃないんですか? www.pinvoke.net/default.aspx/Structures/DESKBANDINFO.html とかだと255になってるんですがどっちが正しいんでしょう?
220 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 13:16:55 ] 試してみたがbreakいらんな
221 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 13:20:25 ] null終端とやらの関係かなとか思ったんですが msdn2.microsoft.com/ja-jp/library/795sy883 (VS.80).aspx 文字列のマーシャリングだと TCHAR szCSDVersion[ 128 ]; ↓ [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )] String versionString; になってるしワケワカリマセン
222 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 13:20:51 ] >>219 256であってる
223 名前:219 mailto:sage [2008/01/17(木) 13:25:09 ] >>222 ありがとうございます。 まじすか。 PInvoke.netのまま使ってると2バイトずつ上にずれてるってことですか?
224 名前:219 mailto:sage [2008/01/17(木) 13:30:11 ] ありゃMarshal.SizeOfを見たらどっちも同じ さらにワケワカメ アラインとかPackとかのせいですか? ということは実害なし?
225 名前:デフォルトの名無しさん [2008/01/17(木) 18:06:12 ] GTKについてわからないところがあるのですが、詳しい方いらっしゃいますか?
226 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 18:08:57 ] >>225 C#でGTKといったらMono? Monoスレに行かないといないかもしれない。
227 名前:デフォルトの名無しさん [2008/01/17(木) 18:11:31 ] そうですか…行ってみます。 すみません、ありがとうございました。
228 名前:デフォルトの名無しさん [2008/01/18(金) 01:31:53 ] VC#2008関連の書籍って出ないの?
229 名前:210 mailto:sage [2008/01/18(金) 02:17:47 ] >214 ありがとうございます。 これで試してみます。
230 名前:デフォルトの名無しさん [2008/01/18(金) 03:32:28 ] C#でxmlファイルをphpのsimple xmlみたいに簡単に扱える方法はないのでしょうか?
231 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 03:46:58 ] visual studio 2005を使ってます。 pictureboxに表示する画像のリソースを指定するときは this***.Image = Properties.Resources.abc; のようにしますが(というかVSが勝手にやってくれますが) これを文字列型の変数を使ってやることはできないでしょうか? string TMP; TMP = "abc"; として5行目と同じように指定したいのです。
232 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:06:54 ] リフレクション使えばできると思うが、やるほどの価値はないと思う。
233 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:02:54 ] ResourceManager.GetObject使えばできるけど厳密な型指定できないよ
234 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:27:36 ] 何をしたいのかを書けば、もっといい解決法があるかもよ
235 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:13:14 ] >>232 >>234 リソース名が連続した英数字なので、for文で数十の文字列の配列を作ったんですが、それをリソース名の指定に使う方法が分からなくて・・・ 手動でやるよりはるかに効率的だと思うので、できればさわりだけでも簡単に教えてもらえればと >>233 では、結局出来ないということになるんでしょうか・・・?
236 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:21:16 ] Properties.Resources.abc;の実装がどうなってるかみなよ。
237 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 10:18:33 ] >>230 XLinqでも使ってみれば
238 名前:188 mailto:sage [2008/01/18(金) 11:19:39 ] 遅くなりましたが無事解決しました! ありがとうございました。
239 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:01:23 ] byte[] b1 = new byte[] {1,2,3,4}; byte[] b2 = new byte[] {1,2,3,4}; があったとして、2つの配列の内容が全て等しいか簡単に調べる方法ってないですか? b1 == b2; も b1.Equals(b2); もfalseになります(´・ω・) やっぱいちいちforeachで回さないとダメですか?
240 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:04:53 ] うむ Array.Equals は object.Equals と変わらんからな
241 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:06:27 ] ぶ、C# 配列 比較 で検索したらすぐ見つかりました。 出来ないみたいですねorz お騒がせしました。
242 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:09:45 ] 継承クラスで共通のメソッド実行時 親クラスで共通の処理をさせたいのですがどうすればいいでしょうか うまく説明できないんですがポリモーフィズム的なメソッドの共通処理を 継承クラスでは意識せずに親で処理させたいのですが・・・
243 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:24:50 ] //親 virtual void Hoge() { ... } //子 override void Hoge() { ... base.Hoge(); } じゃあかんのん?
244 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:27:51 ] >>243 やっぱりそうなりますかね base.Hoge()の処理は必ずして欲しいのに base.Hoge();を付け忘れちゃったりするものですから
245 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:21:12 ] Hoge は virtual じゃなくして、HogeOverridable を virtual にして Hoge のなかで HogeOverridable を呼ぶ ただし派生クラスで基底クラスの処理の呼び出す位置を変更できないデメリットもある
246 名前:231 mailto:sage [2008/01/18(金) 19:49:57 ] >>231 ですが www.atmarkit.co.jp/fdotnet/dotnettips/220resources3/resources3.html を参考に Assembly thisExe = Assembly.GetExecutingAssembly(); ResourceManager TMPres = new ResourceManager( "***.Properties.Resources", thisExe); xxx = (Image)TMPres.GetObject("abc"); とやったらできました。
247 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:10:42 ] Image img = (Image)Properties.Resources.ResourceManager.GetObject( "hoge" );
248 名前:デフォルトの名無しさん [2008/01/18(金) 23:19:52 ] VS2008を使っていますが、 FormのFormClosingイベントを捕らえて フォームを閉じることを中止するにはどうすればいいのでしょうか? 以下のように書いてもだめでした。 private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("変更を保存しますか?", "確認", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result == DialogResult.Yes) { this.menuSaveProject_Click(sender, e); } else if (result == DialogResult.Cancel) { return; // ←これ } } よろしくお願いいたします。
249 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:26:03 ] 引数調べれ
250 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:28:22 ] e.Cansel = true; とやればいいようですね(´・ω・`) 今までeなんて無視してました ありがとうございました
251 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:29:03 ] ていうかイベントの解説に書いてるよな
252 名前:デフォルトの名無しさん mailto:age [2008/01/19(土) 00:16:31 ] IPAddress[] addrs; があったとして、 この中から特定のIPの項目だけ削除ってどうすればいいんでしょうか。 InteliSenseで見てると addrs.Except(); とかそれっぽいのはあるんですが、いまいち使い方がわかりません・・・