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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:57:21 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part43
pc12.2ch.net/test/read.cgi/tech/1248573707/

255 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:11:16 ]
サードパーティのライブラリ買うか,データだけCSVかなんかで吐いてExcelで印刷したら

256 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:11:40 ]
仕事だか何だか知らんが毎回聞きに来るなよ
ボランティアでも飽きるわ

257 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:18:14 ]
な なるほど難しいですか
皆さんどうしたんですか
カルシュウム足りてませんよ
>>253 あい
>>254-255 そうですよねググッテQ&A読んでたら最終的にそういった結論でした
>>256 このスレの意義がなくなるでわないか!国民よ!!

258 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:20:09 ]
WPF使えばわりと簡単に印刷できるよ
君には簡単じゃないだろうけど

259 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:27:41 ]
ごめんごめんもう少し調べてみる
ちょっと安易すぎた
>>258
ありがとう
興味あるけどWPFはもっと腕をあげてからだな
ありがとうね

260 名前:デフォルトの名無しさん [2009/09/01(火) 23:29:28 ]
treeViewで指定したnodeを選択できますか?
aspだと
TreeNode.Selected = True
TreeNode.Select()
ようなのですが・・・・


261 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:32:01 ]
ソースかけ

262 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:34:08 ]
TreeViewの方にプロパティがある

263 名前:デフォルトの名無しさん [2009/09/01(火) 23:55:38 ]
TreeViewの方にありました!ありがとうございます。



264 名前:259 mailto:sage [2009/09/02(水) 00:10:03 ]
意外と簡単に出来ました
datatbsuu.Rows[r]["hoe01"].ToString().PadRight(10)
すいません
マジググって分からなかったんで安易に聞いてしまいました
すまぬ

265 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:11:57 ]
それが印刷・・・?
まあ解決したなら別にいいけど。

266 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:36:34 ]
例えばピクチャーボックスに機能を追加したいだけの時、ユーザーコントロールだとピクチャーボックスの機能を
すべて受け渡してやらないといけないんですが、単にピクチャーボックスの派生型から必要な機能だけを追加しても
いいでしょうか?
なにか不具合はありませんか?

できればオリジナルのピクチャーボックス同様デザイナでも利用したいのですがツールボックスに登録して
デザイナでレイアウトできますか?

267 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:54:19 ]
別に問題はない

268 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 20:42:15 ]
機能を追加するならユーザーコントロールにした方が分かりやすそう

269 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 20:54:36 ]
そんなわけないでしょ。
ツラが変らないならカスタムコントロール(既存のコントロールからの派生)でいいし、
その方がずっとわかりやすい。

ユーザーコントロールってのは、当たり前だが複合コントロールを作るためのものだよ。

270 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 20:57:46 ]
ピクチャボックスくらいならユーザーコントロールから派生してプロパティを橋渡ししてる暇があったら
Controlから直接派生して自作できそうだ

271 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 21:19:19 ]
機能を追加するコンポーネント作るってのもあり

272 名前:デフォルトの名無しさん [2009/09/02(水) 21:30:17 ]
起動が遅すぎます
何とかして下さい

273 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 21:44:31 ]
新しいマシン買えよ。



274 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 22:03:53 ]
アドビのソフトみたいにスタートアップにこっそり仕込んでおけばいいんだよ。
やりすぎるとOSそのものの起動が激遅になるけどねw

275 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:06:16 ]
ジュネリックコレクション型のcontainがうまくいかなくて困っています
配列へコピーしてもダメで困っているのですがどうしたらいいのでしょうか?
public class Location{
  public int x, y, z;
  public void data(Location position){
    this.x = position.x;
    this.y = position.y;
    this.z = position.z;
  }
  public void data(int x, int y, int z){
    this.x = x;
    this.y = y;
    this.z = z;
  }
}
static void Main(string[] args){
  Location pos1 = new Location();
  Location pos2 = new Location();
  List<Location> FilePosList = new List<Location>();
  pos1.x = 5;
  pos1.y = 10;
  pos1.z = 20;
  pos2.x = 5;
  pos2.y = 10;
  pos2.z = 20;
  FilePosList.Add(pos2);
  if (FilePosList.Contains(pos1)) {
    Console.WriteLine("値が一致しました");
  }
}

276 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:07:16 ]
>>275 すいません 現象は Containsが一致しないことです

277 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:16:03 ]
>>276
pos1 == pos2が成立するようにする
具体的にはEqualsのオーバーライド

278 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:21:19 ]
EqualsやGetHashCodeを実装するのはもちろんだけど,
そういうデータは変更可能なクラスであってはいけない。
あとからメンバの値を変更できないような設計にするか,
クラスではなく構造体にしないと整合性が保たれない。

279 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:32:03 ]
>>276 文字通り Equalsのオーバーライドで求めているものができました
ありがとうございます。

>>278 アドバイスありがとうございます

280 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 12:47:43 ]
List<T>.Containsの解説にEqualityComparer.Default使うって書いてあるんだから読めよな
しかしこれもダックタイピングなのか

281 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 13:05:19 ]
EqualityComparer<T>.Defaultは通常はObject.Equalsの結果を返すだけ。
だからオーバーライドしてあればそっちが呼ばれる。ダックタイピングではない。
EqualityComparer<T>.Defaultは面白いプロパティで,TがIEqualityComparer<T>を実装してたら
Object.EqualsじゃなくてIEqualityComparer<T>.Equalsを使う実装に代わったりする。

282 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 13:12:41 ]
面白いというよりトリッキーだな

IEquatable<T>なら理解できるが

283 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 13:13:20 ]
ContainsじゃなくてExistsを使うというのも一案



284 名前:281 mailto:sage [2009/09/03(木) 13:14:35 ]
>>282
間違えた
IEquatable<T>で正解

285 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 14:03:53 ]
そういえばMSDNでコレクションクラスにIがつくものはプロパティとなっていて
つかないものはクラスとなるけど、サンプルはその記述だけで他が一緒。
これはどういう使い分けをしたらいいの?

286 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 14:20:52 ]
先頭にIが付くのはインターフェイスといいます。
わからないうちはクラスだけ使ってれば問題ありません。
非常に重要な概念ですがとてもこんなところで説明しきれるようなものではないので
ちゃんと基礎から自分で勉強した方がいいです。

287 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 14:26:57 ]
フェルマーおつ

288 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 14:31:07 ]
インターフェイスという言葉も知らない奴に何を教えるんだよ
オブジェクト指向や多態性について10レスくらい使って書けばいいの?

289 名前:デフォルトの名無しさん [2009/09/03(木) 15:06:48 ]
下記のようにlistという配列に追加してDataRowを追加しています。
list.Add(DataRow.ItemArray);
それで、テンプレート側でlistの表示を行いたいのですが、
やり方がいまいちわかりません。
foreach等でまわすのはわかるのですが、どうやってまわすのですか?


290 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:12:52 ]
以下をオブジェクト指向に則って書き換えるとするとどのようなコードになるますか?

class MyClass{
public int methodA (int i)
{
return i + 1;
}
public int methodB (int i)
{
return i - 1;
}
}

class ClassB{
public int methodA (int i)
{
return i * 2;
}
public int methodB (int i)
{
return i / 2;
}
}


291 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:17:02 ]
クラス分ける意味ないと思う

292 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:17:24 ]
そんなんにオブジェクト指向もなにもない

293 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:29:28 ]
インタフェースを使って、

interface IStrategy {
int methodA(int i);
int methodB(int i);
}

class ClassA : IStrategy {
...
}

class ClassB : IStrategy {
...
}

GetStrategy() は、ClassAかClassBのどちらかのインスタンスを返すメソッドとして
どこか別のところで、
IStrategy strategy = GetStrategy();
int bar = strategy.methodA(foo);





294 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:30:24 ]
>>292
そうですよね。
昨日行った面接でホワイトボードにこれ出されて、
オブジェクト指向で書き換えるように言われたのですが。。。
上手く回答する事ができず、取りあえずinterfaceをくっ付けてみたのですが、
後学の為に、どうか書けば良かったのか知りたかったのです。
分かる方居ればご教授頂けると嬉しいです。

295 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:33:01 ]
酷い面接だなw
OOP脳っぽいw

296 名前:293 mailto:sage [2009/09/03(木) 15:33:44 ]
>>294
オブジェクト指向は関係なくて、Strategyパターンを知っているかが求められていたのでは?

297 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:34:18 ]
>>293
ありがとうございます。ストラテジーパターンですね。
やはり、デザインパターンで回答するのがスマートでしたか。
イメージはありましたが、名前が出てきませんでした。

298 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:36:58 ]
>>294
その可能性はありますね。ストラテジーパターンは知ってはいたのですが、
面接官の前でテンパってしまってInterfaceくっ付けるだけで、
その後の説明ではアワアワなってしまいました。

299 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:41:48 ]
面接頑張ったね☆

300 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 15:59:22 ]
>>291-299
ありがとうございました。

301 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 18:12:02 ]
質問です。

TabPageとそれに格納されているコントロールを複製して、
同じ挙動・レイアウトのTabPageを作成したいのですが、
どのような方法がありますか?

302 名前:デフォルトの名無しさん [2009/09/03(木) 18:37:47 ]
山田 優   A
山本 一太     B
山田 太郎     C

テキストボックスで名前とアルファベットの間にタブを入れると
上のようになるんですが、メモ帳やテキストエディタにコピペすると
きちんと等長になります
テキストボックスコントロールでタブを等長にするにはどうすればいいですか?

303 名前:302 mailto:sage [2009/09/03(木) 18:42:29 ]
自己解。
フォントが非等長でした。
すんまそん。



304 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 19:53:15 ]
等幅と言ってくれ寒気がする

305 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 20:02:56 ]
プロポーショナル・非プロポーショナルという方が実際的な気がする

306 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 21:24:47 ]
ああ、そうでしたね・・・

細かいこと気にするなよ兄弟

307 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:04:11 ]
>>301
やりたいことがよくわかんないんだけど。
ユーザコントロールにその「タブに格納されているコントロール」群を貼り付けて、
そのユーザコントロールをあちこちのタブページに貼り付けるんじゃダメなの?

308 名前:デフォルトの名無しさん [2009/09/03(木) 22:45:25 ]
質問です。

サブスレッドにてメインスレッドのListvViewコントロールから取得したListViewItem似たいし
処理を施してからメインスレッドのListViewに返したいと思っています。
Invokeする際にIndexを取得しておく方法を考えていますが、Itemを返すときに取得した位置に
間違いなく返す方法があれば教えてください。

309 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:48:55 ]
仮想リストビュー便利よね

310 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:48:55 ]
C#からネットの切断を行うことはできますか?
コントロールパネルのネットワーク接続から「無効にする」を選択した状態を再現したいです。
アンセーフなものでも構わないのでご教授いただけませんか

311 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:54:09 ]
>>308
それ日本語かよ。

312 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:28:50 ]
>>310
ネットワークデバイス(ドライバ)を無効化すれば?

>>308
落ち着け

313 名前:301 mailto:sage [2009/09/03(木) 23:35:03 ]
>>307
それでやりたいことはできそうです。
ありがとうございました。



314 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:42:15 ]
マザーボードの種類がLGA1366よりLGA1156が圧倒的な速さで出回っているのは
これからのCPUの割合がそうなっちゃうからなのか?
メモコンとかで劣るのに。
まじで?

315 名前:314 mailto:sage [2009/09/03(木) 23:43:48 ]
Janeのタブが悪戯しました。
代わりに誤爆したことを謝ります。
m(´。。)mペコリー

316 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:45:16 ]
おちゃめさんなJaneだなぁ

317 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 00:16:01 ]
俺もJaneちゃんにいたずらされたいです。
誰かコーディングしてください!

318 名前:308 [2009/09/04(金) 00:21:06 ]
すいません。やりたいことは

delegate GetItemDelegate();
delegate SetItemDelegate();

private void Button1_Click(sender, e)
{
Thread t = new Thread(new ThreadStart(Send));
t.Start();
}

private void Send()
{
Invoke(new GetItemDelegate(GetItem)); ←これを
〜処理〜
Invoke(new SetItemDelegate(SetItem)); ←もとの位置に戻したいが上手い方法がわからない
}

private ListViewItem GetItem(){〜処理〜}

private void SetItem(ListViewItem lvi){〜処理〜}

319 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 00:40:46 ]
ListView.Itemsに含まれてるListViewItemは別スレッドで操作できないから
一旦ListView.Itemsから削除することになるけど
適当にListViewItemと元のIndexを持ったクラスでもやりとりすれば良いんじゃね
仮想リストビュー使った方が良いと思うけどね

つか元の位置に戻したいとかよく分からん GetItemの返値捨ててるし

320 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 00:46:30 ]
やはり>>318の言いたいことはさっぱり理解できんね。
恐らく本人も自分が何をしたのか、よく理解できてないんだろう。

いずれにせよ、自分を考えを整理できない人間が、かつ説明能力も欠如してると
最強の「日本語でおk」なフィーリング溢れる文章が出来上がる、と。

321 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 00:52:08 ]
>>312
ありがとうございます。
devconというものを使えばできそうなのはわかったのですが
再配布禁止なようなので、できればAPIなどで実現したいです。

ドライバの無効化はどのように実現するものなのですか?

322 名前:318 mailto:sage [2009/09/04(金) 01:04:09 ]
>>319
なんも見ないでおおざっぱに書いただけなので細かい部分は勘弁してください
仮想モード調べてみたけどソートとかめんどくさそうで・・・

323 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:07:01 ]
別スレッドで処理せにゃならんほど大量のListViewItemねぇ



324 名前:312 mailto:sage [2009/09/04(金) 01:08:13 ]
>>321
私は組込屋ではないので、ドライバの知識はないです
ドライバなんで、もしかしたらWindowsAPIやDLLの知識が要るかもしれないです

参考になるかはわかりませんが
ttp://okwave.jp/qa1733096.html

325 名前:318 mailto:sage [2009/09/04(金) 01:25:10 ]
>>319
今ListViewに実装してるソータークラスを改良したらなんとか行けそうな気がしてきたんで
仮想モードを使う方法とインデックス保持専用クラスをやりとりする方法を両方検討してみます
ありがとうございました。

326 名前:314 mailto:sage [2009/09/04(金) 01:37:44 ]
>>325
気になって調べてみた。
こういったネットワークとかは経験上コマンドラインでなんとかなると思って調べてみると色々でてきた。
自分も試したことないから何とも言えないけど、コマンド関係を調べて見てはどうでしょうか、
kgo.dtiblog.com/blog-entry-32.html

327 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:39:01 ]
>>326
Janeのコテハン記憶にやられた。
かまって欲しいのか、そうなのか。

328 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:42:48 ]
Win32_NetworkAdapter の Disable() メソッドでいいだろ。

329 名前:デフォルトの名無しさん [2009/09/04(金) 10:13:37 ]
マルチスレッドについてです

どぼんさんところのサンプルを改造しててコンパイルエラーがでました

キーワード"base"は静的メソッドでは使用できません。

BeginInvoke・EndInvokeを使ってメインスレッドで処理しなければいけない

ような気がするんですがどう書いていいかわかりません。

よろしくお願いします。

次でコードを載せます。

330 名前:デフォルトの名無しさん [2009/09/04(金) 10:15:05 ]
  public partial class RequestTextBox : TextBox
  {
    public GMapStaticParameters GSParam = new GMapStaticParameters();

    //受信したデータを入れておくMemoryStream
    private static System.IO.MemoryStream requestData;
    //受信したデータを入れるバッファ
    private static byte[] bufferData;

    //html.Textの取得
    public static void GetMap()
    {
      //HttpWebRequestの作成
      System.Net.HttpWebRequest webreq =
        (System.Net.HttpWebRequest)
        System.Net.WebRequest.Create("www.hogehoge.com/data.htm");

      //非同期要求を開始
      //状態オブジェクトとしてHttpWebRequestをわたす
      IAsyncResult r =
        (IAsyncResult)webreq.BeginGetResponse(
        new AsyncCallback(ResponseCallback), webreq);

    }

    


331 名前:デフォルトの名無しさん [2009/09/04(金) 10:16:25 ]
  //非同期要求が終了した時に呼び出されるコールバックメソッド
  private static void ResponseCallback(IAsyncResult ar)
  {
    //状態オブジェクトとしてわたされたHttpWebRequestを取得
    System.Net.HttpWebRequest webreq =
      (System.Net.HttpWebRequest) ar.AsyncState;
    //非同期要求を終了
    System.Net.HttpWebResponse webres =
      (System.Net.HttpWebResponse) webreq.EndGetResponse(ar);
    //ストリームを取得
    System.IO.Stream st = webres.GetResponseStream();

    //データを読み込むための準備をする
    requestData = new System.IO.MemoryStream();
    bufferData = new byte[1024];
    //非同期でデータの読み込みを開始
    //状態オブジェクトとしてStreamをわたす
    IAsyncResult r = (IAsyncResult) st.BeginRead(
      bufferData, 0, bufferData.Length,
      new AsyncCallback(ReadCallback), st);
  }


332 名前:デフォルトの名無しさん [2009/09/04(金) 10:17:28 ]
  //非同期読み込み完了時に呼び出されるコールバックメソッド
    private static void ReadCallback(IAsyncResult ar)
    {
      //状態オブジェクトとしてわたされたStreamを取得
      System.IO.Stream st = (System.IO.Stream)ar.AsyncState;
      //データを読み込む
      int readSize = st.EndRead(ar);
      if (readSize > 0)
      {
        //データが読み込めた時
        //読み込んだデータをMemoryStreamに保存する
        requestData.Write(bufferData, 0, readSize);
        //再び非同期でデータを読み込む
        IAsyncResult r = (IAsyncResult)st.BeginRead(
          bufferData, 0, bufferData.Length,
          new AsyncCallback(ReadCallback), st);
      }
      else
      {
        //データの読み込みが終了した時
        //データをデコードして表示する
        System.Text.Encoding enc =
          System.Text.Encoding.GetEncoding(51932);
        base.Text = enc.GetString(requestData.ToArray());
base.Refresh;
        //閉じる
        st.Close();
        requestData.Close();
      }
    }
  }
インデントは全角スペースです

333 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 10:21:26 ]
よく読んでないけどとりあえずstaticは論外



334 名前:デフォルトの名無しさん [2009/09/04(金) 10:31:50 ]
ありがとうございます
staticを外すと

静的でないフィールド、メソッド、またはプロパティ 'ResponseCallback(System.IAsyncResult)' で、オブジェクト参照が必要です。

と言われますた。

335 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 10:40:10 ]
そう良かったね。

336 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 10:46:13 ]
ざまぁね〜な

337 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 11:40:15 ]
まだstatic残してるだろ

338 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 11:47:44 ]
解答する気もないのに煽る糞がまた増えてきたな

339 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 11:52:13 ]
自己紹介お疲れ様です。

340 名前:デフォルトの名無しさん [2009/09/04(金) 11:55:46 ]
>>337
天才!

無事コンパイルは通りました。ありがとうございました。

ただ、これをこまま実装した場合、メソッド呼び出しが連続したときなどの対処を考える必要があると思うのですが
連続した場合は動いているスレッドを破毀したい場合どのように改良していくべきでしょうか?
ロードマップだけでもお示しください。何とぞ。

341 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 12:12:15 ]
ReadCallbackは非同期で呼び出されるんじゃないの?
その中でコントロールを触るにはControl.Invokeが必要

342 名前:310 mailto:sage [2009/09/04(金) 12:28:30 ]
>>324,>>328
ありがとうございます。

いろいろ調べてみたのですが
とりあえずローカルエリア接続から排除するだけでも私のやりたいことを叶えられそうなので
「NetUseDel」を使ってみようと思いました。

しかし、NetUseDelはネットワークドライブからの接続解除について書かれたものが多く
どうやってローカルエリア接続を解除するのかわかりませんでした。

UseNameには「ローカル エリア接続」、「物理アドレス」、「ネットワークカード名」を試してみました。


もはやこちらでお願いするのもどうかと思うのですがご教授いただけないでしょうか


343 名前:デフォルトの名無しさん [2009/09/04(金) 12:56:15 ]
>>341
非同期です。Control.Invokeですね。
たぶん実行時エラーが出るとは思ってました。



344 名前:デフォルトの名無しさん [2009/09/04(金) 14:50:44 ]
>>341
とりあえず動作確認まで完了できました

ありがとうございました

345 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:11:17 ]
>>342
無理。

346 名前:デフォルトの名無しさん [2009/09/04(金) 22:35:46 ]
>>329でございます。

動作確認が取れたところでちょっとハードに重複してスレッドを呼び出してみました。
そうすると、閉じたストリームに書き込もうとしてるぞエラーが出ました。
場当たり的にあちこちlockを使ってみましたがダメでした。

イベントハンドラがメソッドAを呼び出す。
メソッドAがメソッドBをマルチスレッドで呼び出す。
メソッドBはメソッドCをマルチスレッドで呼び出す。
メソッドCは自分の仕事が完了したかどうかチェックしてまだならメソッドCを呼び出す。
完了していたらControl.Invokeを呼び出す。

イベントはスレッド完了を待たずにどんどん発生します。
メソッドBを呼び出された順番で1つづつ実行したいのですが、BeginInvokeでいいでしょうか?
ヒントをひとつよろしくお願いします。


347 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:56:53 ]
EndGetResponseでReponse取得した後はわざわざBeginReadとかする必要は普通ない

> イベントはスレッド完了を待たずにどんどん発生します。
> メソッドBを呼び出された順番で1つづつ実行したいのですが
メソッドBが呼び出された順番でいいのか? メソッドAが呼び出された順番じゃなくて
なんにせよスレッドに順番なんて保証は皆無なので
メソッドBが呼び出された順をキューとかリストとかに保存して
Invokeを呼び出す時に並べてやる必要がある
その辺をマルチスレッドから扱うにはlockとかが必要
あとControl.BeginInvokeじゃ呼び出されるメソッドの順番は保証がない

348 名前:デフォルトの名無しさん [2009/09/04(金) 23:54:14 ]
GraphicsのDrawString等を使用してフォントサイズをピクセル単位で指定して描画することはできるでしょうか?
たとえばサイズを20pxとして描画した場合に全角なら幅20px、高さ20px、半角なら幅10px、高さ20pxとなるような

349 名前:デフォルトの名無しさん [2009/09/05(土) 00:04:53 ]
>>347
ありがとうございます。以前はリストを保存してタイマーでスレッドをチェックしてスレッドが走ってなかったらリストをひとつ消化
という仕組みにしてましたが、今回はイベントがタイマーより早く発生しそうでどうするか迷ってました。
かなり操作を早くしないとこのエラーはでないし、そこまで操作が早くなるとキューやリストを消化できない弊害がでそうなので
ストリームの状態を確認してエラーが出たら保存作業をスキップさせるように変更します。

経験に基づいた判断はサンプルコードでは得られないものですね。
ありがとうございました。

350 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 00:08:18 ]
>>348
ペゾルドの本でもじっくり読んでみたら。
偉そうに言ってる俺は拾い読みしかしてないけどw
msdn.microsoft.com/ja-jp/library/dd297679.aspx

351 名前:デフォルトの名無しさん [2009/09/05(土) 05:33:46 ]
ラジオボタンで、個人と法人のいずれかを選択させ、
個人の場合は、個人の姓名などの情報、
法人の場合は、会社名や代表者などの情報を入れてもらうように
パネルを切り替えています。
しかし、どちらが前面にあっても、タブオーダーは背面のコントロールにまで飛んでいるようです。
これを、背面に隠れている側のパネルのコントロールにタブが飛ばないようにするには
どうする方法が効率的でしょうか。
イベント発生ごとに、各コントロールのタブストップのTRUE FALSE を
1つずつ記述するしか方法はないでしょうか。
よろしくお願いします。



352 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 05:58:41 ]
個人の場合のパネルも法人の場合のパネルもフォームに貼り付けられてるのか?
選択された方のパネルだけ貼り付ければもう片方にフォーカスが移るはずがないんだが。

353 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 06:00:00 ]
背面に隠したパネルのVisibleかEnabledをfalseにすればいい



354 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 06:02:20 ]
隠れている側のPanel.Enabledをfalseにすればいい気もするけど試さずに書き込み。

355 名前:デフォルトの名無しさん [2009/09/05(土) 09:50:40 ]
初歩的な質問ですみません
ふだんVBでコーディングしているんですが、今回C#を書いています
そしたら、インテリセンスが不親切です
メソッドを選択しても()がつかない
メソッドの引数候補の情報が出ない
文法エラーが出て修正してもアンダーラインが消えない

こういうものですか?C#って






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

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

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