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

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

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

Re[16]: TextBoxの文字の消去


(過去ログ 57 を表示中)

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

■31612 / inTopicNo.1)  TextBoxの文字の消去
  
□投稿者/ ILL (1回)-(2009/01/26(Mon) 12:33:43)

分類:[C#] 

はじめまして。
C#を勉強中の初心者です。
突然ですが質問です。

ボタン1を押すと下のような名簿を作れるプログラムを作成しました。

 gakusei[] gs = new gakusei[50];

            gs[i].gakusekibangou = textBox1.Text;
            gs[i].name = textBox2.Text;
            gs[i].hurigana = textBox4.Text;
            gs[i].serial = textBox3.Text;

            if (radioButton1.Checked)
            {
                gs[i].seibetu = "男";
            }
            else
            {
                gs[i].seibetu = "女";
            }          

            dodo += gs[i].gakusekibangou + " , " + gs[i].name + " ,("+ gs[i].hurigana +"), "+ gs[i].seibetu
                + " , " + gs[i].serial+ Environment.NewLine;
            richTextBox1.Text = dodo;
            i++;


入力でミスをしたりしてもう一度最初から入力しなおしたいときに
ボタン2を押すと初期状態に戻るようにしたいのです。
しかし、richTextBox1に表示されている内容を消去することはできるのですが
もう一度ボタン1を押すと先ほどミスをした途中からの入力になってしまいます。

この解決法をご指導していただきたいと思います。
文章が下手ですみません。

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

引用返信 編集キー/
■31613 / inTopicNo.2)  Re[1]: TextBoxの文字の消去
□投稿者/ るぱん (1回)-(2009/01/26(Mon) 12:44:04)
No31612 (ILL さん) に返信
> 
> はじめまして。
> C#を勉強中の初心者です。
> 突然ですが質問です。
> 
> ボタン1を押すと下のような名簿を作れるプログラムを作成しました。
> 
>  gakusei[] gs = new gakusei[50];
> 
>             gs[i].gakusekibangou = textBox1.Text;
>             gs[i].name = textBox2.Text;
>             gs[i].hurigana = textBox4.Text;
>             gs[i].serial = textBox3.Text;
> 
>             if (radioButton1.Checked)
>             {
>                 gs[i].seibetu = "男";
>             }
>             else
>             {
>                 gs[i].seibetu = "女";
>             }          
> 
>             dodo += gs[i].gakusekibangou + " , " + gs[i].name + " ,("+ gs[i].hurigana +"), "+ gs[i].seibetu
>                 + " , " + gs[i].serial+ Environment.NewLine;
>             richTextBox1.Text = dodo;
>             i++;
> 
> 
> 入力でミスをしたりしてもう一度最初から入力しなおしたいときに
> ボタン2を押すと初期状態に戻るようにしたいのです。
> しかし、richTextBox1に表示されている内容を消去することはできるのですが
> もう一度ボタン1を押すと先ほどミスをした途中からの入力になってしまいます。
> 
> この解決法をご指導していただきたいと思います。
> 文章が下手ですみません。
> 
> よろしくお願いいたします。

初期化すればよいのでは?

引用返信 編集キー/
■31615 / inTopicNo.3)  Re[1]: TextBoxの文字の消去
□投稿者/ .SHO (564回)-(2009/01/26(Mon) 12:44:51)
ボタン2の初期化が失敗してると思います。
引用返信 編集キー/
■31628 / inTopicNo.4)  Re[1]: TextBoxの文字の消去
□投稿者/ .SHO (571回)-(2009/01/26(Mon) 13:53:43)
No31612 (ILL さん) に返信

>             dodo += gs[i].gakusekibangou + " , " + gs[i].name + " ,("+ gs[i].hurigana +"), "+ gs[i].seibetu
>                 + " , " + gs[i].serial+ Environment.NewLine;

もしかして、ここが
              dodo = ・・・
とか?

引用返信 編集キー/
■31676 / inTopicNo.5)  Re[2]: TextBoxの文字の消去
□投稿者/ ILL (2回)-(2009/01/27(Tue) 13:07:21)
遅くなりましてすみません。

テキストボックスに

1,太郎,男
2,花子,女
  ・
  ・

のように複数人を表示させている状態でボタン2でテキストボックス内を
クリアしてもまた、先頭から入力しようとすると

1,太郎,男
2,花子,女
  ・
  ・
6,次郎,男

と続きから始まってしまうので、ボタン2でdodoのデータを初期化したいのですが
これがよくわかりません。

説明がうまくできなくてすみません。
お願いいたします。
引用返信 編集キー/
■31679 / inTopicNo.6)  Re[3]: TextBoxの文字の消去
□投稿者/ .SHO (577回)-(2009/01/27(Tue) 13:25:04)
No31676 (ILL さん) に返信

> と続きから始まってしまうので、ボタン2でdodoのデータを初期化したいのですが
> これがよくわかりません。

dodo = "";

では?
引用返信 編集キー/
■31685 / inTopicNo.7)  Re[3]: TextBoxの文字の消去
□投稿者/ nakaP (34回)-(2009/01/27(Tue) 13:51:43)
No31676 (ILL さん) に返信

配列の初期画ができてないのではないでしょうか?
引用返信 編集キー/
■31749 / inTopicNo.8)  Re[4]: TextBoxの文字の消去
□投稿者/ ILL (3回)-(2009/01/28(Wed) 13:31:38)
No31685 (nakaP さん) に返信
> ■No31676 (ILL さん) に返信
>
> 配列の初期画ができてないのではないでしょうか?
 

ボタン2を押して配列の初期化は可能なのでしょうか?
可能であればご指導お願いします。

引用返信 編集キー/
■31760 / inTopicNo.9)  Re[5]: TextBoxの文字の消去
□投稿者/ .SHO (589回)-(2009/01/28(Wed) 14:02:55)
No31749 (ILL さん) に返信

> ボタン2を押して配列の初期化は可能なのでしょうか?
> 可能であればご指導お願いします。

配列の初期化って何がしたいのですか?
引用返信 編集キー/
■32143 / inTopicNo.10)  Re[6]: TextBoxの文字の消去
□投稿者/ ILL (4回)-(2009/02/02(Mon) 12:24:54)
No31760 (.SHO さん) に返信
> ■No31749 (ILL さん) に返信
>
>>ボタン2を押して配列の初期化は可能なのでしょうか?
>>可能であればご指導お願いします。
>
> 配列の初期化って何がしたいのですか?


ボタン2を押すことで、初期化させて、もう一度頭から名簿を入力できるようにしたいのです。
これができればより簡単に名簿が作成できるのですが、どのような方法で初期化を行えばよいでしょうか?
引用返信 編集キー/
■32145 / inTopicNo.11)  Re[7]: TextBoxの文字の消去
□投稿者/ επιστημη (1637回)-(2009/02/02(Mon) 12:34:39)
επιστημη さんの Web サイト
>>配列の初期化って何がしたいのですか?
>
> ボタン2を押すことで、初期化させて、もう一度頭から名簿を入力できるようにしたいのです。

答になってないよ。
「"どんな状態にすること"が配列の初期化ですか?」
って訊かれてますよ?

引用返信 編集キー/
■32148 / inTopicNo.12)  Re[8]: TextBoxの文字の消去
□投稿者/ .SHO (629回)-(2009/02/02(Mon) 12:49:15)
うん。答えになってないし
目的を達成すること=配列の初期化かどうかもわからないです。

最初のコードでは、ボタン1が押されるたびに
配列がnewされてるように読めるけど。

dodo += が dodo = では?って指摘ではダメたったんですか?
引用返信 編集キー/
■32155 / inTopicNo.13)  Re[9]: TextBoxの文字の消去
□投稿者/ ILL (5回)-(2009/02/02(Mon) 14:00:09)
No32148 (.SHO さん) に返信
> うん。答えになってないし
> 目的を達成すること=配列の初期化かどうかもわからないです。
>
> 最初のコードでは、ボタン1が押されるたびに
> 配列がnewされてるように読めるけど。
>
> dodo += が dodo = では?って指摘ではダメたったんですか?


すみません。


dodo = だとボタン1を押すたびにテキストボックスが上書きされて常に1人しか表示されないので
dodo += にして何人も表示できるようにしています。

例えば5人まで入力して表示されたテキストボックス内を消去しても
また新しい名簿を作成するために、名前を入力しボタン1を押すと消去した5人が再び表示され、
その下に新しく入力した6人目が表示されてしまうのでこれを解決いたいと思っています。

その解決策としてボタン2によって、最初の5人のデータを消去したいのですが、
この消去のしかたを教えていただきたいです。

うまく説明できなくて本当にすみません。


引用返信 編集キー/
■32156 / inTopicNo.14)  Re[10]: TextBoxの文字の消去
□投稿者/ επιστημη (1640回)-(2009/02/02(Mon) 14:09:02)
επιστημη さんの Web サイト
2009/02/02(Mon) 14:15:49 編集(投稿者)

> dodo = だとボタン1を押すたびにテキストボックスが上書きされて常に1人しか表示されないので

初期化の位置はそこでいいんですか?
正しいことを正しい位置で/正しいタイミングでやっていますか?

# てかね、"伝わっていない大事なこと"が欠落してんだと思う。
# タイトルには「TextBoxの文字の消去」とあるけども、
# やりたいのは本当にタイトル通りなんだろか。違うんじゃないかな...

引用返信 編集キー/
■32157 / inTopicNo.15)  Re[10]: TextBoxの文字の消去
□投稿者/ .SHO (630回)-(2009/02/02(Mon) 14:15:33)
No32155 (ILL さん) に返信

> その解決策としてボタン2によって、最初の5人のデータを消去したいのですが、

そもそも、ボタン2での消去って、仕様というよりは逃げですよね?
もともとのロジックを正しく動作するように修正した方が良いと思いますが。

最初のソースって一部ですよね。
1つの関数(ボタン1のイベント)として成立するように提示してもらえませんか?

引用返信 編集キー/
■32159 / inTopicNo.16)  Re[11]: TextBoxの文字の消去
□投稿者/ ILL (6回)-(2009/02/02(Mon) 15:18:23)
ボタン1のソースは以下の通りです。

 private void button1_Click(object sender, EventArgs e)
        {
            gakusei[] gs = new gakusei[50];
           
            gs[i].gakusekibangou = textBox1.Text;
            gs[i].name = textBox2.Text;
            gs[i].hurigana = textBox4.Text;
            gs[i].serial = textBox3.Text;

            if (radioButton1.Checked)
            {
                gs[i].seibetu = "男";
            }
            else
            {
                gs[i].seibetu = "女";
            }
            dodo += gs[i].gakusekibangou + " , " + gs[i].name + " ,("+ gs[i].hurigana +"), "+ gs[i].seibetu
                + " , " + gs[i].serial+ Environment.NewLine;
            richTextBox1.Text = dodo;
            i++;

            textBox1.Clear();
            textBox2.Clear();
            textBox4.Clear();
            textBox3.Clear();                  
            
        } 

実際、ボタン2での消去は逃げです。
ボタン2で表示されていることだけを消去して満足していましてたが、
卑怯かなと思いまして質問してみました。

また、επιστημη さんの

初期化の位置はそこでいいんですか?
正しいことを正しい位置で/正しいタイミングでやっていますか?

とはどういうことでしょうか?

重ね重ねすみません。

引用返信 編集キー/
■32160 / inTopicNo.17)  Re[12]: TextBoxの文字の消去
□投稿者/ .SHO (631回)-(2009/02/02(Mon) 15:27:01)
No32159 (ILL さん) に返信

> gs[i].gakusekibangou = textBox1.Text;
> gs[i].name = textBox2.Text;
> gs[i].hurigana = textBox4.Text;
> gs[i].serial = textBox3.Text;

この配列参照の i が宣言されてないですね。
これで動いているのならグローバルに宣言されているのでしょう。
これを int i=0; と宣言すればOKです。
引用返信 編集キー/
■32161 / inTopicNo.18)  Re[13]: TextBoxの文字の消去
□投稿者/ .SHO (632回)-(2009/02/02(Mon) 15:28:19)
あーでも、dodo も宣言されてないのか…
引用返信 編集キー/
■32162 / inTopicNo.19)  Re[14]: TextBoxの文字の消去
□投稿者/ .SHO (633回)-(2009/02/02(Mon) 15:30:57)
なんで、一旦配列に入れてから処理するんですか?
引用返信 編集キー/
■32163 / inTopicNo.20)  Re[14]: TextBoxの文字の消去
 
□投稿者/ ILL (7回)-(2009/02/02(Mon) 15:35:11)
2009/02/02(Mon) 16:04:01 編集(投稿者)
2009/02/02(Mon) 16:03:56 編集(投稿者)

No32161 (.SHO さん) に返信
> あーでも、dodo も宣言されてないのか…


すみません。。

ボタン1よりまえに宣言しています。


    string dodo;
int i;

private void button1_Click(object sender, EventArgs e)
{
int i=0;
gakusei[] gs = new gakusei[50];


gs[i].gakusekibangou = textBox1.Text;
gs[i].name = textBox2.Text;

            ・
            ・
            ・

引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -