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


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

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



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






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

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

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