C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>
■6036  Re[3]: IsNumeric で複数判定する方法
□投稿者/ も -(2006/08/26(Sat) 16:18:57)

    分類:[C#] 

    別解:
    javaのgroovyの様なclosureが使えれば、たとえば
    結果=(チェックするべきテキストボックスのリスト).それぞれについて(true){
    ret, textbox -> ret&&=isnumeric(textbox.text);
    }
    のようなモノで済ませられます。

    ロジックを考えること、それが正しいか評価すること、
    日本語で解法を書き表すこと、それを目的の言語で表現できるかということ。
    これらは実践でしか身に付かないことだと思います。
    まぁ、昔はこれらが身についてない人はあまり掲示板に登場せず、
    夏(多分)になってちらほら見受けられるようになったのは感じますが。
記事No.6028 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■6032  Re[3]: IsNumeric で複数判定する方法
□投稿者/ επιστημη -(2006/08/26(Sat) 15:08:58)
>

    分類:[C#] 

    No6031に返信(まささんの記事)
    > 試してみました。Validation.IsNumeric(txt1.Text,txt2.Text)という風にしましたができませんでした。

    そじゃなくてぇ、
    もし Validation.IsNumeric(txt1.Text) であり、かつ Validation.IsNumeric(txt2.Text) ならば… ってことスよ。

記事No.6028 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■6031  Re[2]: IsNumeric で複数判定する方法
□投稿者/ まさ -(2006/08/26(Sat) 14:58:39)

    分類:[C#] 

    試してみました。Validation.IsNumeric(txt1.Text,txt2.Text)という風にしましたができませんでした。
記事No.6028 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■6028  IsNumeric で複数判定する方法
□投稿者/ まさ -(2006/08/26(Sat) 14:24:54)

    分類:[C#] 


    分類:[C#] 

    サンプルで、ISNUMERICのを試しましたが、
    足し算の計算の時に、複数の数値を判定することはできますでしょうか?
    これが1つの数値を判定する所までできたところです。すみませんがよろしくお願いします。
    private void btnAdd_Click(object sender, System.EventArgs e)
    {
    if (Validation.IsNumeric(txt1.Text)) //Txt1のみの入力判定
    {
    int a = int.Parse(txt1.Text);
    int b = int.Parse(txt2.Text);
    txt3.Text = (a + b).ToString();
    }
    else
    {
    MessageBox.Show("数値を入力してください");
    }
親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■6127  Re[6]: 共通関数にする為のロジック?
□投稿者/ ひろえむ -(2006/08/29(Tue) 23:41:33)

    分類:[C#] 

    No6121に返信(tomokoさんの記事)
    > 私の力では共通のクラスは作れなかったので、共通クラスは断念しました。
    > 結局、コンストラクタでやるのは、ファイル処理専用になってしまい、
    > 使いまわしがきかなくなるので、〜infoクラスには処理を追加するのも止めて、
    > ひろえむさんの良い箇所だけとって、privateのメソッドを使う事になりました。
    > お世話になりました。
    > また何かアドバイスがありましたら、引き続きよろしくお願いします。

    んー、目的が漠然としていてアドバイスが難しいところですが、テキストを分割するだけでいいのであれば、配列にしてもいいんじゃないかなぁという気もします。

    たとえば、

    private List<string> DivText(string astrData, int[] aintLengthArray) {
    List<string> lstData = new List<string>();
    int intStartPos = 0;
    for(int intIndex = 0; intIndex < aintLengthArray.GetLength(0) ; intIndex++) {
    string strTarget = astrData.Substring(intStartPos, aintLengthArray[intIndex]);
    lstData.Add(strTarget);
    intStartPos += aintLengthArray[intIndex];
    }
    return lstData;
    }

    なんてな感じでメソッド作って
    int[] intTargetDataLength = { 3, 4, 5 };
          List<string> lstData = DivText("111222233333", intTargetDataLength )
    とかかっておくとか。

    項目がわかりにくいならenumで定義しておくとか工夫すれば・・・。

    まぁ、前回も言いましたが以降の処理の内容にもよるので、これがtomokoさんが行おうとしている要件に合うかどうかわかりません。

    情報が少なすぎて、前回はあえて書きませんでしたが、もう少し詳細がわからないとアドバイスできないので、何を困っていて、どう共通にしようとしているのかもう少し明確にしていただきたかったところです。

    たとえば、テキストファイルの種類がいろいろあって、それらを処理するために複数のレイアウトの書式を管理したいとか・・・。

    まぁ、解決したのであればいいのですが・・・。

記事No.5999 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■6057  Re[4]: 共通関数にする為のロジック?
□投稿者/ ひろえむ -(2006/08/27(Sun) 06:57:25)
>

    分類:[C#] 

    2006/08/27(Sun) 07:06:43 編集(投稿者)

    No6056に返信(tomokoさんの記事)
    > 確かに良いと言えばいいのですが、
    > こうなるとTestInfo2が必要になった時に、フィールドがCode1,2,3の場合は、
    > コンストラクタに、
    > mstrCode1 = strTarget.Substring(0, Code1Length);
    > mstrCode2 = strTarget.Substring(Code1Length, Code2Length)
    > mstrCode3 = strTarget.Substring(Code2Length, Code3Length)
    > というような感じで作らないといけないという事になるのですね。

    んー、Codeの数が可変であるならば、その最小単位のクラスを作ってそれをListなどのコレクションクラスで持つのがいいのかもしれませんね。 もしくは、それらをまとめるクラスを1つ作るとか。 

    そうなるとクラスの命名ももう少し考えたほうがいいかも・・・。

    まぁ、いずれにしてもこの処理以降に行う処理の内容にもよるので、これ以上の助言はあえて避けておきますが、変更の発生しやすい場所、変更の発生しにくい場所を考えてクラスを構成するといいかと思いますよ。

    ちなみに・・・
    >mstrCode3 = strTarget.Substring(Code2Length, Code3Length)

    >mstrCode3 = strTarget.Substring(Code1Length+Code2Length, Code3Length)
    かな。

    まぁ、こういう演算もこれらをまとめるクラスのコンストラクタでやると楽かもしれませんね。
記事No.5999 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■6056  Re[3]: 共通関数にする為のロジック?
□投稿者/ tomoko -(2006/08/27(Sun) 03:31:05)

    分類:[C#] 

    ありがとうございます。
    コンストラクタの箇所で、
    >mstrCode1 = strTarget.Substring(0, Code1Length);
    >mstrCode2 = strTarget.Substring(Code1Length, Code2Length)
    で、コードをセットしておけば、
    TestInfo ti = new TestInfo(strTarget);
    でTestInfoを返せると言う訳ですね♪
    凄く参考になりました。
    確かに良いと言えばいいのですが、
    こうなるとTestInfo2が必要になった時に、フィールドがCode1,2,3の場合は、
    コンストラクタに、
    mstrCode1 = strTarget.Substring(0, Code1Length);
    mstrCode2 = strTarget.Substring(Code1Length, Code2Length)
    mstrCode3 = strTarget.Substring(Code2Length, Code3Length)
    というような感じで作らないといけないという事になるのですね。
    そして、TestInfo3が必要になった時に、
    フィールドが、Code1,2...10が必要になった時は・・・と思うと、
    コンストラクタの箇所にロジックを書かずに、
    共通で書いて、呼ぶだけがいいなーというのが希望です。
    TestInfo ti = new commonInfo(strTarget);//←例えばこんな感じ
    共通で作るのは不可能なのかな?
    教えてもらっているのに、文句言ってしまってスミマセン。
    (本当にスミマセン m(__)m)
    何かアドバイスがあればよろしくお願いします。
    (いろいろとロジックを覚えたいので・・・)
    今は、ひろえむさんのやり方でいこうと思います。
    ひろえむさんありがとうございました。
記事No.5999 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■6011  Re[1]: 共通関数にする為のロジック?
□投稿者/ ひろえむ -(2006/08/26(Sat) 08:21:02)
>

    分類:[C#] 

    No5999に返信(tomokoさんの記事)
    > 私は今C#でプログラムを作成しているのですが、
    > なかなか共通関数をうまく作れません。
    > 下記のものを共通でうまくまとめたいと思っております。

    あくまで、私がやるならですが・・・・

    まず、TestInfoクラスをこのように変えました。

    public class TestInfo
    {
    private string mstrCode1 = string.Empty;
    private string mstrCode2 = string.Empty;

    public const int Code1Length = 3;
    public const int Code2Length = 4;
    public const int CodeLength = Code1Length + Code2Length;

    public string Code1
    {
    get { return _code1; }
    }

    public string Code2
    {
    get { return _code2; }
    }

    public TestInfo(string strTarget)
    {
    if(strTarget < CodeLength) {
    throw new ArgumentOutOfRangeException("Lengthは7以上ないと・・・");
    }
    mstrCode1 = strTarget.Substring(0, Code1Length);
    mstrCode2 = strTarget.Substring(Code1Length, Code2Length)
    }
    }

    コンストラクタで文字列を切り離すようにしています。

    次にTestクラスですが、冗長に感じたのでStreamからStringを取得するメソッドを切り離してみました。

    class Test
    {
    //Streamから読み出し
    public string GetTestFile(string astrFilePath)
    {
    string strAllData = string.Empty;
    using(StreamReader sr = new StreamReader(astrFilePath) {
    strAllData = sr.ReadToEnd();
    sr.Close();
    }
    return strAllData;
    }

    //取り込み処理?
    public void TestFileTorikomi(string astrFilePath)
    {
    string astrAllData = GetTestFile(astrFilePath);
    for (int intIndex = 0; intIndex < astrAllData; intIndex += TestInfo.CodeLength)
    {
    string strTarget = astrAllData.Substring(intIndex, TestInfo.CodeLength);
    TestInfo ti = new TestInfo(strTarget);
    }
    }
    }

    こんな感じかなぁ・・・ まま、ちょっとそのままコーディングしたので、テストしておりませんが・・・(^^;;;

    参考になるかわかりませんが、あくまで私ならばということで(^^;;;
記事No.5999 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5999  共通関数にする為のロジック?
□投稿者/ tomoko -(2006/08/26(Sat) 03:55:43)

    分類:[C#] 


    分類:[C#] 

    私は今C#でプログラムを作成しているのですが、
    なかなか共通関数をうまく作れません。
    下記のものを共通でうまくまとめたいと思っております。
    ーーーーーーーーーーーーーーーーーー
    public class TestInfo
    {
      private string _code1;
      private string _code2;

      public static readonly int code1Count = 3;
      public static readonly int code2Count = 4;
      public static readonly int countSum = code1Count + code2Count;

      public string Code1
      {
        get { return _code1; }
        set { _code1 = value; }
      }

      public string Code2
      {
        get { return _code2; }
        set { _code2 = value; }
      }
    }
    ーーーーーーーーーーーーーーーーーー
    class Test{
    //〜〜
      public void TestFileTorikomi()
      {
      //〜〜

        //ここから↓をまとめたい
        using (StreamReader streamReader = new StreamReader(_filePath))
        {
          string allData = streamReader.ReadToEnd();

          TestInfo testInfo = new TestInfo();

          int i = 1;
          int index = 0;
          while (allData.Length / TestInfo.countSum >= i)
          {
            testInfo.Code1 = allData.Substring(index, TestInfo.code1Count);
            index = index + TestInfo.code1Count;//ここが無くなってスッキリ?
            testInfo.Code2 = allData.Substring(index, TestInfo.code2Count);
            index = index + TestInfo.code2Count;//ここが無くなってスッキリ?
            i++;
    //ここからは↓はtestInfoを色々と使って処理
            //例えば、commonDataSyori.update(testInfo);
          }
        }
      }
    }

    上記の処理は、ファイルのデータを3バイト、4バイトとデータを取り、そのデータをTestInfoに代入するといった事をしようとしています。
    その後、TestInfoで色々と処理をしようとしています。
    例えば、「123ABCD456EFGH」というデータがファイルにあれば、
    1回目のループでcode1=123,code2=ABCD
    2回目のループでcode1=456,code2=EFGH
    と値が取れ、最後はループを抜けて終了です。
    始めは、いろいろとファイルを扱った処理はCommonFileクラスというものを作りまとめていました。
    CommonFileクラス側にTestInfo.code1CountあるいはTestInfo.code2Countさえ渡せば、
    CommonFileクラス側でSubstringをし、文字を切り取って、stringのデータ(123)を返すメソッドを作っていました。
    結局、何が便利かというと、「index = index + TestInfo.code1Count」のindexを増やす場所がCommonFile側に置いていたので、indexを数えなくても良いという共通メソッドです。
    自分としてはスッキリしたと思っていたのですが、周りからは批判。
    共通に置くまでも無いような共通メソッドと言われました。
    ただ単にindexを他の方が書くか?共通が数えるか?程度だったので・・・。
    よって、結局は上記のようにクラス側で、indexを数えています。
    理想は、TestInfoさえ渡せば、Code1,2に値がセットされて、TestInfoが帰ってくるのが理想であると言われました。
    testInfo = common.cut(testInfo);←こんな感じ?
    しかし、私には上記のプログラムをスッキリさせる方法が分かりません。
    この事があってから、デザインパターンの本を買ったりして勉強を始めたのですが、
    その本を理解するのでもう必死という感じです。
    上記のプログラムを共通クラスでスッキリさせるにはどうすればいいでしょうか?
    特に例に挙げたものでも無くてもよいので、こんな共通メソッドが良いとかこのメソッドを使ってみては?
    とか何でも良いので何か思った方はアドバイス下さい。
    よろしくお願いします。
    (C#の事では無く、ロジックよりでスミマセン)
親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■6151  Re[1]: DataGridViewのCurrentCellを無くする方法。
□投稿者/ みのちぃ。 -(2006/08/30(Wed) 17:40:44)

    分類:[VB.NET] 

    No5979に返信(みのちぃ。さんの記事)
    > はじめて質問させていただきます。
    > VB.NET2005での質問なのですが・・・。
    >
    > DataGridViewにおいてのCurrentCellを無くする方法を探しているのですが、見つけることができません。
    >
    > 現在のセルを(0,0)などに設定する場合は以下のように出来るのですが、
    > DataGridView1.CurrentCell = New DataGridCell(0, 0)
    >
    > マウスをクリックしない限りは現在のセルを選択表示しないようにしたいんです。
    >
    > なにか良い方法はありませんでしょうか?
記事No.5979 のレス / END /過去ログ5より / 関連記事表示
削除チェック/

■5979  DataGridViewのCurrentCellを無くする方法。
□投稿者/ みのちぃ。 -(2006/08/25(Fri) 14:55:46)

    分類:[VB.NET] 


    分類:[VB.NET] 

    はじめて質問させていただきます。
    VB.NET2005での質問なのですが・・・。

    DataGridViewにおいてのCurrentCellを無くする方法を探しているのですが、見つけることができません。

    現在のセルを(0,0)などに設定する場合は以下のように出来るのですが、
    DataGridView1.CurrentCell = New DataGridCell(0, 0)

    マウスをクリックしない限りは現在のセルを選択表示しないようにしたいんです。

    なにか良い方法はありませんでしょうか?
親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5977  ReadOnlyComboBoxについて
□投稿者/ cis05 -(2006/08/25(Fri) 14:30:27)

    分類:[VB.NET] 


    分類:[VB.NET] 

    某所でまいどお世話になっています^^;

    HPのライブラリ > ReadOnlyComboBox クラス を使わせていただいているのですが、
    ReadOnly=Trueとして、編集不可にするのはよいんですが、
    ReadOnly=Falseとしてときに、ComboBoxとして機能しません。

    ReadOnly=Trueとしたときに、NumericUpDownのような見た目になってしまっているのですが、ここからおかしいのでしょうか?

    環境は WINXP、VB(VS2005)です。

    行った手順としては、プロジェクト>クラスの追加 で作成して
    公開していただいてるソースを貼り付けました。
    Me.BackColor = Color.White
    と色指定のみ変えました。

    Set
    Me._ReadOnly = Value

    If value Then
      Me.oldBackColor = Me.BackColor
    Me.BackColor = Color.White
    Me.ContextMenu = New System.Windows.Forms.ContextMenu()
    Me.SetStyle(ControlStyles.Selectable, False)
    Me.SetStyle(ControlStyles.UserMouse, True)
    Me.UpdateStyles()
    Else
    Me.BackColor = Me.oldBackColor
    Me.ContextMenu = Nothing
    Me.SetStyle(ControlStyles.Selectable, True)
    Me.SetStyle(ControlStyles.UserMouse, False)
    Me.UpdateStyles()
    End If
    End Set

    デバックしてみると、ReadOnly=Falseとしたときは ELSE にいって、
    編集可能になっているのですが、NumericUpDownのような見た目のままで
    キーボードからの入力はうけつけます。

    以上のような状態です。
    すいません、なにかわかることがあれば教えてください。

親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5841  ファイル操作のエラー処理などはこんなんでどうでしょう
□投稿者/ iwaiwa -(2006/08/23(Wed) 01:39:10)

    分類:[C#] 


    分類:[C#] 

    中@管理人
    タイトルが意味がわかりませんでしたので変更しました。
    ================================
    こんにちは。

    ファイル保存に関するプログラムを書いていて気になったことがあります。
    以下のような書き方をしていたとして、何か問題があるとすれば、
    どんな点ですか?エラー処理の観点などから、ご指摘頂ければと思っています。

    非常に曖昧な質問で恐縮ですが、ご指摘ください。
    よろしくお願い致します。

    ---------------------------

    private void SaveFile(string fileName, RichTextBox richTextBox, ToolStripStatusLabel statusLabel)
    {
    SaveFileDialog saveFileDialog = new SaveFileDialog();

    saveFileDialog.Filter = "テキストファイル (*.txt)|*.txt|"
    + "Word 文書 (*.doc)|*.doc|"
    + "リッチ テキスト形式 (*.rtf)|*.rtf";

    // デフォルトファイル名
    saveFileDialog.FileName = fileName;

    // ダイアログを開く
    DialogResult result = saveFileDialog.ShowDialog();

    if (result == DialogResult.OK)
    {
    StreamWriter writer = new StreamWriter(saveFileDialog.FileName, false, Encoding.GetEncoding("Shift_JIS"));

    try
    {
    statusLabel.Text = "ファイルを保存しています...";

    if (saveFileDialog.FilterIndex > 1)
    {
    // リッチテキスト
    writer.Write(richTextBox.Rtf);
    }
    else
    {
    // テキスト形式
    writer.Write(richTextBox.Text);
    }
    }
    catch (Exception ex)
    {
    // エラーメッセージを表示
    MessageBox.Show(ex.Message,
    "エラー",
    MessageBoxButtons.OK,
    MessageBoxIcon.Error);
    }
    finally
    {
    writer.Close();
    statusLabel.Text = String.Empty;
    }
    }
    }

親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5296  フォームのモーダル表示について
□投稿者/ 池山 公也 -(2006/08/04(Fri) 15:10:03)

    分類:[C#] 


    分類:[C#] 

    現在困っていることが有りまして、フォームのモーダル表示についてなのですが、

    フォーム1からshowdialogしたフォーム2から更にフォーム3をshowdialogしております。

    フォーム3まで表示したあと、ALT+TABで別のアプリ等に移動し、
    タスクバーにあるフォームの3つの内、
    フォーム2を選ぶとフォーム2がアクティブ状態になり、
    ファンクションキーと結びついているボタンが機能してしまう状態になってしまいます。

    フォーム1はアクティブ状態になることはありません。

    フォーム3が表示されているとき、フォーム2がアクティブにならないように
    する方法をご存知の方がおられたらお知恵を貸していただきたいです。

    事情によりフォーム2のボタンの使用可否を変えるのではなく
    フォーム2まるごとアクティブにならないようにする必要があります。
    またフォームの構成も変えることができません。

    現在、全てのshowdialogはフォーム.ShowDialog(this)の形で実行しています。

    よろしくお願い致します。

    環境はWinXP,Visual Studio2003 C#で開発しております。

親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5976  レポート作成
□投稿者/ そら -(2006/08/25(Fri) 13:29:59)

    分類:[VB.NET] 


    分類:[VB.NET] 

    はじめまして、ここには初めて投稿させて貰います
    XPでVB.NETを使ってプログラム作っています。
    現在フォームから担当者を入力して、条件に合う仕入先をレポートに出すプログラムを作っています。
    レポートに出すまでは上手くいきました。
    しかし、ページ計を出すのにページフッターに必要なテキストボックス等々を設置して合計を出したのですが、データ明細との間に空白が出来てしまってそれを無くそうと色々やってみているんですが上手くいきません。
    レポートフッターには合計を入れているので、他の人のアドバイスもあって新たなグループをレポートに追加して、そこにページ計で必要なテキストボックス等々を置いてます。
    1ページは30行表示されるので、29行以上になったら改ページをして30行目にはページ計を出そうとしてます。
    29行以上にならなくてもデータ明細のしたにページ計を出したいのですが、VB.NETはあまり慣れてなくて四苦八苦してます。

    SQL Serverを使っています。そこでストアドの方でまず何行あるか取得して、それを1行〜ラスト行まで出して、29行毎に1,2,3…と割り振ろうと考えましたが上手くいきません。
    他の人のアドバイスでCreateDataSetに.Add(New DataColumn("PAGE", GetType(System.Int16)))を追加したのですが、それをどう使うかも分からなくてあたふたしてます。
    部分的でも構いませんので、何かご助言お願いします。
    この部分でこの関数を使うでも構わないのでお願いいたします
親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5869  ストアドを用いたデータ取得について
□投稿者/ Saitou -(2006/08/23(Wed) 11:40:33)

    分類:[C#] 


    分類:[C#] 

    はじめまして。
    C#初心者で、社内に詳しい人がいなくて困っています。
    どなたか、アドバイスお願いいたします。

    WEBアプリで入力値をストアドに渡して、
    戻り値をOracleRefCursorで取得後、テキストに書き込み、ダウンロードするシステムです。

    「cmd.ExecuteNonQuery();」の後が、実行されません。
    デバッグを実行したところ、引数のセットもされていました。
    戻り値の定義もされていました。
    Oracleのエラーはcatch文で捕まえるようになっていますが、通過しました。

    -----------抜粋---------------------------------
    string CmdTxt = "";
    OracleCommand cmd = new OracleCommand(CmdTxt,con);

    CmdTxt = "「パッケージ名」.「プロシージャ名」";

    cmd.CommandText = CmdTxt;
    cmd.CommandType = CommandType.StoredProcedure;

    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    (中略)
    ストアドに渡す引数のセットと、戻り値の定義
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

    cmd.ExecuteNonQuery();

    OracleRefCursor cur1 = (OracleRefCursor)cmd.Parameters[10].Value;

    OracleDataReader rdr1 ;

    rdr1 = cur1.GetDataReader();

親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5863  Re[1]: TreeViewでTOPのTreeNodeが選択されてしまう。
□投稿者/ まどか -(2006/08/23(Wed) 10:27:39)

    分類:[VB.NET] 

    > FormのLoadイベント後にTreeViewのAfterSelectイベントが発生して
    > 一番上のTreeNodeが選択されている状態になっています。
    > TreeViewのTabIndex=0となっています。
    >
    > これをFormのLoad後に未選択の状態で表示したいのですが、

    SelectedNode=Nothingの状態でフォーカスを取得するとSelectedNode=.Nodes(0)となるようです。
    これに関連してLoad後のイベントの発生順序がTreeView_AfterSelect,Form_Shownとなります。

    基本的にはForm_Shownで非選択状態にすればよいと思いますが、
    初回に処理をおこないたくないのであれば、上記理由でForm_Shownの実行前か実行後かを判断する必要があるでしょう。

記事No.5858 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5823  Re[7]: System.Drawing.Color
□投稿者/ 渋木宏明(ひどり) -(2006/08/22(Tue) 15:58:17)
>

    分類:[C#] 

    > 保存形式はA,R,B,Gの4つに別けて保存しました。

    保存/復帰だけが目的なら、それでもまだまどろっこしいような。

    Color color;

    が定義済みだとして、

    int c = color.ToArgb();

    で 32bit 整数化してそれを保存、復帰する時は

    int c;

    に 32bit 整数値を読みこんで

    COlor color = Color.FromArgb (c);

    でよろしんじゃないでしょうか。

記事No.5799 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5822  Re[6]: System.Drawing.Color
□投稿者/ asuka -(2006/08/22(Tue) 15:34:57)

    分類:[C#] 

    どうもすいません。

    もちろんクラスのメンバの一覧は見てます。^^;

    最低限見てますが頭が悪くて理解が出来ないのです。



    と、いろいろとガシャガシャやってたら出来ました。

    System.Drawing.Color.FromArgb()というものを教えて頂いたので、

    保存形式はA,R,B,Gの4つに別けて保存しました。

    で、整数の形で取り出して

    button1.BackColor = System.Drawing.Color.FromArgb( uA, uR, uG, uB )

    のようにして実現できました。



    何度もすいません。

    VC++は6年くらいやってるのですが、C#はここ一ヶ月なんもので^^;

    一応MSDNやらメソッドの一覧は見てますが、どうにもこうにも…



    まどかさん 特攻隊長まるるうさんありがとうございました。

記事No.5799 のレス / END /過去ログ5より / 関連記事表示
削除チェック/

■5820  Re[5]: System.Drawing.Color
□投稿者/ 特攻隊長まるるう -(2006/08/22(Tue) 15:23:58)

    分類:[C#] 

    >> をもっと数値が読み取りやすいように変更するだろうけど。。。
    > Fromがあるってことは。。。ということでしょう。
    オイラいじわるになってるかなぁ???(><)
    いきなり ToArgb って言っても直感的に AARRGGBB が分からないと
    また説明しなきゃいけないから、お茶を濁したんですがw
    理解できてるなら ToArgb 使ったらいいと思う。
    System.Drawing.Color c;
    c = System.Drawing.Color.AliceBlue;
    MessageBox.Show(c.A.ToString() + "," + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString());
    MessageBox.Show(c.ToArgb().ToString());


    # C#初めて書いたw。面倒臭ぇ。やっぱ回答つけるのはVBのみだなぁ。。。( _)_

記事No.5799 のレス /0過去ログ5より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>

ヒット件数が多いので過去ログ5〜6 までの検索結果 / 過去ログ7からさらに検索→

パスワード/

- Child Tree -