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

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

C# と VB.NET の入門サイト

Re[3]: 検索機能作成でてこずってます


(過去ログ 27 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■12667 / inTopicNo.1)  検索機能作成でてこずってます
  
□投稿者/ san (6回)-(2008/01/14(Mon) 16:10:45)

分類:[C#] 

Form1にtextBox1とtextBox2、ボタンコントロールをはりつけて
検索機能つきのメモ帳をサンプルを参考にして作ってみました。

しかし、一部期待した動作をしない部分があるのでおしえてください。

それは、例えばtextBox1に「明日は雨今日も雨明後日も雨」という文を
入力して、textBox2に「雨」を入力して検索ボタンをおすと、最初の雨は
反転表示されて「雨が見つかりました」と表示されますが、
「次の検索」を
押すと今日も雨の「雨」に反転表示が移動せず、「雨が見つかりました」の
表示しかでません。
どこかにミスがあるのでしょうか?
C#2005




namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int j = 0;//検索を始める位置
        string swd;//検索する単語
        //検索ボタンを押したときの処理
        private void button1_Click(object sender, EventArgs e)
        {//検索する単語を入力せずに検索ボタンをおしたとき
            if (textBox2.Text == "")
            {
                MessageBox.Show("検索する単語を入力してください");
            }
            else
            {
                //検索する単語を入力してから検索ボタンをおしたとき
                //違う単語での1回目の検索かをチェック
                if (swd != textBox1.Text)
                {//その単語での初めての検索なら検索する位置jを0にする
                    j = 0;
                  

                }//入力した検索する単語を代入
                swd = textBox2.Text;
                //検索する単語をtextBox1のJ番目の文字以降で検索
                int i = textBox1.Text.IndexOf(swd, j);
               //検索する単語が見つかったときの処理
                if (i > -1)
                {//検索語のみつかった位置
                    textBox1.SelectionStart = i;
                    //検索語の長さ
                    textBox1.SelectionLength = swd.Length;
                    if (j == 0)
                    {//その検索語が初めての検索ならボタンの文字を「次を検索に変える」
                        button1.Text = "次を検索";
                    }
                    //どの位置まで検索したかをjに格納
                    j = i + swd.Length;
                    MessageBox.Show(swd + "がみつかりました");

                }
                else
                {//検索語がみつからなかったときの処理
                    MessageBox.Show(swd + "は見つかりませんでした ");



                }
            }
        }

    }
}

引用返信 編集キー/
■12668 / inTopicNo.2)  Re[1]: 検索機能作成でてこずってます
□投稿者/ Azulean (10回)-(2008/01/14(Mon) 16:26:41)
ブレークポイントという機能はご存じでしょうか?
コードエディタの特定の行でF9キーやメニューからの操作でブレークポイントを設定すると、その行が茶色になります。
この行に到達したとき、デバッグで止まるようになります。
怪しいと思う箇所にこのブレークポイントを設定することでどのように動いているかデバッグすることができます。
(今回の場合、button2_clickの直後ぐらいに設定するとOK)

また、止まった箇所からの実行でも1行ずつ実行するステップイン(F11)・ステップオーバー(F10)もありますので今はどう動いているのか、なぜそう動くのかといったやり方でミスを探しましょう。


どこが悪いと指摘するのは簡単ですが、今のままですと何度も質問するハメになります。
デバッグのテクニックを身につけて、自分で解決できることを増やすこととをお薦めします。
引用返信 編集キー/
■12672 / inTopicNo.3)  Re[2]: 検索機能作成でてこずってます
□投稿者/ san (7回)-(2008/01/14(Mon) 20:01:55)
No12668 (Azulean さん) に返信
> ブレークポイントという機能はご存じでしょうか?
> コードエディタの特定の行でF9キーやメニューからの操作でブレークポイントを設定すると、その行が茶色になります。
> この行に到達したとき、デバッグで止まるようになります。
> 怪しいと思う箇所にこのブレークポイントを設定することでどのように動いているかデバッグすることができます。
> (今回の場合、button2_clickの直後ぐらいに設定するとOK)
>
> また、止まった箇所からの実行でも1行ずつ実行するステップイン(F11)・ステップオーバー(F10)もありますので今はどう動いているのか、なぜそう動くのかといったやり方でミスを探しましょう。
>
>
> どこが悪いと指摘するのは簡単ですが、今のままですと何度も質問するハメになります。
> デバッグのテクニックを身につけて、自分で解決できることを増やすこととをお薦めします。

自己解決しました。ありがとうございました。
解決済み
引用返信 編集キー/
■12676 / inTopicNo.4)  Re[3]: 検索機能作成でてこずってます
□投稿者/ επιστημη (781回)-(2008/01/14(Mon) 21:44:56)
επιστημη さんの Web サイト
> 自己解決しました。ありがとうございました。

どこがいけなくて/どう解決したかを添えてくれんと他の人の為にならん。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -