• 締切済み

c# イベントの命名

 こんにちは。c#初心者兼、java始めました、です。  c#のイベントの命名(規約?)について皆さんにお尋ねしたいことがあります。  最近はjavaをやっていのですが、ふとc#をやってみたくなり、コードをボーっと眺めていると、c#のイベントが目に入りました。javaと比べて便利だったなーくらいの気持ちで流し読みしていたのですが、Clickイベントの所で手が止まりました。  以前はそんなに気にせず使っていたのですが、よく考えてみれば、ほとんどのプロパティ変更系のイベントは~Changed と過去形を使っているのですが、入力系統などはKeyDown, KeyPress, Click, MouseEnter, Resizeのように過去形ではありません(原型? そもそも動詞ではなく、名詞・副詞として使っている?)。Paint, Layoutイベントなどもそうですよね。  これらの命名が違う理由が知りたいのですが、どなたかご存じの方はいらっしゃらないでしょうか?

みんなの回答

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

「おそらく」なのですが、過去形でないイベント名は Win32 API のメッセージが由来なのではないでしょうか。 たとえば、キー入力関連のメッセージは http://msdn.microsoft.com/en-us/library/ff468861(v=vs.85).aspx という感じであり、マウス入力関連のそれは http://msdn.microsoft.com/en-us/library/ff468877(v=vs.85).aspx となっており、動詞の原型が名前に使用されています。

回答No.1

Changed は過去形(変更した) ではなく、過去分詞(変更された)だと思いますよ。

関連するQ&A

  • イベントの内容が書かれているサイト又は書籍

    vb.netでイベントの詳細が記載されているホームページ またはマニュアル等ありませんでしょうか Click       クリック        マウスの左ボタンでクリックしたとき DoubleClick   ダブルクリック     マウスの左ボタンでダブルクリックしたとき TextChange  テキストチェンジド テキストの内容が変化したとき Load       ロード        作成されたとき Resize   リサイズ      大きさが変わったとき Closing   クロージング    破棄されるとき Enter       エンター    フォーカスを取得したとき Leave   リーブ        フォーカスを失ったとき KeyPress   キープレス    キーボードを押したとき Tick       ティック      時間が経ったとき 例えば上記のようなイベントの内容が書かれたサイト、書籍 等あれば教えてください ありとあらゆるイベントの内容が網羅されていると助かります ※わかりやすく書かれているのがベターです

  • C#プログラムで、ボタンをショートカットキー付きで作りたいのですが、方

    C#プログラムで、ボタンをショートカットキー付きで作りたいのですが、方法が分からず困っています。 方法が分からない点は、クリックイベントとKeyDownイベントに対して同一のイベントハンドラーにする方法です。サンプルがあったらご提示頂けないでしょうか?

  • フォームでの右クリックを禁止したい

    フォーム上で右クリック禁止にしたいのですが どうすればいいでしょうか? フォームの KeyDown(キークリック時) KeyPress(キー入力時) KeyUp(キー開放時) のどれかのイベントな気がしますが どのイベントにどのようなVBAコードを書けばいいのかわかりません。 ご教示よろしくお願い致します。(access2003)

  • C#によるWPFアプリケーション

    現在,C#によるWPFアプリケーションを作成しています. 質問なのですが, C#で作成したRectangleにキーボードイベントを埋め込みたいのですが. Rectangle R = new Rectangle(); R.KeyDown += new System.Windows.Input.KeyEventHandler(R_KeyDown); //キーダウン void R_KeyDown(object sender, System.Windows.Input.KeyEventArgs e){ MessageBox.Show("s"); throw new NotImplementedException(); } として,描画されたRectangleをクリックしたあとにキーボードのボタンを押してもメッセージボックスが出てきません? 何か足りないのでしょうか?? 何かヒントになるようなことだけでも構わないので, ご助力お願いできないでしょうか? よろしくお願いします!!

  • アプレットでマウスイベントが出ない

    クリックしても反応しません。 また、マウスイベントが発生したときに飛ぶメソッドにSystem.out.printlnを入れるとException in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pDataが出ることがあります。 import java.applet.Applet; import java.awt.Graphics; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class NewJApplet extends javax.swing.JApplet implements MouseListener{ int x = 10; int y = 10; public void init() { x = 50; y = 50; } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed( MouseEvent e ){ x = e.getX(); // マウスがクリックされた位置のx座標を取得する y = e.getY(); // マウスがクリックされた位置のy座標を取得する repaint(); // アプレットの再描画を指示する } public void mouseReleased(MouseEvent e) { } public void paint(Graphics g) { g.fillOval(x,y,10,10); } } 使ってるのは jre1.6.0_01 NetBeans 5.5です

    • ベストアンサー
    • Java
  • 【アプレット】マウスイベントについて

    【アプレット】マウスイベントについて 現在、マウスに円をリンクさせています 1回左クリックするとその場所で円が停止し、もう1回左クリックするとまた動きだし、もう1回左クリックするとその場所で円が停止し、・・・の繰り返しを行いたいです なにかアドバイスをください。 作ってるのに近いプログラム ↓ import java.applet.* ; import java.awt.*; import java.awt.event.*; public class test extends Applet { int posX = 50; int posY = 50; public void paint(Graphics g) { g.setColor(Color.red); g.fillOval(posX, posY, 50, 50); } public void mousePressed( MouseEvent e ){ x = e.getX(); y = e.getY(); repaint(); } public void init () { this.setSize(200, 200); this.setVisible(true); addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { posX = e.getX(); posY = e.getY(); repaint(); } public void mousePressed( MouseEvent e ){ x = e.getX(); y = e.getY(); repaint(); } public void mouseReleased(MouseEvent e){ } public void mouseClicked(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } }); } }

  • javaのイベント処理についての質問

    今、以下の課題に取り組んでいるのですが、「新しくクリックした座標点で円を描くだけでなく、 以前にクリックした座標点での円も全て表示するように」というところのプログラミング方法がわかりません。 現在のソースは実行してもクリックしたところに円が表示されるようにできたのですが、別の場所をクリックすると以前の円は消えてしまいます。 どなたか詳しい方教えていただけませんでしょうか。 問題文↓ 図のように、マウスクリックした位置に円を描くアプレットを作成せよ。円の数は最大10個までとする。なおマウスクリックした位置は、 public void mouseClicked(MouseEvent e) とすると e.getX(); e.getY(); というメソッドでint型のx,y座標点として得られる。 クリックした座標点を記憶しておくために、点の位置は、xp[i]、yp[i]のように配列を使用し、新しくクリックした座標点で円を描くだけでなく、 以前にクリックした座標点での円も全て表示するように、プログラムを作成すること。 なお、メソッドmouseClicked(MouseEvent e)とメソッドpaint(Graphics g)に共通して座標点を扱うために座標点はグローバル宣言を必要とする。 ソース import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class Marble extends Applet { int xp; int yp; public void init(){ MsListener mouseListener=new MsListener(); setBackground(Color.white); addMouseListener(mouseListener); } class MsListener extends MouseAdapter{ public void mouseClicked(MouseEvent e){ xp=e.getX(); yp=e.getY(); repaint(); } } public void paint(Graphics g){ final int MAX=20,WIDTH=200,HEIGHT=200; g.draw3DRect(0,0,WIDTH-2,HEIGHT-2,false); g.setColor(Color.blue); g.fillOval(xp-5,yp-5,10,10); } } どうかよろしくお願いします。

  • event処理の初期化について

    クリックすると数字が1つづ増えていく処理はできるのですが、 別ボタンをクリックすると、最初の0に戻したいのですがどのようにすればいいのでしょうか・・ 仮に、b.setText("0");として0が表示できたとしても、そのあと上の増幅ボタンを押すとそれまで増えていた数から1ずつ増えてしまいます つまり、リセットする!というようなことをしたいのですが考え方も方法もわからないのです。どなたかご回答よろしくお願いいたします import java.awt.*; import java.awt.event.*; class click_a extends Frame{ Button a1,a2; Label b; Panel c; int d=0; click_a(){ setSize(300,300); setVisible(true); a1=new Button("ボタンを押すと数字が足し算されます"); a2=new Button("初期値に戻します"); b=new Label(""+d); c=new Panel(); c.setLayout(new GridLayout(3,1)); add(c); c.add(a1); c.add(a2); c.add(b); a1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ b.setText(""+d); d++; } }); a2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ b.setText("0"); } }); } public static void main(String[] args){ new click_a(); } }

    • ベストアンサー
    • Java
  • 作ったクラスにイベントを追加するには?

    パネルを継承したクラスを作りました(パネルA)。 そのパネルAをメインフレームに作成しました。 作ったパネルAの上にサブパネルBを作りました。 サブパネルのイベントを書きたいのですがコードは作ったクラス内に書けないのでしょうか? 例)下記が作ったパネル継承クラスです。この中でpnlSubを作っているのです。で、このpnlSubのクリックイベントを書きたいのですが、どのようにイベントを用意すればよいのでしょう? package ### import java.awt.*; public class PanelA extends Panel{ Image im; Panel pnlSub = new Panel(); //CONSTRUCT public PanelA(String img) { im = Toolkit.getDefaultToolkit().getImage(img); //MediaTracker画像入力監視 MediaTracker mt = new MediaTracker(this); mt.addImage(im, 0); try { mt.waitForID(0); } catch (InterruptedException e) { } //パネル(pnlVolume)設定 this.add(pnlVolume, null); pnlSub.setBackground(Color.red); pnlSub.setBounds(new Rectangle(5, 8, 108, 5)); } //Print public void paint(Graphics g) { if (g.drawImage(im, 0, 0, this) != true) { System.out.println("ng"); } } }

    • ベストアンサー
    • Java
  • javaアプレットの課題について

    大学の授業の課題についてなんですが、 javaアプレットを使って 「徐々に大きな四角形を表示させ、ある程度の大きさの四角形になったらまた最初に戻り、さらにボタンを表示させ、ボタンを押す度に四角形の拡大をストップ、スタートさせるプログラムを作れ。また、マウスでクリックした部分を中心に、徐々に大きな四角形を表示させるようにもするように。」 という、自分でも書いていて分からなくなりそうな内容の課題が出されまして、先生などのアドバイスを頼りに import java.applet; import java.awt.Graphics; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.Color; import java.awt.Button; public class Report1 extends Applet implements ActionListener,Runnable { int x = 10; int y = 10; Button bt; public void init() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { x = e.getX(); y = e.getY(); repaint(); } }); { bt.setLabel("pause"); } while{ } if() repaint(); public void paint(Graphics g) { g.setColor(Color, white); g.fillRect(0, 0, 400, 400); } public void update(Graphics g){ paint(); 何とか上のような感じにまではこぎつけたのですが、 ここからは正直どうすればいいのか検討がつかず お手上げ状態なんです... どなたか解答又は参考になるサイトがあれば 教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう