
ボタンが押されると表示されてるものがすべてなくなるという処理を行いたいです
~~~省略~~~
static void Main()
{
~~省略~~
Form form = new RPG();
Button btn = new Button();
btn.Parent = form;
btn.Location = new Point(600, 450);
btn.Text = "ゲームスタート";
btn.BackColor = SystemColors.Control;
btn.Click += new EventHandler(btnOnClick);
btn.Size = new Size(200, 70);
Application.Run(form);
}
static void btnOnClick(object sender, EventArgs e)
{
this.Refresh();
}
と、やるとCS0026キーワード 'this'は、静的プロパティ、静的メソッド、または静的フィールド初期化子では無効です。と出ます
解決方法をだれか教えてください。
No.5ベストアンサー
- 回答日時:
>どのあたりから勉強すればよいと思いますか?
ネットにあまりよい資料が見あたら無かったので・・・取りあえず
http://wisdom.sakura.ne.jp/system/msnet/msnet_wi …
win32 apiの本ですか、「プログラミングWindows第5版」を読めば完璧。
補足しておくと、vista以降、メ二ユーのドロップダウンやウィンドウの
オーバーラップで無効領域が作られることはほぼ無くなったそうです。
でも皆無では無いので、対処は必要らしいです。

No.4
- 回答日時:
Refresh()関数は、目的からしてformのメンバですかね。
EventArgsクラスをオーバーライドして、メンバにform型の変数を定義すればeを介してformのオブジェクトをわたせます。
e.form型の変数名.Refresh();
でアクセスできます。
No.3
- 回答日時:
確かに超初心者ですね~。
OnPaint とRefresh はなかなか濃い、中級者向けのメソッドで
基本的なコントロールの描画メカニズムの理解が必須。
このあたり、しっかり調べてますか?
No.2
- 回答日時:
静的メソッドからインスタンスメンバを利用することはできません。
staticは、インスタンス化を要しない、そのクラス内で唯一無二のものになります。
例えばですが、
class A
{
static void Main() { }
}
であれば、Main()へのアクセスは、
A.Main()
です。
calss A
{
void Main() { }
}
であれば、
var classA = new A();
classA.Main();
となります。
前者はどんなに至る個所でAクラスを利用していようが、必ず1つのメソッドしかありません。
これはstaticフィールドを用意して処理していた場合、呼び出す度にstaticフィールドの値は
1つしか持てません。
後者はインスタンスごとにそのメソッドがあることになるので、至る所でインスタンス化すれば
それごとにメソッドが用意されます。
この場合、フィールドの値もインスタンスごとに持つことになり、他のインスタンスオブジェクトの
内容が影響を及ぼすことはありません。
さて、今回のメソッドRefresh()ですが、自前のメソッドであれば
private void Refresh() { }
という定義とかなんじゃないですかね。
それがstaticメソッドからしか呼ばれないものだとしたら
private static void Refresh() { }
とし、
A.Refresh();
または
Refresh();
と記述すれば通るでしょう。
No.1
- 回答日時:
超初心者なら、まずはC#自体や、そこで使われているオブジェクトの仕組とかを理解してからの方がよいかと。
staticなメソッドは、クラスの属しているメソッドで、インスタンス無しに実行できます。
インスタンスが不要なので「自分自身のインスタンス」自体が存在しません。
よって「this」はありません。
エラーメッセージに書いてある通りです。
thisに相当するようなインスタンスを他の方法で指定するとか
ここではなく、そのthisとしたいクラスの中で、インスタンスメソッド(staticが無いメソッド)として定義するとか
がよくある方法です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
フォームの再読み込み
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
-
-
4
画面を強制的に再描画させる方法
C言語・C++・C#
-
5
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
6
[C#]static void 関数内でthis
その他(プログラミング・Web制作)
-
7
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
8
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
9
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
10
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
11
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
12
Labelコントロールに数字を代入する
C言語・C++・C#
-
13
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
14
C#のループでtextboxに値を入れる方法
C言語・C++・C#
-
15
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
16
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
17
C# 画面のちらつきを解消したい
その他(プログラミング・Web制作)
-
18
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
19
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
20
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
エクセルVBAで、MsgBox やInput...
-
【Excel VBA】マクロボタンを表...
-
VBAでCOPYを繰り返すと、処理が...
-
UMLでの例外処理
-
VBAでループ内で使う変数名を可...
-
VBA エンターキーでイベントに...
-
エクセル 桁分割
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
月度は何て読みますか?
-
マクロで作ったボタンのサイズ...
-
マクロを登録しているボタンが...
-
VBAにてメッセージボックスを最...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
ボタンクリックイベント 重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
ソフトの組み方は文法書を読ん...
-
フィールド(メンバ変数)のプリ...
-
[C#]FormクラスのShowメソッド...
-
VB.NET スプラッシュスクリー...
-
cocoaアプリで悩んでます。
-
コールバックでイベントを使う...
-
objective-cにはCのような関数...
-
Excelvba2000でExcelファイル間...
-
VBの文法について質問です。
-
どういうプログラムで組みます...
-
C#のインスタンスを参照渡ししたい
-
クラスの実体を一つにする方法
-
wpfスタイル内でのイベント設定
-
OCXのメソッドの引数に文字列を...
-
objective-C(Xcode)に関して...
-
Visual Studio 2005 での既存...
-
objective-cで終了時に処理
-
C# HAPで属性を追加後、OuterText
おすすめ情報
あまりわからないので勉強したいと思います
どのあたりから勉強すればよいと思いますか?