ボタンが押されると表示されてるものがすべてなくなるという処理を行いたいです
~~~省略~~~
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- その他(プログラミング・Web制作) uwscのCHKING関数の画像の認識がうまくいかない。 1 2022/06/18 20:55
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
フォームの再読み込み
Visual Basic(VBA)
-
画面を強制的に再描画させる方法
C言語・C++・C#
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
5
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
6
Refreshメソッドの使い方
Visual Basic(VBA)
-
7
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
8
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
9
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
10
C# 画面のちらつきを解消したい
その他(プログラミング・Web制作)
-
11
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
12
C#にて別クラスの関数を使いたい
C言語・C++・C#
-
13
C# ログイン画面からメイン画面への画面遷移について
C言語・C++・C#
-
14
C# 点の描き方をおしえてください。
C言語・C++・C#
-
15
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
16
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
17
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
18
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
19
DataGridViewの桁数制限に関して
Visual Basic(VBA)
-
20
C# dataGridViewの値だけクリア
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
コールバックでイベントを使う...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
EXCEL VBA マクロ 実行する度に...
-
エクセルVBAで、MsgBox やInput...
-
DoEventsがやはり分からない
-
Excelシート上のマクロを登録し...
-
【VB】タブ切り替え時のイベント
-
【Excel】特定の文字を含むセル...
-
VBAでループ内で使う変数名を可...
-
エクセルの画面にユーザーフォ...
-
「PC Helpsoft Driver Updated...
-
マクロで作ったボタンのサイズ...
-
VBA エンターキーでイベントに...
-
switch の範囲指定
-
インタラクティブの反対語は?
-
【EXCEL VBA】ダブルクリックで...
-
findは動くがfindnextがマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
DLL内のイベントをハンドリング
-
フィールド(メンバ変数)のプリ...
-
C#のインスタンスを参照渡ししたい
-
vb.net フォームアプリケーシ...
-
Objective-C,viewが動作しない
-
Try~Catch、Finallyについて。
-
コールバックでイベントを使う...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
おすすめ情報
あまりわからないので勉強したいと思います
どのあたりから勉強すればよいと思いますか?