• 締切済み

C#で複数のTextboxから検索してTextを書き込む

C#初心者で困っています OS XP VS2008 ASP.NET C# で作業しています 複数のTextboxを作成して、そのTextboxのTextプロパティに値を書き込もうとしています。 for(int z=1; z<100; z++) { string tt = z.ToString(); Control tx = FindControl("TextBox" + tt); tx.text = "ccccccc"; } txのtextプロパティが出てきません。 どのようにすれば、textプロパティを書き換えることができるのでしょうか、ご教授をお願いします。

みんなの回答

  • tasoh
  • ベストアンサー率45% (19/42)
回答No.2

こんな感じでどうでしょう。 TextBoxAという名前のTextBoxにある文字列を、TextBoxBという名前のTextBoxに挿入しています。 TextBox ta = (TextBox)FindControl("TextBoxA"); TextBox tb = (TextBox)FindControl("TextBoxB"); tb.Text = ta.Text; 参考にしてみてください。

core1916
質問者

お礼

アドバイスありがとうございます ご教授の方法で解決できました。 TextBox ta = (TextBox)FindControl("TextBox1"); ta.Text = "TEST"; お礼が遅くなり申し訳ありませんでした

回答No.1

試してないので適当な回答になりますが、tx を TextBox にキャストしてみるとか.

core1916
質問者

補足

回答、ありがとうございます しかし、txもFindControlもキャストしてみましたが、同じでした よろしくお願いいたします

関連するQ&A

  • C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか

    C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか? C#2008ですが、Form1にTextBoxが30個あって、textBox1~textBox30という名前がついています。 このテキストボックスの値をForm2で取得したいのですがなかなかうまくいきません。 ------------------------- Form2: private void Form2_Click(object sender, EventArgs e){  Form1 fm = new Form1();    int No = 15; //ここを1~30まで動的にしたい  string result = fm.textBox15.Text; //直接comboBox_type15と書くのではなく「"comboBox_type" + No.ToString()」のようにしたい  MessageBox.Show(result); } ------------------------- コントロールを配列にして Control[] ctlArray = new Control[30] { fm.textBox1, fm.textBox2, …, fm.textBox30 }; のようにしてみましたが、エラーになってしまいます。 いろいろネットで検索してみたのですが、「コントロール名を動的に文字列で作成して使う」という方法がどこにも載っていなく、数時間格闘しています。 すみませんがご教授願います。よろしくお願いいたします。

  • C#のToString("c")

    C#で、テキストボックスに金額を記入し、のちに取り出して数値として使いたいのですが、ToString("c")でフォーマットして記入した場合は通貨記号が取れませんでした。 なぜでしょうか? 何か良い方法がありますでしょうか? よろしくお願いいたします。 //ToString("c")を使わないで記入した場合 textBox1.Text = "-\\12345"; string stTarget; stTarget = textBox1.Text; Console.WriteLine("1stTarget=" + stTarget); stTarget = stTarget.Replace(",", ""); Console.WriteLine("2stTarget=" + stTarget); stTarget = stTarget.Replace("\\", ""); Console.WriteLine("3stTarget=" + stTarget); //出力結果 //1stTarget=-\12,345 //2stTarget=-\12345 //3stTarget=-12345 //ToString("c")を使って記入した場合 int tempNum = -12345; textBox1.Text = tempNum.ToString("c"); stTarget = textBox1.Text; Console.WriteLine("1stTarget=" + stTarget); stTarget = stTarget.Replace(",", ""); Console.WriteLine("2stTarget=" + stTarget); stTarget = stTarget.Replace("\\", ""); Console.WriteLine("3stTarget=" + stTarget); //出力結果 //1stTarget=-\12,345 //2stTarget=-\12345 //3stTarget=-\12345

  • C#のtextBox1への書込に関する質問

    C#(VS2013)のtextBox1への書込に関する質問です。 『textBox1.Text=str;』による、textBox1の書き込みは、『button1_Click』 の中から、直接『//write_textBox1("aaa"); 』を実行すれば出来ます。 しかし、Class1のtestを介して、『write_textBox1("bbb");』を実行した場合には textBox1に表示が出来ません。 尚、Consoleには、何れの場合にも表示出来ます。 Q1)Class1のtestを介して、textBox1への表示は可能ですか? =========== using System; using System.Windows.Forms; namespace TT_SendMessage { public partial class Form1:Form { public Form1() { InitializeComponent(); } public void write_textBox1(string str){ textBox1.Text=str; Console.WriteLine("VVVVVVVVVVVVVv"); } private void button1_Click(object sender,EventArgs e) { Class1 obj=new Class1(); obj.test(); //write_textBox1("aaa"); //<---この場合は、表示が出来る } }// public partial class Form1:Form { class Class1 { public void test() { bbb(); } public void bbb() { Form1 obj=new Form1(); obj.write_textBox1("bbb"); } }//class Class1 { } =============== 以上、宜しくお願いします。

  • asp.netでtextboxの値を取得

    ASP.net Webフォームで質問です(VS2012) ASP.netのTextBoxコントロールではなく、HTMLのtextboxの値を取得することは可能でしょうか。 また、textboxが複数あった場合でも、全てを取得したいのですが、 textboxがいくつあるか、その全てを取得するにはどのようにすれば良いでしょうか。

  • C# Form処理

    Form1とForm3からForm2を表示させれるようにして,どちらかのフォームのコントロールをクリック したらform2が立ち上がりformに応じた処理を行いたいのですが,下記のコードではエラーとなって 動きません int Pin1 = f1.butt1; int Pin3 = f3.butt3; if (Pin1 == 1) { int h = f1.but; for (int hj = 1; hj < 43; hj++) { if (h == hj) { //Labelに文字を入力。 string Memo = "label" + (hj + 93); string Hd = "label" + (hj + 51); Label f1_Memo = (Label)f1.Controls[Memo]; f1_Memo.Text = this.textBox1.Text; Label f1_Hd = (Label)f1.Controls[Hd]; f1_Hd.Text = this.textBox2.Text; } } } else if (Pin3 == 1) { int h3 = f3.but3; for (int hj3 = 1; hj3 < 43; hj3++) { if (h3 == hj3) { //Labelに文字を入力。 string Memo = "label" + (hj3 + 744); MessageBox.Show(Memo.ToString()); Label f3_Memo = (Label)f3.Controls[Memo]; f3_Memo.Text = this.textBox1.Text; } } } Form1のコントロールであれば上のforループ,Form3であれば下のforループで処理するように考えております.Form1でform3を開くコントロールを選択した場合上記コードのbutt1は0になるように しているつもりです. エラーは NullReferenceExceptionがハンドルされませんでした. オブジェクト インスタンスの作成には new キーワードを使用します。 何がいけなくてどう対処すればよろしいのでしょうか? ご教授よろしくお願いいたします.

  • C#でテキストボックスからstring変数に代入

    現在、Visual Studio 2019でC#勉強中です。 フォームアプリを作成していて、Hello worldができたので、そこからtextBox1の中に書かれた文字列を,stringで宣言したsという変数に代入しようとしたら、 string s = textBox1.Text; このようにすると、次のようなエラーが出てきてビルドが失敗します。 (エラー内容) エラー CS0236 フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ 'Form1.textBox1' を参照できません HelloWorldCS C:\Users\myname\source\repos\HelloWorldCS\Form1.cs 38 アクティブ このエラーの回避方法、そしてstring変数sへの代入方法を教えて頂きますよう、お願い致します。

  • フォーム上のすべてのTextBoxを空にしたい

    現在適用中のコード:(VB2008) Dim objtextbox As Control For Each objtextbox In Me.Controls objtextbox.Text = "" Next 問題: 1、VB6と違い、Captionプロパティがなくなったため、TextBox以外のTextプロパティも空になってしまうので、コントロールがTextBoxのときだけ処理したい。 2、上記のコードだと、フォーム上にあるグループボックスの中は適用されない。In Me.controles 一発ですべてのグループボックスの中のTextプロパティまで処理したい。 3、そんなのは無理という場合、すべてのコントロールをフォームがロードされた状態にしたい。(できれば、CloseしてShowするのは避けたい) いろいろ試してみましたが、うまくコードがかけません。ご迷惑をおかけいたしますが、皆様の知恵をお貸しください。

  • <ASP>にTextBoxの値を設定する方法

    TextBoxに記述されたDB接続文字列を<ASP>内で設定しようと試みておりますが、失敗します。どのように記述を改めればよろしいでしょうか? ----------------- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = Application["DB_CON_STRING"].ToString(); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="DATETIME" HeaderText="DATETIME" SortExpression="DATETIME" /> <asp:BoundField DataField="MESSAGE" HeaderText="MESSAGE" SortExpression="MESSAGE" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="form1.TextBox1.Text"★ここがうまくいかない★ SelectCommand="SELECT * FROM TEST ORDER BY ID DESC"></asp:SqlDataSource> </form> </body> </html>

  • C# String の中の\ をエスケープとして

    VisualStudio2010 C# でString 中の\ をエスケープシーケンスとして処理したいです。 String strText = this.textBox1.Text; String strPattern = this.textBox2.Text; String strReplaceText = this.textBox3.Text; strText = Regex.Replace(strText, @strPattern, strReplaceText, RegexOptions.Singleline); this.textBox3 に\r\n と入れて、Regex.Replace で改行として扱いたいんです。でも実際には\r\n は文字として扱われています。 コツを教えてください。

  • C#でのcsv保存

    今,下記のようなプログラムを組んでいます.ですが,うまくdataGridviewのデータが保存されません.何がいけないのでしょうか?だれかご教授よろしくお願いいたします. int R,C; R = dataGridView1.RowCount - 1; C = dataGridView1.ColumnCount - 1; string[] cdata = new string[R]; //string Ter =Convert.ToString(R); //string Tec = Convert.ToString(C); //textBox1.Text = Ter; //textBox2.Text = Tec; for (int Gdata = 1; Gdata < R; Gdata++) { string c = Convert.ToString(dataGridView1.Rows[Gdata].Cells[0].Value); cdata[Gdata] = c; //saveFileDialog1.Filter = "csvファイル (*.csv)|*.csv"; //if (saveFileDialog1.ShowDialog() == DialogResult.OK) //{ // int cdata = Convert.ToInt16(c); // cdata.saveNewCSVdata(saveFileDialog1.FileName); //} } //SaveFileDialogクラスのインスタンスを作成 SaveFileDialog sfd = new SaveFileDialog(); //ダイアログを表示する if (sfd.ShowDialog() == DialogResult.OK) { //OKボタンがクリックされたとき //選択された名前で新しいファイルを作成し、 //読み書きアクセス許可でそのファイルを開く //既存のファイルが選択されたときはデータが消える恐れあり System.IO.Stream stream; stream = sfd.OpenFile(); if (stream != null) { //ファイルに書き込む System.IO.StreamWriter sw = new System.IO.StreamWriter(stream); sw.Write(cdata); //閉じる sw.Close(); stream.Close(); } }

専門家に質問してみよう