- かもがや
- 大ベテラン
- 会議室デビュー日: 2004/08/31
- 投稿数: 103
|
投稿日時: 2004-09-01 10:41
Jittaさん、iStationさん、ありがとうございます。
有難くメモらさせていただきました。
今後ともよろしくお願い致します。
|
- かもがや
- 大ベテラン
- 会議室デビュー日: 2004/08/31
- 投稿数: 103
|
投稿日時: 2004-09-03 10:24
お世話になります。
Class.csからFormHogeを起動して、FormHoge上のボタンをクリックしてFormHoge上の
TextBoxをクリアしたいのですが、クリアのコードはClass.csに置きたいのです。。
| コード: |
|
Class
[STAThread]
static void Main()
{
FormHoge formHoge = new FormHoge();
Application.Run(formHoge);
}
public void HogeHoge( ※ここの書き方 )
{
///TextBox1.Text = "";
///Form上のTextBoxをクリアしたい
}
Form
private void Button_Click(object sender, System.EventArgs e)
{
Class.HogeHoge(Me);
}
|
Class.HogeHogeの引数の書き方が分かりません(苦)
ちなみに、最初は
| コード: |
|
public void HogeHoge( FormHoge formHoge )
|
と書いたのですが「型または名前空間名 'FormHoge' が見つかりませんでした」
と怒られて質問に至っています。。。
アドバイスよろしくお願いします。
|
- きくちゃん
- ぬし
- 会議室デビュー日: 2003/08/01
- 投稿数: 854
- お住まい・勤務地: 都内某所
|
投稿日時: 2004-09-03 11:21
脳味噌筋肉さん、こんにちは。
取り敢えずですね、ここら辺とかここら辺をよ〜く読んでみる事をお奨めします。
|
- Hasumi
- ベテラン
- 会議室デビュー日: 2002/07/23
- 投稿数: 78
- お住まい・勤務地: 神奈川・東京
|
投稿日時: 2004-09-03 11:56
Hasumiです。
HogeHogeメソッドにテキストボックスを渡せばいいのでは?
>Class.HogeHoge(Me);
MeはVBのキーワードでは。
C#でしたらここら辺もお奨め。
|
- かもがや
- 大ベテラン
- 会議室デビュー日: 2004/08/31
- 投稿数: 103
|
投稿日時: 2004-09-03 15:37
Hasumiさん、きくちゃんさん、ありがとうございます。
教えて頂いたページから、Class.csからFormHogeを起動するしくみ(きまり)は
理解できました。
多分・・ですけど・・自信無いですが(苦)
問題の、FormHoge上のイベントルーチンの中から自分に貼りついたコントロールにアクセスするコード
をClass.cs側に置くという事なんですが・・
よくよく考えたら、自分に貼りついたコントロールにアクセスするコードなんだから自分とこ
に置く、と考えるのが普通かなぁ?と。
うーん。。。
|
- iStation
- 大ベテラン
- 会議室デビュー日: 2003/12/08
- 投稿数: 158
|
投稿日時: 2004-09-03 16:14
参考にどうぞ!
| コード: |
|
// file : FormHoge.cs
// compile : csc /t:winexe /main:Class FormHoge.cs
// compile : csc /main:Class FormHoge.cs // Console Coexists
using System;
using System.Windows.Forms;
using System.ComponentModel;
public class Class
{
[STAThread]
public static void Main()
{
FormHoge formHoge = new FormHoge();
Application.Run(formHoge);
}
static public void HogeHoge(FormHoge formHoge)
{
formHoge.a.Text = "";
}
}
public class FormHoge : Form
{
public TextBox a;
public FormHoge()
{
// set up form...
Text = "FormHoge"; // title bar text
Width = 400; // form width
Height = 100; // form height
CenterToScreen(); // display center screen
// Text Box
a = new TextBox();
a.Text = "HogeHoge";
a.Dock = DockStyle.Top;
Controls.Add(a);
// Button
Button b = new Button();
b.Text = "Button";
b.Dock = DockStyle.Bottom;
b.Click += new EventHandler(clickHandler);
Controls.Add(b);
// create container for components...
components = new Container();
}
private void clickHandler(object sender, EventArgs e)
{
Class.HogeHoge(this);
}
protected override void Dispose(bool disposing)
{
if (disposing)
if (components != null)
components.Dispose(); // dispose of components...
base.Dispose(disposing);
}
private Container components; // contains components
}
|
[ メッセージ編集済み 編集者: iStation 編集日時 2004-09-03 19:23 ]
|
- かもがや
- 大ベテラン
- 会議室デビュー日: 2004/08/31
- 投稿数: 103
|
投稿日時: 2004-09-03 16:47
おぉ・・、ありがとうございます。
| コード: |
|
public FormHoge()
{
// set up form...
Text = "FormHoge"; // title bar text
Width = 400; // form width
Height = 100; // form height
CenterToScreen(); // display center screen
// Text Box
a=new TextBox();
a.Text="HogeHoge";
a.Dock = DockStyle.Top;
Controls.Add(a);
|
コントロールをNewするんですか!・・これって画面を作り込むとダメなんですよね?
というか試してみます。
|
- iStation
- 大ベテラン
- 会議室デビュー日: 2003/12/08
- 投稿数: 158
|
投稿日時: 2004-09-03 17:08
要点は変数と関数のスコープだと思いますけど...
|