1 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:30:18 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part40 pc12.2ch.net/test/read.cgi/tech/1239599317/
652 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:55:45 ] そりゃそうだ ハッハッハッ
653 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 15:29:58 ] 俺前やったときfirefoxでも止まったような気がする
654 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 15:30:28 ] Windows 7 DLしようとするとIEだと646のいう画面でリロード繰り返しの半無限ループ になってDLできないが、FFでやるとすんなりDLできた。
655 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 15:48:03 ] そりゃそうだ ハッハッハッ
656 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:11:03 ] リストボックスにファイルをリストして、ファイル名のみを表示したとき、 listbox.SelectedItemからそのファイルのあるフォルダを探すには、 再度検索しないとだめでしょうか? フルパスは捨てられちゃう?
657 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:15:58 ] 適当に作ったクラスにフルパスとプロパティ作って そのリストとか配列をDataSourceにするといいよ あとDisplayMemeber
658 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:17:24 ] ×フルパスとプロパティ ○フルパスと名前の2つのプロパティ
659 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 18:05:12 ] Visual Studioでプロジェクトのプロパティを開くとアイコンを登録できますが、 ここでは何ピクセル、何色のアイコンを用意するのがベターなのでしょう? また、OSが勝手に縮小や減色するのを避けるために、あらかじめ小さく作った 複数のアイコンを埋め込む方法も教えてください。
660 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 18:41:28 ] アイコンを複数入れる方法はなんとなくわかりました。 エクスプローラーで表示される可能性のあるアイコンの種類の一覧って どこかにありますか?
661 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:03:32 ] アプリケーションのメインフォームを取得する方法を教えていただきたい。
662 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:09:06 ] Application.Runする前に静的フィールドに保存しとけ、とか ApplicationContext 作って管理しろ、とか じゃない話?
663 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:26:16 ] ライブラリに組み込みたいのでRanに渡したフォームを簡単に 取得できるものがあればと思ったんですが、ApplicationContext を調べてみます。 ありがとう
664 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:54:45 ] >>660 一つのアイコンファイルに複数の大きさの画像が格納されててエクスプローラが自動選択で表示してるだけだから、 VSでどうこうするんじゃなくてそういうアイコンを作れ
665 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:02:21 ] 256x256,48x48,32x32,16x16が各8bit,32bitあれば事足りるらしい 事足りるっつーには多いが
666 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:33:46 ] >>645 struct使っても状況が良くなるとは思えないけど、 usingも慣れればそんなに悪くないよ。
667 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:27:18 ] >>664-665 わかりました。 アイコンが8個入ったファイルを作ることにします。
668 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:45:20 ] >>665 無い大きさで表示するときはどうなるの?
669 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:49:47 ] 小さいのを拡大するなり大きいのを縮小するなりするんだろ 96表示時は256のを縮小するらしいぞ
670 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:57:25 ] というか 256x256 は PNG 形式である必要があるはずなんだけど それ VS で作れたっけ? 駄目なら Vista 対応とか PNG 形式対応とかそんな感じのアイコン エディタ使わないといけないでふよたぶん。
671 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:28:41 ] >>670 PNGならmspaintでいいんじゃないか?
672 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:50:10 ] PNGそのものじゃなくて、icoファイルの中にPNG形式のを突っ込むのな
673 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 02:09:28 ] >>657 サンクス。やっぱり自分で保存しないと捨てられちゃうのね。
674 名前:デフォルトの名無しさん [2009/06/19(金) 03:39:28 ] 一つのボタンをクリックするごとに同じ場所に重ねてあるラベルを順々に最前面に表示させる方法を教えてください。 説明文を作ろうとしていて、ボタンを押すごとに説明文が次のものに切り替わるようにしたいです。
675 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 03:42:13 ] ラベルのText変更すりゃいいような気がするけど バインディングとか BringToFront
676 名前:デフォルトの名無しさん [2009/06/19(金) 04:12:17 ] >>675 ラベルを書き換えればいいんですね。 やってみます。
677 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:13:59 ] ソリューションエクスプローラで Form1csにForm1.Designer.csが付いてるようになってるけど、 自分で追加したClass1.csに他のソースファイルを付けるにはどうすればいいの? ドロップできないし、partialにしてもそうならないんですが
678 名前:デフォルトの名無しさん [2009/06/19(金) 05:29:13 ] コンボボックス内のアイテムを選択すると、指定したラベルが表示されるようにするにはどうしたらいでしょうか? コンボボックスはDropDownListで使います。
679 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:36:50 ] >>677 昔csprojファイルを直にいじったらできたような記憶がある たしかこれと同じようにすればよかったと思う <Compile Include="Form1.cs"> <SubType>Form</SubType> </Compile> <Compile Include="Form1.Designer.cs"> <DependentUpon>Form1.cs</DependentUpon> </Compile>
680 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:44:53 ] >>678 ラベルを配列かList<Label>にでも入れといて SelectedIndexChangedイベントが発生したら そのインデックスに対応するラベルを表示
681 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:58:23 ] >>679 <DependentUpon>で付けるみたいですね ありがとうございました
682 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:06:55 ] VS2008 SP1です。 INotifyPropertyChanged を実装したクラス「Sample」を ジェネリックの List<Sample> に2個ほど入れ、 DataGridView の DataSource に突っ込んだところ みごとにバインドされました。 しかし、コードでSampleクラスの値を変えても DataGridView のフォーカスのある行しか値が更新されません。 すべての行(この場合2行)が更新されるにはどうすればよろしいでしょうか?
683 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:08:12 ] >>682 のコードです。 class Sample : INotifyPropertyChanged { public Sample { } private bool _count; public bool Count { get { return _count; } } private DateTime _date; public DateTime Date { get { return _date; } } public void Update() { _count++; _date = DateTime.Now; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("Count")); PropertyChanged(this, new PropertyChangedEventArgs("Date")); } } #region INotifyPropertyChanged メンバ public event PropertyChangedEventHandler PropertyChanged; #endregion }
684 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:09:44 ] >>682 の実行コードです。 〜 // 2つほど入れる List<Sample> sampleList = new List<Sample>{ new Sample(), new Sample }; 〜 dataGridView1.DataSource = sampleList; 〜 // スレッドで定期的に更新する foreach (var item in sampleList) { item.Update(); }
685 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:56:41 ] IBindingListが必要なんでList<T>の代わりにBindingList<T>を あとスレッドでって言ってるけどInvoke/BeginInvokeは大丈夫か? データソースいじるときも同期が必要だぞ
686 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:35:28 ] >>685 BindingListに変更し、Invokeメソッドで実行してみましたが、 PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Count")); GUI上では DataGridView の現在選択中の行しか値は更新されませんでした orz
687 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:39:49 ] >>685 いえ、全部の行が更新されています! ありがとうございました!orz
688 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:42:53 ] どうでもいいがそのInvokeじゃないぞ Control.Invokeの方
689 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:53:33 ] >>688 手順としては 1.Sample クラスでプロパティの変更を感知 2.? 3.DataGridView または DataGridView の所属する Form で Control.Invoke(?) を呼び出す。 ということでしょうか?
690 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:01:42 ] Updateの呼び出しそのものをInvoke経由で バインディングされてるオブジェクトは扱いも慎重にしないとダメよ
691 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:16:33 ] C#でのスレッド間同期制御について教えて欲しいんだけど、先にソースを。 //C#での実装(失敗、デッドロックする) //※インデントに全角空白*2を使用 public class ThreadMain{ private EventWaitHandle lockObj; public ThreadMain(EventWaitHandle lockObj){ this.lockObj = lockObj; } public void run(){ lock(lockObj){ //ここには入れない Console.WriteLine("sub in sync"); lockObj.Set(); Console.WriteLine("sub out sync"); } } } public void test(){ EventWaitHandle lockObj = new EventWaitHandle(false, EventResetMode.AutoReset); ThreadMain tm = new ThreadMain(lockObj); Thread t = new Thread(tm.run); lock(lockObj){ t.Start(); Console.WriteLine("main in sync"); lockObj.WaitOne(); //ここで待機中の間だけlockObjを解放したい Console.WriteLine("main out sync"); } }
692 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:17:29 ] //javaでの実装(期待通りに動く) //※インデントに全角空白*2を使用 public class Test{ public static class ThreadMain implements Runnable{ private Object lockObj; public ThreadMain(Object lockObj){ this.lockObj = lockObj; } public void run(){ synchronized(lockObj){ System.out.println("sub in sync"); lockObj.notifyAll(); System.out.println("sub out sync"); } } } public static void main(String args[]) throws InterruptedException{ Object lockObj = new Object(); ThreadMain tm = new ThreadMain(lockObj); Thread t = new Thread(tm); synchronized(lockObj){ t.start(); System.out.println("main in sync"); lockObj.wait(); //待機中はlockObjのモニタは解放されている System.out.println("main out sync"); } } }
693 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:18:59 ] 上(>>691 )のプログラムで、 main in sync sub in sync sub out sync main out sync というシーケンスになるようにしたいんだけど、どうしたらいいだろう? 期待している動作は、メインスレッドがWaitOneに入るときlockObjのロックが解放されて、 サブスレッドがSet()して、さらにlock文から抜けた後、 mainがlockObjのロックを再獲得してWaitOneから復帰するようなイメージ。 Visual C# 2005 Express SP1 (.NET 2.0)
694 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:29:32 ] lockとEventWaitHandleは全然別物なんだからそりゃうまくいくわけないな lockはMonitorの糖衣構文だから、Monitor.WaitとMonitor.Pulseを使えば
695 名前:693 mailto:sage [2009/06/19(金) 11:29:40 ] あ、待機はスピンロックでなければ、EventWaitHandle,lock以外でも良いです
696 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:30:38 ] >>694 レスサンクス ちょっとやってみる
697 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:38:20 ] うほ出来た Monitorクラスはlock文用のEnterとExitしか無いと思い込んでた^q^ >>694 ありがとう (変更点) //EventWaitHandle lockObj Object lockObj //lockObj.Set(); Monitor.Pulse(lockObj); //lockObj.WaitOne(); Monitor.Wait(lockObj);
698 名前:デフォルトの名無しさん [2009/06/19(金) 13:30:18 ] VC++のCTreeCtrl(MFC) CTreeCtrl::GetEditControl に相当する処理を、 C#のTreeView で探しています(VS2005 .NET Framework 2)。 なんとかして、エディット コントロールのハンドルが欲しいんですが、 どうしたらいいか、わかる人おられませんか?
699 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:46:48 ] 道路標識みたいなアイコンのついたダイアログってどうやって出すんでしょう? フォームを自作しなくても、既製の部品があると読んだ覚えがあるんですが、 どうしても思い出せません。 こういうやつです。 ttp://f.hatena.ne.jp/images/fotolife/o/os0x/20080512/20080512223830.png
700 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:53:41 ] MessageBox.Show("text", "caption", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
701 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:54:07 ] MessageBoxIcon
702 名前:699 mailto:sage [2009/06/19(金) 15:03:01 ] ありがとうございます。助かりました。
703 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:10:51 ] INTもクラスなんだなー int x=new int(); x=12; ってやってもちゃんとできるね。
704 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:26:27 ] クラスじゃないです
705 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:58:00 ] とりあえずINTとIntとintは違う物なので きちんと書き分けないと話が通じなかったりするぞ
706 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:00:17 ] object i = 3; なんてこともできます。 実際はboxingでInt32に変換されてるだけですが。
707 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:04:58 ] Int32に変換? 「から」だろ?
708 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:11:03 ] class Program { static void Main(string[] args) { object i = 3; Console.WriteLine(i.GetType().FullName); } }
709 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:12:57 ] namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void Func(ref int x){ x=10; } private void Form1_Load(object sender, EventArgs e) { int y; this.Func(ref y); } } } これコンパイルできない 引数に10を代入する関数Func作ったが this.Func(ref y)のyがグローバルとか意味輪からんことでてきてる どうすればなおせる?
710 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:15:32 ] エラー CS0165: 未割り当てのローカル変数 'y' が使用されました。
711 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:16:04 ] refじゃなくてout使っとけ それかyに初期値代入しとくか つかエラーメッセージぐらいちゃんと書け
712 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:45:54 ] 豆知識 ダイアログがアクティブな状態でCtrl+Cを押すと エラーメッセージがクリップボードに入るぞ
713 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 19:10:26 ] 常識だろjk
714 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 22:32:06 ] 練習として、例のごとくテキストエディタを作っているのですが、「切り取り」「コピー」「削除」の表示について質問です。 テキストが選択されている間のみ上記のメニューを選択できるようにしたいのですが、上手く表示されません。 具体的には、 TextBox内のテキストを選択している状態で編集メニューを開いても上記のメニューは選択できる状態にはならず、 右クリックでメニューを表示してから編集メニューを開くと上記のメニューが選択できる状態になります。 右クリックをした瞬間に何かを呼び出しているんでしょうか? ちょっとわかりにくいでしょうか・・ ご教授願います。
715 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:23:00 ] >>714 メニューを開かれるタイミングで調べるんじゃなくて、 TextBoxの選択が変わったときにメニューのプロパティを書き換えるんだ。
716 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:24:18 ] メニューってContextMenuStripなのかMenuStripなのか どっちにしろOpendイベントで判定すればいいと思うけど
717 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:06:17 ] string[] line = text.Split('\n'); string[] cell = line.Split('\t'); と書いたとき、 for (int i = 0; i < line.Length; i++) {textBox[i].Text = lineView[i];} みたいに行は書けるけど、[i]行目のcell[0]はなんて書けばいいのでしょうか?
718 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:08:21 ] >string[] line = text.Split('\n'); >string[] cell = line.Split('\t'); どうみてもエラーです
719 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:23:29 ] 列数が固定(widthとする)なら string[] cells = table.Split(new char[]{'\t','\n'},StringSplitOptions.None) ここでx列y行はcells[x+y*width]
720 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:53:38 ] なるほど。 cells[0] | cells[1] | cells[2] cells[3] | cells[4] | cells[5] と左から順番に設定するんですね! これはすごい。 サンクス!!!
721 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:58:09 ] あんまりアホなこと教えないであげてください
722 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:03:07 ] 微笑ましいじゃないか。
723 名前:714 mailto:sage [2009/06/20(土) 02:57:30 ] >>715 できました! ありがと〜 Opendイベントとやらも調べてみます
724 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:59:17 ] どういたしまして
725 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:09:50 ] スレチな質問なんですがどこで聞いたら良いのか分からないので ここで質問させてください。 Visual Studio 2008 StdのC#でGUIなアプリケーションを作成しているのですが、 ファイルを参照するボタンに画像を貼り付けたいと思います。 凝った画像ではなく、エクスプローラの「ファイルを開く」メニューに表示 されているようなアイコンで構わないのですが、どこかで配布されているの でしょうか? それとも皆さん毎回オリジナルの画像を作っているのですか?
726 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:18:13 ] 初心者スレなのでアホな質問にも回答するが、スレ違いはお断り
727 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:27:21 ] >>725 MDI親フォームのリソースファイルの画像を使うとか。
728 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:29:33 ] シェルアイコンに微妙なセンスのアイコンがいっぱいある。
729 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:34:12 ] >>726 すまんです。 >>727-728 Windowsのシステムアイコンを抜き出して使うと言うことでしょうか? アイコンの抜き出し方は知ってますが、やはりまずいですよね? ここで聞けというスレがあれば誘導していただけるとありがたいです・・・
730 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:36:04 ] スレ違いだってわかってるなら汎用質問スレいけよカス
731 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:39:24 ] c#とVB両方インスコしちゃったら ソリューションファイル開くときに VisualC#とVBどっちで開くか聞いてきてうざい VBけしたほうがいい?
732 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:45:03 ] >>731 >>726
733 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:57:11 ] >>725 インスコ先探せばVS2008ImageLibraryってのが多分どっかにある。無くても確かMSDNから落とせる。 >>731 .slnの関連付けを変えればいい。 まあ、無駄レス付けるくらいなら答え付けてもいいんじゃねってことで。 どこで聞いていいのか分らんなら汎用スレがある。次からこっち行ってね。 スレ立てるまでもない質問はここで pc12.2ch.net/test/read.cgi/tech/1240877154/
734 名前:727 mailto:sage [2009/06/20(土) 04:13:29 ] >>729 ソリューションの新しい項目を追加でMDI親フォームを追加すると アイコンついたボタンが最初からフォーム上にあるからその画像を使ったらって意味。 その画像の元はフォームのリソースファイルにある。
735 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 04:49:24 ] Visual Studio 2008 Part 17 pc12.2ch.net/test/read.cgi/tech/1245309571/ こっち行け
736 名前:デフォルトの名無しさん [2009/06/20(土) 06:11:38 ] >>730 お前もいい加減スルーを覚えろよクズ
737 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 06:19:20 ] VS2003しか知らんが確かアイコン集が入っていたはず。 Common7フォルダだったかな? 最近は付いてないのかな?
738 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 06:34:03 ] あるスレッドで設定した変数を他のスレッドでも使うにはどうしたらいいでしょうか? 具体的にはBackgroudWorkerで設定した変数をstaticの変数に入れたいのです 別のスレッドではstaticが共有されないみたいなので行き詰ってしまいました。お願いします
739 名前:デフォルトの名無しさん [2009/06/20(土) 06:45:42 ] silverlightでデータベース上に存在するバイナリファイルを呼び出してウェブ上で再生したいんですけど、どうすればいいのか分かりません。 誰かやり方or良いサイト知ってれば教えてください 英語でも構わないっす
740 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:07:50 ] >別のスレッドではstaticが共有されないみたい そんなわけがない。 もしくは何か勘違いしてる。
741 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:24:41 ] >>740 なにか言葉足らずだったかもしれません、すいません www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37022&forum=7 ここに共有されないと載っていたので もう少しいろいろやってみます
742 名前:デフォルトの名無しさん [2009/06/20(土) 09:24:56 ] C#初心者です。 ConvertとかString.Formatとか、特にnewで作成してないのに 使用できるクラスのメソッドがありますが、自分でもそんなクラスを作りたいのですが どうすれば良いですか?
743 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:34:17 ] public int Method(int value){...} ↓ public static int Method(int value){...}
744 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:36:22 ] >>741 お、おまえは何を言っているのだ??
745 名前:デフォルトの名無しさん [2009/06/20(土) 09:42:21 ] 742 クラスがpublicでなかったようです。解決しました。
746 名前:デフォルトの名無しさん [2009/06/20(土) 09:45:00 ] >>743 ありがとうございます。メソッドをstaticにしてみます。
747 名前:738 mailto:sage [2009/06/20(土) 10:13:29 ] public class userData { static public int a; static public string b; } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { userData.a = 10; userData.b = "abc"; } private void button1_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); MessageBox.Show("a : " + userData.a + ",b : " + userData.b); } わかりにくくてすいません こんな感じでaとbを表示させたいのですが、どこがいけないのでしょうか
748 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:19:36 ] >>747 backgroundWorker1のRunWorkerCompleted イベントを作って、 その中で MessageBox.Show() を叩けば幸せになれるお。
749 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:25:41 ] >>748 ありがとうございます 表示できましたが、このaとbをBackgroundWorker以外でも使いたいのですが、これだとだめですよね?
750 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:34:29 ] >>749 俺はそういうことをしないようにしてるから、大正解の方法が分らんw BackgroundWorkerの 「IsBusy プロパティが真の間は処理を待つ」とかかな?
751 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:35:57 ] >>750 そんなこと言ったらビジーループで待ってしまうじゃないか
752 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:39:25 ] >>750 の補足 というか、BackgroundWorkerの処理完了後の動作はRunWorkerCompleted内に書けば全て解決。 button1は別スレッドを始動させるためだけのボタンと考えればいいんじゃないかな >>751 本末転倒だなorzwww