[表示 : 全て 最新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/

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#って

356 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:58:03 ]
それはC#じゃなくてVSが糞って言いたいんじゃないの?
引数候補の情報や文法エラーは正しく書いていないだけだし。

357 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 09:59:11 ]
>メソッドを選択しても()がつかない
これは本当に好みの問題。嫌いな人もいる。
>メソッドの引数候補の情報が出ない
出る。
>文法エラーが出て修正してもアンダーラインが消えない
消える。

358 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:02:13 ]
インテリセンスでメソッドを決定するときには,
目的のメソッドが選択された時点でいきなり ( を入力するのがおすすめ。

359 名前:デフォルトの名無しさん [2009/09/05(土) 10:05:45 ]
>>351
氏の質問を見て、私も質問をさせていただきたいのですが…。
私は縦横にパネルを6枚ほど敷き詰めて、
それぞれに、約10ずつのコントロールを置いており、
タブオーダーを約50まで設定していますが、
間に項目が追加になりそうなんです。
その場合、追加したコントロール以降のタブオーダーを全てプロパティ画面で手で直さなくてはならないのでしょうか。
表示⇒タブオーダーの画面だと、コントロールが密集しているのでうまくクリックできない状態です。
よろしくお願いします。



360 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:10:00 ]
VBが自動的にブロックや括弧を閉じてくれるのって,VBはEnd Ifとか綴りが多くて面倒だからなんだよね
C系の言語の場合はあまり変わらないので不要。ちゃんとリアルタイムにエラーが表示されるから閉じ忘れも起こらない。

>>359
もうデザイナ使わずにコードでコントロールを作るようにしたら?

361 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 10:15:51 ]
はい。

362 名前:デフォルトの名無しさん [2009/09/05(土) 10:26:02 ]
>>356
いやーそういうつもりはないんですが

>>357
なるほど 好き嫌いや慣れの部分はしかたないですね
>>メソッドの引数候補の情報が出ない
>出る。
>>文法エラーが出て修正してもアンダーラインが消えない
>消える。
もうちょっと悩んでみます・・・

>>358
なるほど!そうさせていただきます

>>360
なるほど・・・ 


文法エラーが消えないのはなぜなんでしょうかねえ
インストールの時の言語選択が原因ですかね?

363 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:01:05 ]
はっきり言ってVBの方がIDEの補助弱いぜ。
使ってりゃあれって思うこと多い。
リファクタ機能も使えないし、
ツールチップ表示でフルクラス名出ないし、
自作ライブラリのコメント出ないし、
型が色分け表示されないし、
オーバーライドしたいときにoverrideって打って対象メソッド選択とか出来ないし、
こんな感じでイライラする。


364 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:02:52 ]
あと、構文補完も弱かった気がする。


365 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:30:14 ]
>>363
本当にVB(2005以降)の使ったことある?
嘘はいかんと思うよ。

まあVBのIDEの方が遅れてる面が大きいのは事実だが、
リアルタイムのエラー警告だけはVBの方が精度が高いね。
C#みたいにビルドして初めて警告が発せられる・・・ってことがVBにはない。

あと個人的にはメソッドの区切り線の表示機能もC#にあってもいいと思う。

366 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:34:03 ]
で、どれが嘘?

367 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:52:42 ]
VBのコードスニペットだけは使いにくすぎる
なんでC#と同じようにしないんだろう

368 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:52:54 ]
リファクタリング機能があるのならStandard以上のグレードのVSを
持ってるんだろうから試せばわかると思うよ。

369 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:06:33 ]
>>365
>ビルドして初めて
ん?うちのVS2005stdのC#は入力すると即座にエラー一覧に出るんだが。
何か設定か、CPUの能力から自動判断とかじゃないか?



370 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:15:37 ]
staticクラスに宣言されたインスタンスメンバとか
internalクラスをpublicクラスのpublicメンバで公開するとか
そういうのはビルド時までエラーが出ない

371 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:28:18 ]
おお、確かに。文法的に判断もできそうなのに。
public inner a() {
return new inner();
}
static class inner {
int a;
public inner() { }
}


372 名前:デフォルトの名無しさん [2009/09/05(土) 14:11:02 ]
メインパネルの中にパネルA、B、Cの3枚を横に並べました。
A、B、Cの横幅を足すと、フォームに収まりきらないので、
メインパネルにはオートスクロールを設定しました。
しかし、ユーザーから、A、B、Cのパネルの内容を一度に閲覧したいという要望がありました。
このとき、
A、B、Cの各パネルのキャプチャーを取得し、各々をやや縮小して別のフォームに横並びに貼り付けて、画面に一覧表示させることは可能でしょうか。
よろしくお願いいたします。

373 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:14:02 ]
はい

374 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:26:14 ]
ものすごく初歩的な質問で申し訳ないんですが

仮にFormを画面左上に移動する関数MoveForm()を作ったとして
あとで、移動先を自由に決めたい、MoveForm(int x, int y)みたいなのが欲しいなーって思ったとします
それでこのとき、引数無しのMoveFormと有りのMoveFormの差は、移動先が決め打ちかどうかの違いしかなかったとします

こういう時は、どういう風に書けばいいのですか?
例えば、MoveForm(int x, int y)という風にオーバーロード?して、その中に引数無しの時との「違い」だけを書くということことがしたいです。

375 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:31:26 ]
void MoveForm()
{
MoveForm(0,0);
}
void MoveForm(int x, int y)
{
//移動処理
}

376 名前:デフォルトの名無しさん [2009/09/05(土) 14:39:51 ]
>>373
どうすればできるのでしょうか…。
何かヒントを…。

377 名前:デフォルトの名無しさん [2009/09/05(土) 14:41:45 ]
>>361
>>373
あなた、何か怒っているのか?

378 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:46:31 ]
>>377
質問に答えているだけだろ。大人げないとは思うがw
質問する方も素直に、判らないのでどうすればいいか教えて下さいって書けよ。

379 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:48:51 ]
たぶん怒ってはない。
質問に「リテラルに」答えてるだけだと思うよ。
それは>>373がただ意地悪な人間なだけかのか、それとも他のになにか原因もあるのかは
よく考えたほうがいいと思うな。



380 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:50:42 ]
>>375
なるほどー!
引数無しの方をなんというか「オリジナル」みたいに考えていたので
これにどう「付け足すか」っていう風にしか考えることができてなかったです

続けて質問して申し訳ないんですが
オーバーロードの使い方ってどんな風に使うんですか?
OnPaintとかをオーバーロードしてるのは本にあったのですが
自分で作るときにうまく当てはめることができないです。

381 名前:デフォルトの名無しさん [2009/09/05(土) 14:51:37 ]
>>373
教えていただけないでしょうか。
dobonさんのページにキャプチャー機能があるとは書いていましたが、縮小拡大が分かりません。

382 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:52:22 ]
オーバーロード?
オーバライドじゃなくて?

383 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:05:38 ]
あ、ごめんなさい、オーバーライドです

384 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:15:09 ]
>>381
そのキャプチャー機能とやらがどういう風なのか知らないし
やりたいこともいまいち意味がわからんが…

画像の拡大縮小はちょっと調べたら出てくるよ
一番簡単なのはDrawImageにそのまま希望するサイズを書くことかな。


// ここまでに何かしらしてGraphics GとBitmap bmpを取得しているとする...
G.DrawImage(bmp, 0, 0, 800, 600);
bmp.Save("hoge.bmp", System.Drawing.Imaging.ImageFormat.Bmp);

385 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:19:04 ]
書き忘れたけどGを800*600としてhoge.bmpに保存してる
別フォームのPictureBoxとかに貼り付けるなら最後に連結したbitmapをそのまま送り込めばいいんじゃない?

つーか悪いこと言わんから他の方法考えろよ

386 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:24:02 ]
手間の割りにあまり有り難味の無い機能だと思う

387 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:26:01 ]
いつまでたってもオブジェクト指向で作れねぇ…
ゲームとかならともかくふつうのアプリ作ってる時にうまくオブジェクトとして切り分けできん

個人で極々規模の小さいものしか作ってないから「動くからいいか」ってなってるのも悪いって自覚はしてるんだがな…

388 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:28:14 ]
別に悪く無いだろ

389 名前:デフォルトの名無しさん [2009/09/05(土) 20:53:29 ]
フォームにA、Bの2枚のパネルを並べてそれを継承し、
新しいフォームを作成しました。
継承先でパネルAにコントロールやデータグリッドビューをたくさん配置したのですが
継承元のフォームでパネルAを削除してリビルドしました。
継承先のフォームからパネルAの箇所がごっそり消えていたので安心していましたが、
パネルAに置いていたコントロールがどうも残っているようです。
これは、やり直した方がいいでしょうか。



390 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:55:20 ]
知らんがなそんなこと。

391 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 20:56:57 ]
そういうのは継承を使わない方がいい
フォームAは共通にして,パネルAやパネルBのところをユーザコントロールで差し替えられるようにするのが普通

392 名前:デフォルトの名無しさん [2009/09/05(土) 21:02:23 ]
>>390
冷たいこと言わないで答えてあげようよ。
俺たちは同士じゃねえか。

393 名前:デフォルトの名無しさん [2009/09/05(土) 21:03:55 ]
>>391
やり直しはできないものなのかな。
デザイナーのところで消していくとどうなるんだろ。
他にもゴミが残るの?

394 名前:デフォルトの名無しさん [2009/09/05(土) 21:14:24 ]
>>381ですが、
皆さんありがとうございます。

契約書作成フォームなのですが、
入力項目が多いので1画面に収まりきりません。
なのでスクロールバーや、モーダルフォームを加えて入力をしてもらうようにしているのですが、
利用者がパソコンが苦手な人が多く、
ふと画面から隠れてしまったものがどこにいったのか気になるようです。
なので、
「入力内容一覧」ボタンを置いて、
そこをクリックしたら全入力内容を凝縮させて1枚のパネルやフォームで表示させたいと思ったんです。
けど…文字が小さくなりますもんね。
皆さんはどのような工夫をされているのでしょうか。


395 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:16:06 ]
>>394
なんか数週間前から同じ質問を何度もずっとしてるようだけど、
同じところで何度聞いても同じだと思うよ。
っていうか、どこで聞いても恐らく同じこと。
やろうとしてることに無理があるんだから。

396 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:27:34 ]
もうHTMLでも吐いてブラウザ丸投げでいいよ

397 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:32:43 ]
>>394
入力をいくつかのモーダルフォームに分けて順次入力させれば良いんじゃないの?
あとはそのモーダルフォームが隠れないようにすれば。

398 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:38:00 ]
キー操作でさくさく、ページ切り替えみたいに全部みれればいいんでない。

399 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:43:19 ]
じゃタブコントロールを使えと言う事で



400 名前:デフォルトの名無しさん [2009/09/05(土) 21:56:28 ]
画面に入りきらないほど内容が多いみたいだけど、
全てのモーダルが隠れないようにできるの?
やや重ねたらいいのかな。

401 名前:デフォルトの名無しさん [2009/09/05(土) 21:58:24 ]
>>393
ですが、どなたかご経験者の方、
教えていただけないでしょうか。
自分も、>>389と同じで、
実態のないコントロールが残っていて悩んでいます。
(-_-;)。

402 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:02:36 ]
どのみちそんな設計を根底からぶっ壊すようなことしちゃったら作り直しだろ

403 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:05:12 ]
継承元のフォーム上のコンテナ(パネル)は、デザイナからは
「見えない」仕様なんだろう。

アクセス修飾がprivateの場合との整合性をとるためか、ただ実装が
面倒だからかは知らないが。

いずれにせよ、普通は>>391の指摘どおりにするよ。

404 名前:デフォルトの名無しさん [2009/09/05(土) 22:13:58 ]
>>397
モーダルフォームの表示時は大きめに表示させて、
入力が終われば小さく縮小してパネルの片隅に納めたらいいんじゃないか?
けどそれじゃ、>>394がやろうとしていたことと同じか。
できるかどうかも分からないのに書いてしまったが。

405 名前:デフォルトの名無しさん [2009/09/05(土) 22:18:49 ]
1画面に納めようとすることはできそうだけどさ。
無理して、多くの項目を1画面に圧縮したところで、
ユーザーが読むことができるのか?
若者だけが使うのならいいかもしれないけど、
高齢者も利用するのなら、文字が小さいことが逆にストレスになると思うよ。
うーん、どうすればいいんだろう。

406 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:30:05 ]
>>394
仕様がわからないから見当違いかも知れないけど。
・入力フォームとは別に入力済みのデータの一覧か、出力帳票のイメージを表示するフォームを用意して、
 両方を同時に見れる&操作できるようにする
  -> 別のフォームは可変サイズでスクロールバーを用意するか
   縮尺率を自由設定(画面に収まるように自動調整機能あり)出来るようにする
・入力フォームに折り畳み機能を付ける
  -> 秀丸エディタみたいに画面左側に + とか - みたいなボタン?を用意して、ブロックごとに
   表示したり消したりユーザの自由に出来るようにする
・入力データの属性を分類して、分類ごとに入力画面をまとめる
 まとめたらタブコントロールを利用する

たいていは3つめを使う。

407 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:32:31 ]
>>394
あんまり綺麗なやり方じゃないけど1枚辺り1フォームで数個のフォームを同時起動するとかは?
画面から契約書が消えることがダメなら>>398が言うみたいにキー操作で画面切り替えしていくのもダメな訳?

408 名前:デフォルトの名無しさん [2009/09/05(土) 22:47:39 ]
はじめまして。
ブラウザ上のテキストボックスに文字を入力させたいです。
書き込む文字云々はできてますが、肝心のそこがわかりません。
テキストファイルに書き込むとかなら方法わかるのですが…
どのようにして、ブラウザ上のテキストボックスを判定して
どうやって書き込めばいいのでしょうか。。。
なんでもいいです、ヒントをください。

409 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:55:04 ]
>>406
自分なら、折り畳み方式となる 2 番目を選ぶ。
動作は jQuery のアコーディオンや、WPF の Expander 的にする。
実装に際しては、全体の折り畳み状態のワンタッチ切り替えも付ける。

画面遷移方式の場合、入力不足などを提示するのが難しいし、画面に
よってコントロール数が偏りやすい点がイマイチかな。



410 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:59:52 ]
一方ロシアはExcelマクロを使った

411 名前:デフォルトの名無しさん [2009/09/05(土) 23:02:34 ]
>>407
キー操作で画面切り替えするのって、
alt+tabみたいなイメージ?
それとも、
alt+kで画面A、alt+Lで画面Bみたいなの?

412 名前:デフォルトの名無しさん [2009/09/05(土) 23:17:07 ]
折り畳み方式、特にカーソルを当てるだけで展開されるコントロールは
ユーザーもびっくりのいい設計だと思う。
ただ、>>394の対象ユーザーが、全入力内容に対する一覧性を求めているようなので、
>>406の1番目もユーザー寄りのいい設計になるかと思う。

全項目を網羅した単票を用意して画面右側にプレビューさせる。
プレビューの文字が小さすぎなければいいけど…。
作るのは…超めんどくさいな。

413 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:39:07 ]
>>411
1行目で書いたのは前者で2行目は後者のイメージかな

414 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:58:51 ]
WPFでウィンドウ位置を設定するには、
Window windowlocation = new Window();
windowlocation.WindowStartupLocation = WindowStartupLocation.Manual;
windowlocation.Left = 700;
のほかになにが不足してますか?


415 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:14:03 ]
AcrobatReaderとかPowerPointとかOOo Impressみたいにプレビューペインと
ドキュメントペイン作って中でスクロールさせちゃえよ。
PDFとかプレゼンテーションツールみたいに操作します。って言えばいい。
既存のUIの方がわかりやすいと思うんだよなぁ。

416 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:17:24 ]
>>414
Leftの他にTopも必要じゃないの?
WPF知らんけど

417 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:25:53 ]
知らないなら黙っててくれませんか?

418 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:16:10 ]
不足してない

419 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:22:19 ]
>>365
でどれが嘘?




420 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:56:33 ]
バージョン特定してないのにどれがどうとかないだろ
コメントは2008から表示されてるとか2010の評価版は型の色分けされてるとか
ツールチップのフルクラス名についてはたぶん勘違いだと思う

あとoverrideはOverridesと間違えてないか

421 名前:デフォルトの名無しさん [2009/09/06(日) 03:05:28 ]
>>417
書いてくれた相手に失礼だ。
憶測も立派な意見。
大抵は憶測から新しい発見がある。






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

前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