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

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

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

Re[3]: Formへの値の受渡しについて


(過去ログ 111 を表示中)

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

■65555 / inTopicNo.1)  Formへの値の受渡しについて
  
□投稿者/ すし (1回)-(2013/03/07(Thu) 21:42:24)
すし さんの Web サイト

分類:[C#] 

初めて質問します。
初心者でわからないことがあり質問しました。
public System.Windows.Forms.TextBox textBox1; //プロパティに設定しています

目指したいのは、Form1.csにForm1 Form1=new Form1にtextBox.1の値が「Form1.cs」に入ることです。
今の書き方では、「class1.cs」に書いてあるForm1 Form1=newForm1の下にtextBox1.textに値を書いて
いるのでForm1 Form1=newForm1を呼び出したあと、Form1.showでようやくtextBox.1に値が入っています。

class1.csにいれたtextBox1.textをForm1.csを読んだあと入れなおして、再度textBox1.textを描画する
方法を教えて下さい。

よろしくお願いします。

------------------------
「Form.cs」
namespace ConsoleApplication1
{
public partial class Form1 : Form
{

public Form1()
{
 this.textBox1 = new System.Windows.Forms.TextBox();

 // Form1
 this.Controls.Add(this.textBox1);

 string wqq=textBox1.Text;
}
}
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
「class1.cs」

namespace test
{
public class Program

{

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ConsoleApplication1.Form1());
}

public void test()
{

string url = "https://www.youtube.com/";

ConsoleApplication1.Form1 Form1 = new ConsoleApplication1.Form1();
Form1.textBox1.Text = url.ToString();
Form1.ShowDialog();
}
}
}


引用返信 編集キー/
■65560 / inTopicNo.2)  Re[1]: Formへの値の受渡しについて
□投稿者/ howling (228回)-(2013/03/07(Thu) 22:36:35)
No65555 (すし さん) に返信
んー、日本語ヨクワカラナイ…だけど、とりあえず勘違いを正そう。

ソースコードに対して値を入れたい、と書いてますが、そういう考え方はやめましょう。
そのForm1.csは、Form1というクラスの動作定義を書いてある物です。
このForm1という物は複数作ることができます。
例えば、class1.csのRunの中で1つ出来ていますし、
同じくclass1.csのtestメソッド内でも作ろうとしています。
new、とはそういうものです。オブジェクトを作るということ。

さて、おそらく貴方が見ている「Form1」は、Run内で作ってくれた物でしょう。
では、そのRun内で作ってくれた物にテキストを入れる必要がありますね。

次に、テキストを入力するタイミングを設定しましょう。
TextBoxというコントロールは、何もしなくてもユーザーが入力してくれた瞬間に文字列を入れてくれますよね?
それ以外に自分で文字列を入れたい場合は、そのタイミングを設定しなくてはなりません。
何をされたら入力されるの?ロードされたらでいいの?ならLoadイベントというのがあるから、
その中で文字列を入れてあげればいいよ。

…という解説は結構大変なので、とりあえず自分なりにC#入門みたいなやつを読むなり見るなりして勉強してみてください。
なんというか、基礎とかいうレベルじゃない感じなので。
初心者、というのは書かなくてもわかることですが、書いても逃げにしかなりません。ご注意を。


引用返信 編集キー/
■65563 / inTopicNo.3)  Re[1]: Formへの値の受渡しについて
□投稿者/ shu (216回)-(2013/03/08(Fri) 09:29:29)
No65555 (すし さん) に返信
>  string wqq=textBox1.Text;
この部分を実行したときに

> string url = "https://www.youtube.com/";
>
> ConsoleApplication1.Form1 Form1 = new ConsoleApplication1.Form1();
> Form1.textBox1.Text = url.ToString();
この処理内容が反映されていてwqqに"https://www.youtube.com/"が入るように
したいということでしょうか?

だとすると
public Form1()
の中にtextBox1.Textへの設定処理が必要になります。newがされないうちに
値を設定することは出来ません。

Form1の外部から値をわたしたいのであればnew以降に設定された値を参照する必要があります。
引用返信 編集キー/
■65564 / inTopicNo.4)  Re[2]: Formへの値の受渡しについて
□投稿者/ howling (229回)-(2013/03/08(Fri) 10:42:26)
No65563 (shu さん) に返信
うーん、私はclass1.csにtestメソッドがあるだけ、という状態を見る限りでは、
class1.csから「Form1.cs」というソースファイル自体に"https://www.youtube.com/"を入れようとしているけれども、
どうやって入れれば良いのかわかっていないんじゃないかと思うのですが…。

そもそもの考え方自体が間違っている感じなので、
最初から全部説明してあげる必要性があると思いますよ…。
もっとも、それをやる場所はここではないと思いますが。
引用返信 編集キー/
■65572 / inTopicNo.5)  Re[3]: Formへの値の受渡しについて
□投稿者/ zam (1回)-(2013/03/08(Fri) 14:12:50)
> 目指したいのは、Form1.csにForm1 Form1=new Form1にtextBox.1の値が「Form1.cs」に入ることです。

これはどういう意味なのでしょうか?
日本語が苦手であれば、英語で質問文を書き直してもいいですよ。
引用返信 編集キー/
■65653 / inTopicNo.6)  Re[2]: Formへの値の受渡しについて
□投稿者/ すし (3回)-(2013/03/13(Wed) 13:35:54)
すし さんの Web サイト
遅れてしまってすみませんでした。
確かに勉強不足です。すみまっせん・

> さて、おそらく貴方が見ている「Form1」は、Run内で作ってくれた物でしょう。
> では、そのRun内で作ってくれた物にテキストを入れる必要がありますね。

> 次に、テキストを入力するタイミングを設定しましょう。

以上の2点がわからずに質問しました。指摘ありがとうございます。
textBoxは、Formコントロールでつくっています。
なので外部クラスの関数からForm1のコントロールであるtextBox1に
値を渡したいと考えています。

呼び出し順
test()→値をForm1のtextbox.textにいれる→Form1呼び出し
です。

No65560 (howling さん) に返信
> ■No65555 (すし さん) に返信
> んー、日本語ヨクワカラナイ…だけど、とりあえず勘違いを正そう。
>
> ソースコードに対して値を入れたい、と書いてますが、そういう考え方はやめましょう。
> そのForm1.csは、Form1というクラスの動作定義を書いてある物です。
> このForm1という物は複数作ることができます。
> 例えば、class1.csのRunの中で1つ出来ていますし、
> 同じくclass1.csのtestメソッド内でも作ろうとしています。
> new、とはそういうものです。オブジェクトを作るということ。
>
> さて、おそらく貴方が見ている「Form1」は、Run内で作ってくれた物でしょう。
> では、そのRun内で作ってくれた物にテキストを入れる必要がありますね。
>
> 次に、テキストを入力するタイミングを設定しましょう。
> TextBoxというコントロールは、何もしなくてもユーザーが入力してくれた瞬間に文字列を入れてくれますよね?
> それ以外に自分で文字列を入れたい場合は、そのタイミングを設定しなくてはなりません。
> 何をされたら入力されるの?ロードされたらでいいの?ならLoadイベントというのがあるから、
> その中で文字列を入れてあげればいいよ。
>
> …という解説は結構大変なので、とりあえず自分なりにC#入門みたいなやつを読むなり見るなりして勉強してみてください。
> なんというか、基礎とかいうレベルじゃない感じなので。
> 初心者、というのは書かなくてもわかることですが、書いても逃げにしかなりません。ご注意を。
>
>
引用返信 編集キー/
■65654 / inTopicNo.7)  Re[2]: Formへの値の受渡しについて
□投稿者/ すし (4回)-(2013/03/13(Wed) 13:39:39)
すし さんの Web サイト
返信が遅れてしまい申し訳ありません
ありがとうございます。


> この処理内容が反映されていてwqqに"https://www.youtube.com/"が入るように
> したいということでしょうか?

はい。そのように目指して行きたく思っています。

> public Form1()
> の中にtextBox1.Textへの設定処理が必要になります。newがされないうちに
> 値を設定することは出来ません。

上、ありがとうございます。参考になります。
少しこの設定について勉強してみようと思います。


No65563 (shu さん) に返信
> ■No65555 (すし さん) に返信
>> string wqq=textBox1.Text;
> この部分を実行したときに
>
>>string url = "https://www.youtube.com/";
>>
>>ConsoleApplication1.Form1 Form1 = new ConsoleApplication1.Form1();
>>Form1.textBox1.Text = url.ToString();
> この処理内容が反映されていてwqqに"https://www.youtube.com/"が入るように
> したいということでしょうか?
>
> だとすると
> public Form1()
> の中にtextBox1.Textへの設定処理が必要になります。newがされないうちに
> 値を設定することは出来ません。
>
> Form1の外部から値をわたしたいのであればnew以降に設定された値を参照する必要があります。
引用返信 編集キー/
■65655 / inTopicNo.8)  Re[4]: Formへの値の受渡しについて
□投稿者/ すし (5回)-(2013/03/13(Wed) 13:42:32)
すし さんの Web サイト

返信が遅れてすみませんでした。
文章が悪くすみませんでした。

Form1中にあるtextboxというコントロールに外部クラスであるtest()の値をいれたいという
意味でした。(この日本語でも大丈夫でしょうか?)

目を通していただきありがとうございます。

No65572 (zam さん) に返信
>>目指したいのは、Form1.csにForm1 Form1=new Form1にtextBox.1の値が「Form1.cs」に入ることです。
>
> これはどういう意味なのでしょうか?
> 日本語が苦手であれば、英語で質問文を書き直してもいいですよ。
引用返信 編集キー/
■65657 / inTopicNo.9)  Re[5]: Formへの値の受渡しについて
□投稿者/ howling (233回)-(2013/03/13(Wed) 14:07:48)
No65655 (すし さん) に返信
まず考え方がおかしいです。

呼び出し順
test()→値をForm1のtextbox.textにいれる→Form1呼び出し

Form1というオブジェクトがある、という勘違いをしていますね?
Form1というクラス(型)があるのです。
Form1というクラスのオブジェクトを作るのです。(これがnew Form1())

そして、このオブジェクトのtextboxに対してアタッチする、というのが正しいです。

というわけで、呼び出し順は

Form1のオブジェクトを1つ作る→その中のtextboxに値を入れる→Form1をShow(表示)する

という感じです。

が、ここでやってても勉強にならないので、
他で勉強してから来て頂いた方がいいかと…
引用返信 編集キー/
■65658 / inTopicNo.10)  Re[3]: Formへの値の受渡しについて
□投稿者/ howling (235回)-(2013/03/13(Wed) 14:27:34)
>ここでやってても勉強にならないので

これだけ書いてしまうと語弊がありそうですね。
この掲示板は何を書いても良い掲示板なので、どんな基本的な質問でもして大丈夫です。
…なのですが、実際のところ、何かしらの言語の知識が無いと、ちょっと難しい内容になっているのかなと。

すしさんがつまづいているところは非常に重要なところで、
かつ基礎の中の基礎と呼んでも良い部分だと思っています。
ここについて、簡単に説明されて「ふーん」と理解されても、追々困ることは目に見えているのです。

そこで、できればそういった基礎知識の部分を学んでから、この掲示板に戻ってきては?という提案です。
おそらく、ここで書いている「基礎知識」の部分を学んだら、この質問の回答もわかるのではないかと。
または、C#以外の言語を学んだ場合でも、質問内容が変わると思います。
(申し訳ないですが、他の言語を学んだことのある方の質問であるとは思えないのですが、間違っていたら失礼)

無論、これは学ぶ側に自由がありますから、ここで学んでいきたいのでこのまま行きます、でもいいです。
が、少なくとも私は、そこから説明する気は起きませんし、狂いなく教えられる技量も無いと思っていますので、
是非お願いしたい次第です。ではでは。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -