• 締切済み

c#のプログラムについて

こんにちは、C#で簡易的なプログラムを作成中の者です。 txtIDとtxtPassに指定された言葉を正しく入力するとForm2へ 間違えるとエラーメッセージを出すようにしたいのですが、どうにもエラーがでます 現在このようなプログラムなのですが、 private void btn_Click(object sender, EventArgs e) { Form2 cForm2 = new Form2(); if (txtID == "user" && txtPass == "test") { //Form2へ移動する cForm2.Show(); //FrmLoginを非表示化する ((FrmLogin)sender).Hide(); } else { label1.text = "IDかパスワードに誤りがあります。再確認して下さい"; } } txtID == "user" txtPass == "test" label1.text この3つでエラーが出てしまいます。 何か文章が足りないのでしょうか?

みんなの回答

回答No.3

txtIDとtxtPassはSystem.Windows.Forms.TextBoxで,label1はSystem.Windows.Forms.Labelでよいでしょうか。 ・TextBoxの文字列へアクセスするには,Textプロパティを使います ・Labelにtextというプロパティはありません。存在するのはTextプロパティです。 VB6やそれ以前のバージョン,VBAの経験者でしょうか。 ・VB6等にあった「既定のプロパティ」は,C#では存在しません。明示的にプロパティを指定する必要があります ・VBでは大文字・小文字を区別しませんが,C#では区別します。

回答No.2

ボタンクリックの object sender には、クリックされたボタンが渡ってくるので、 // FrmLoginを非表示化する ((FrmLogin)sender).Hide(); これによってキャストエラーが発生します。

回答No.1

どの場所でどんな内容のエラーが出ていかを書くべきですね。 して、 txtID == "user" txtPass == "test" label1.text この 3行は何ですか? クリック イベントの外に書いているようですし、イコールを 2つつなげているようですし、セミコロンで終わってないようですし。

関連するQ&A

  • C#プログラムにて

    C#プログラムにて お世話になります。 C#初心者です。 プログラムコードを書き始めで、早速行き 詰っています。 ステップでコードの動きを確認したところ、 program.csのMainから下記のForm1.csに 移りForm1のデザイナが表示されるのですが、 button3を押してもForm3が表れません。 また、ステップの黄色いカーソルと言いますか ステップの位置情報も消えています。 何がどう悪いのか分からなく困っています。 どなたかご親切な方、ご教授頂きたく 宜しくお願い致します。     記 using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { Form3 cForm3 = new Form3(); cForm3.ShowDialog(); } private void button2_Click(object sender, EventArgs e) { DialogResult ans; ans = MessageBox.Show("最新のコード表を照会しますか?", "Microsoft Visual Studio", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (ans == DialogResult.OK) Application.Exit(); } private void button12_Click(object sender, EventArgs e) { Form4 cForm4 = new Form4(); cForm4.ShowDialog(); } } }

  • C#でオブジェクトの有無を取得する

    オブジェクトが作られている時と作られていない時で処理をわけたいのですがうまくいきません。 この書き方の何がまずいのでしょうか? namespace オブジェクト検索 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Control c = Controls["form2"]; if (c != null) { ((TextBox)c).Text += "*"; } } private void button2_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); Application.DoEvents(); } } } ボタン2を押した時に新しいフォームが立ち上がり、そのフォームがあるときは*が出るようにしたいです。

  • VB2013でのプログラム作成でつまづきました

    初めまして ご質問です 会社にて、職場改善のため VB2013でプログラムを作成していますが PCに詳しいのが自分しかいなく、指名されました。。。 もちろん自作PCとか作れるぐらいですが プログラムなんてやったことないし困っています 職場にプログラム専門の方がいるので教育を受けていますが 2.3回教えてもらって  「windowsの電卓を作ろう」と言われました 電卓作成は、初心者用の題材らしいですが とりあえず教えてもらった事を駆使し まずは、テキストボックスとテキストボックスに数字を入れ その二つを +や-ボタンを押し =ボタンを押すと、3つ目のテキストボックスに表示させるという 簡単なプログラムは、なんとかできましたが windowsぽくすると 例 11 + 12 - 9 とテキストに表示され =ボタンを押すと 表示が消え 計算結果が表示されます いまの問題 ・整数と文字列を表示させ、計算だけさせる ・変数宣言、IF、Serectしか教わってない(それだけでできる言われた笑) ・まだ、いまいちわかっていないため 詳しく知りたい 無論、教えてもらったコードをそのまま使いたいわけじゃなく どーいう流れで、どーいう風にというのを理解したいです 結局は自分が理解して、少しずつやらないといけないので 詳しい方、教えてください。 現在なにもできてないコードです ここにどう埋めるか教えてほしいです ------------------------------------------------------------------------------ Option Explicit On Public Class Form Public oboe As String '押されたボタンが数値以外を覚える変数 Public befor As String '押されたボタンが数値の場合 覚える変数 Public anser As Integer ' 計算結果を保存する 変数 Public number As Integer '入力された数値を保存する 変数 Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '1 befor = "1" ans.Text &= "1" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '2 befor = "2" ans.Text &= "2" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click '3 befor = "3" ans.Text &= "3" End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'たし算 oboe = "+" ans.Text &= "+" number = befor + ans.Text End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click '掛け算 End Sub Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click '計算 End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click 'CLEAR End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click '引き算 End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click '割り算 End Sub Private Sub ans_TextChanged(sender As Object, e As EventArgs) Handles ans.TextChanged

  • 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#初心者です。 フォーム1にはbuttonが2つあり、どちらを押したかで 次(フォーム2)の次のフォーム(フォーム3)を開く時に そのフォームにあるボタンを表示させるか・非表示にさせるか したいと思っております。 中途半端ですが下記の様なコードを書いておりましてその先 フォーム3での記述をどの様に書いたら良いのか行き詰って しまいました。 どなたかご親切な方、ご教示頂きたく宜しくお願い申し上げます。           記 クラス using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { public class Keikaku { public enum Mode { Syuuse, Syoukai } } } ---------------------------------- フォーム1 namespace WindowsFormsApplication1 { public partial class MainMenu : Form { private void button1_Click(object sender, EventArgs e) { Form2 cForm2 = new Form2(); cForm2.Syuusei = Keikaku.Mode.Syuusei; cForm2.ShowDialog(); } private void button2_Click(object sender, EventArgs e) { Form2 cForm2 = new Form2(); cForm2.Syuusei = Keikaku.Mode.Syoukai; cForm2.ShowDialog(); } } } ---------------------------------- フォーム2 namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private Keikaku.Mode _kakunin; public Keikaku.Mode Syuusei { set { _kakunin = value; } } private void button1_Click_1(object sender, EventArgs e) { Form3 cForm3 = new Form3(); cForm3.ShowDialog(); } } } ---------------------------------- フォーム3 namespace WindowsFormsApplication1 { public partial class Form3 : Form { } }

  • C# Formの操作

    Form2 form2 ; // 子 Form Form3 form3 ; // 子 Form private void button1_Click(object sender, System.EventArgs e) { form2 = new Form2() ; this.AddOwnedForm(form2) ; // 親 Form が form2 を所有する form2.Show() ; } private void button2_Click(object sender, System.EventArgs e) { form3 = new Form3() ; this.AddOwnedForm(form3) ; // 親 Form が form3 を所有する form3.Show() ; } 上記のようにボタン一つに対して1つのFormに対する処理をするのではなく,ボタン1つに対して 複数のFormを処理する.つまり 例えば,Form1,2,3とあったとして,Form1のボタンを押してFrom2を開き,そこで何らかの処理を したものをForm1に反映する.または,From3のボタンを押してForm2を開きそこで何らかの処理を 行いForm3に反映する. この場合,Form1とForm3のどちらのFormのボタンが押されたか判断しないといけないと思うのですが,ここの処理がうまくいきません. どちらかのFormのボタンを押してForm2を表示し,どちらかのFormに反映させる所までは出来たのですが,両方の判断材料を入れて,どちらのFormのボタンを押されたか判断する際に,押されなかった方が「null」となりエラーになります. 下記にこの判断部分を掲載いたします.どなたかご教授よろしくお願いいたします. Form1 public int but = 0; public int butt1; public string DB; public string HDB; public Form2 f2 = null; private void mybutton1_Click(object sender, EventArgs e) { butt1 = 1; ・ ・ ・ public int Ye=0; private void button43_Click(object sender, EventArgs e) { butt1 = 0; From2 public partial class Form2 : Form { Form1 f1; Form3 f3; public Form2(Form1 f) { f1 = f; // メイン・フォームへの参照を保存 InitializeComponent(); } public Form2(Form3 f) { f3 = f; // メイン・フォームへの参照を保存 InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { #region int Pin1 = f1.butt1; int Pin3 = f3.butt3; Form3 Form1と基本的には同じです.

  • Form2のテキストボックスを更新する方法(C#)

    namespace WindowsFormsApplication_test { public partial class Form1:Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender,EventArgs e) { Form2 Fm2 = new Form2(); Fm2.StartPosition = FormStartPosition.CenterScreen; Fm2.Show(); } private void button1_Click(object sender,EventArgs e) { Random a = new Random(); int x=a.Next(100); x=x+10; textBox1.Text=x+""; } } } 起動時にForm1とForm2を表示するプログラムを作ったのですが、 Form1のボタンをクリックした時、 Form2のtextBox1に、Form1のxの値を表示する方法が分かりません。 記述方法を教えて下さい。

  • 【C#】ラベルのダブルクリックについて

    初めて質問させていただきます。C#初心者です。よろしくお願いします。 開発環境はMicrosoft Visual C# 2008です。 現在、UserControl1を作成して、label1にはテキストを入れています。 ・label1をクリックすると、パネル(panel1)の背景色を変更。 ・label1をダブルクリックすると、他のラベル(atai_text)にlabel1内のテキストを代入。 ↑上記2つの処理をしたいのですが、クリックの方は処理できているのですが、ダブルクリックは反応せず、どのように作成すればよいかがわかりません。 <UserControl1.csの一部> private void label1_Click(object sender, EventArgs e) { if (this.label1.BackColor == Color.Pink) { this.panel1.BackColor = Color.FromArgb(0xFF, 0xFF, 0x80); } else { this.panel1.BackColor = Color.Pink; } } private void label1_DoubleClick(object sender, EventArgs e) { this.atai_text.Text = this.label1.Text; } どなたかご教授よろしくお願いします。

  • ユーザー定義関数との日本語のやりとり(C#)

    unsafe void test(int *x,int *y) { *x=15; *y=16; } unsafe private void button1_Click(object sender, EventArgs e) { int a,b; test(&a,&b); label1.Text =a+b; } 上のような感じにユーザー定義関数と変数のやりとりをさせているのですが、 日本語のやりとりの方法がよく分かりません。 unsafe void test { } 内で "テスト" を変数に入れ、 それを unsafe private void button1_Click{ } 内の変数に代入したいです。 記述例を教えて下さい。

  • C#について・・・

    次のようなブログラムなのですが、ラジオボタンが上手く切り替わりません。 どこを修正すると上手くいくでしょうか? <<文字数オーバーのため省略>> public Form1() { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); if(isJapanStyle) { label5.Text=string.Format("0時0分0秒"); label6.Text=string.Format("0時0分0秒"); } else { label5.Text=string.Format("00:00:00"); label6.Text=string.Format("00:00:00"); } // // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 // <<文字数オーバーのため 省略>> static void Main() { Application.Run(new Form1()); } protected void button1_Click(object sender, System.EventArgs e) { if(isJapanStyle) { label5.Text=string.Format("{0}時{1}分{2}秒",dt.Hour,dt.Minute,dt.Second); } else { label5.Text=DateTime.Now.ToString("T"); } recTime=dt; timer2.Stop(); timer3.Start(); } private void button2_Click(object sender, System.EventArgs e) { Application.Exit(); } private void timer1_Tick(object sender, System.EventArgs e) { dt=DateTime.Now; if(isJapanStyle) { label4.Text=string.Format("{0}時{1}分{2}秒",dt.Hour,dt.Minute,dt.Second); } else { label4.Text=DateTime.Now.ToString("T"); } } private void timer3_Tick(object sender, System.EventArgs e) { keika=dt-recTime; if(isJapanStyle) { label6.Text=string.Format("{0}時間{1}分{2}秒",keika.Hours,keika.Minutes,keika.Seconds); } else { label6.Text=string.Format("{0}:{1}:{2}",keika.Hours,keika.Minutes,keika.Seconds); } } private void timer2_Tick(object sender, System.EventArgs e) { timer3.Stop(); } private void radioButton2_CheckedChanged(object sender, System.EventArgs e) { isJapanStyle=false; } private void radioButton1_CheckedChanged(object sender, System.EventArgs e) { isJapanStyle=true; } } }

専門家に質問してみよう