- ベストアンサー
.netframeworkで作成したフォーム1のイベントで、フォーム2を表示させたいのですが…
ものすごく説明しにくいのですが、以下のプログラムを実行すると 「Form2識別子がクラス名でも名前空間名でもありません。」 と、エラーが表示されてしまいます。 クラスが違うからなのでしょうか?何か方法は無いのでしょうか・・・。 何か分かることがあったらよろしくお願いいたしますm(_ _)m private: System::Void Form1_Load(System::Object * sender, System::EventArgs * e) {//フォームロード Form2::Show(); }
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 別のフォームの値を初期値として設定するには?
別のフォームの値を初期値として設定するには どうしたらよいでしょうか? private: System::Void Form2_Load(System::Object^ sender, System::EventArgs^ e) { this->comboBox1->Items = Form1.comboBox1.Items; }
- ベストアンサー
- C・C++・C#
- C# フォーム追加後、旧フォームを閉じたい
前略 ・C#で教えてください。 ・Form1 からshowDiag()メソッドでForm2をつくります。Form2が表示されたら非アクティブとなったForm1を閉じたいのですが どのようにしたらよいのかおしえてください。 下記は、Close() メソッドで Form2側から閉じようとしたプログラムですがFrom1を閉じることができません。 よろしくお願いします。 //----------------------------------------------- namespace formClose { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.ShowDialog(); } } public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { Form1 form1 = new Form1(); form1.Close(); //Form1が閉じない!! } private void button1_Click(object sender, EventArgs e) { this.Close(); //Form2を閉じる } } } 以上
- ベストアンサー
- C・C++・C#
- VC# 追加フォーム生成時、フォームに描画できない
前略 ・VC#(.NET 2008)のプログラムでおしえてください。 ・メインのWindowsフォームからボタンクリックで 追加したサブWindowsフォーム上のピクチャーボックス上に何も操作なしでに描画したいのですができません。CreateGraphics()でオブジェクトを生成して描画しています。どのようにしたらよいのかおしえてください。フォームのイベントとして、Paint,Load,shown,Activated等いろいろやってもだめでした。 尚、サブフォームにボタンをもうけ このメソッドの中に描画コマンドを書き、ボタンを操作すると描画できます。下記は円を描こうとしていますが、shapeコンポーネントでは描けな複雑な描画をしたいと思っています。 ・以下に 下記の動作となるソースコードを記載します。 (1)起動するとメインフォームForm1のpictureBox1に 赤い円が描かれる (2)ボタンbutton1をクリックするとForm2が表示される。 Form2上のラベルlabel1とlabel2の文字色は青色に変わっています。 しかし、円は何故か描かれていません (3)Form2上のボタンをクリックすると赤い円がForm2上に描かれます。 どこをどのように直せば追加のサブフォームForm2が表示された時に Form2上のpictureBox1に円が描がかれているのでしょうか。以上、よろしくお願いします //----------------------------------------------------------- //メインフォーム using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace temp2 { public partial class Form1 : Form { public Form1(){ InitializeComponent(); } private void button1_Click(object sender, EventArgs e){ Form2 form2 = new Form2(); form2.ShowDialog(); } private void Form1_Paint(object sender, PaintEventArgs e){ Graphics g = pictureBox1.CreateGraphics(); g.DrawEllipse(Pens.Red, 0, 0, 200, 200); } } } //サブフォーム using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace temp2 { public partial class Form2 : Form { public Form2(){ InitializeComponent(); } private void pictureBox1_Paint(object sender, PaintEventArgs e){ label1.ForeColor = Color.Blue; Graphics g1 = pictureBox1.CreateGraphics(); g1.DrawEllipse(Pens.Blue, 0, 0, 50, 50); label2.ForeColor = Color.Blue; } private void button1_Click(object sender, EventArgs e){ Graphics g2 = pictureBox1.CreateGraphics(); g2.DrawEllipse(Pens.Blue, 0, 0, 50, 50); } private void Form2_Paint(object sender, PaintEventArgs e){ } private void Form2_Load(object sender, EventArgs e){ } private void Form2_Shown(object sender, EventArgs e){ } } } 以上
- ベストアンサー
- C・C++・C#
- C#でフォームの中にフォームを貼り付けたい
C#(Visual Studio2005)でフォームの中にフォームを貼り付けたいのですが そういう事は可能でしょうか。 MDIではなく配置したいのです。 (MFCならCWndの中にCWndを作るように) private void Form1_Load(object sender, EventArgs e){ Form2 form2 = new Form2(); form2.parent = this; form2.top = 10; form2.left = 10; form2.Show; } これをやると ※「トップレベルのコントロールは追加できません。」という例外が発生します。 やりたいことは、フォームの中の子ウインドウを状況によってきりかえたいのですが。 宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- VS2005 ボタンを自動クリック
VS2005の初心者です。 ボタンを自動的にクリックするロジックがわかりません。 現在は以下のようになっています。 private void Form1_Load(object sender, EventArgs e) { (本文) } private void btnSendMail_Click(object sender, EventArgs e) { (本文) } 今は、Form1_Loadが実行して、ボタンを押すとbtnSendMail_Clickが実行します。 これを、Form1_Loadの中でbtnSendMail_Clickを実行したいのです。 初心者なのでわかりにくいと思いますが、宜しくお願いします。
- ベストアンサー
- C・C++・C#
- Loadイベント中にほかのイベントを発生したくない
VisualC# .net です。 フォームを表示する場合に コンストラクタが呼ばれその後ロードイベントで フォームのコントロールの初期設定を行っています。 (この方法がまちがっている?) ロードイベント内でコンボボックスの初期設定を行うと コンボボックスのイベントが発生してしまいます。 以下参照にて このイベントでメッセージを表示しているのですが 初期設定では出てほしくありません。 そこで、 これを防ぐためには以下のようにフラグを立てるような 方法しかないのでしょうか? それともDebugger.IsAttached のようなものが 用意されているのでしょうか public bool iload = false; (←仮フラグを追加) private void Form1_Load(object sender, EventArgs e) { iload = true; (←仮フラグを登録) ComboBox1.SeletedIndex = 0; iload = false; (←仮フラグを削除) } private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (iload) return; (←仮フラグ登録時はなにもしない) MessageBox.Show("変更しました"); }
- ベストアンサー
- その他(プログラミング・開発)
- フォームを画面のど真ん中に表示させたいのですが
フォームを画面のど真ん中に表示させたいのですが、 http://dobon.net/vb/dotnet/form/startposition.html を見たのですがコードの書き方がよくわかりません。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim f As New Form1() 'フォームを画面の真ん中に表示する f.StartPosition = FormStartPosition.CenterScreenf.Show() End Sub End Class こうすると、「FormStartPosition.CenterScreenf」の部分に波線がひかれます。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(0, 0) End Sub End Class これで左は時に表示する事は出来るのですが、真ん中に表示させるにはどうすればいいでしょうか?
- ベストアンサー
- Visual Basic
- C#でテキストボックスをクリック→フォームが開く→フォームで設定した値
C#でテキストボックスをクリック→フォームが開く→フォームで設定した値を元のテキストボックスに入力 こんな感じのことをC#でやりたいのですがよくわからないので教えてください。 1. 親をForm1、子をForm2とします 2. Form1のTextBox1をクリックするとForm2が開いきます 3. Form2で設定した値をForm2の「入力」ボタンを押すとForm2が閉じてTextBox1に値が入力されます というものです。 ここで、textBoxは「クリックしたコントロール名を取得してForm2に渡したい」のです。 テキストボックスがたくさんあるので、textBox1とか決まった名前ではありません。 この部分がわからないのです。 ------------------------------------------------------- Form1: private void textBox1_Click(object sender, EventArgs e) { Form2 fromItem = new Form2(sender); DialogResult deRet = fromItem.ShowDialog(); } Form2: public Form2(object sender) { InitializeComponent(); object pSender = sender; } private void button_input_Click(object sender, EventArgs e) { ((System.Windows.Forms.TextBox)pSender).text = "hoge"; } ------------------------------------------------------- この程度しかわかりません。 正しい方法を教えてください。よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- C# フォームプログラミングで
public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { //Graphics grfx = CreateGraphics(); } private void Form2_Paint(object sender, PaintEventArgs e) { Form2 form2; form2.Paint += new PaintEventHandler(PaintHandler1); } static void PaintHandler1(object objSender,PaintEventArgs e) { Graphics grfx = e.Graphics; grfx.DrawString("test",Font font,Brushes.Black,0,0);//←ここでエラー } } このように書くと「引数を2個指定できる、メソッド DrawString のオーバーロードはありません」 というエラーがでてフォームに文字を表示できません 最初に「空のプロジェクト」で作れば普通にDrawStringで文字を表示できるのですが 「Windowsフォーム」を選んでからだと表示できないのはなぜでしょうか? 何がいけないのでしょう。
- ベストアンサー
- C・C++・C#
- C++2012でのフォーム切替
いつも御世話になっております。 現在C++2012EXPRESSを使用し勉強を始めたばかりのものです。 早速質問なのですが、フォームの切替の仕方がわからず困っています。 #pragma once #include "Frm_Manual.h" ←追加 private: System::Void cmd_Manual_Click(System::Object^ sender, System::EventArgs^ e) { Frm_Manual^ form = gcnew Frm_Manual(); form->Show(); } 上記で追加したフォームを開く 上記の方法で追加したフォームを開くことが出来ました。 同様に追加したフォームからFrm_Mainを開きたいので #pragma once #include "Frm_Main.h" ←追加 private: System::Void cmd_Main_Click(System::Object^ sender, System::EventArgs^ e) { Frm_Main^ form = gcnew Frm_Main(); form->Show(); } とするとエラーが15個も発生してしまいます。 エラーはC2065,C2061,C2227の三種類です。 どこかでFrm_Main.hをインクルードする必要があると思うのですがどこに記入すればよいのかわかりません。 ネット検索もしたのですが、2つのフォームを交互に開くプログラムは検索できたのですが、現在行いたい処理は、フォームを5個作成し、切り替えるプログラムです。 VBでは簡単に出来たので、安易に考えていましたがつまいづいてしまいました。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
お礼
できましたできました! なるほどそういうことですか。 オブジェクト指向に慣れていないので大変です^^; どうもありがとうございました。