
ボタンが押されると表示されてるものがすべてなくなるという処理を行いたいです
~~~省略~~~
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)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
-
-
4
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
5
[C#]static void 関数内でthis
その他(プログラミング・Web制作)
-
6
画面を強制的に再描画させる方法
C言語・C++・C#
-
7
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
8
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
9
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
10
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
11
Labelコントロールに数字を代入する
C言語・C++・C#
-
12
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
13
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
14
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
15
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
16
C# 画面のちらつきを解消したい
その他(プログラミング・Web制作)
-
17
TextBoxに文字を書いても表示されない
Visual Basic(VBA)
-
18
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
19
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
20
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
フィールド(メンバ変数)のプリ...
-
objective-cにはCのような関数...
-
「ご処理進めて頂きますようお...
-
【Excel】特定の文字を含むセル...
-
エクセルで、日付を入力すると...
-
Excelシート上のマクロを登録し...
-
Accessのフォーム上にエクセル...
-
お家デートをしててハグを長い...
-
「PC Helpsoft Driver Updated...
-
エクセルVBAで、MsgBox やInput...
-
アクセスVBAのMe!と[ ]
-
月度は何て読みますか?
-
VBA エンターキーでイベントに...
-
UMLでの例外処理
-
VBの質問#if 0 then ってどう...
-
アクセス全くの初心者です。A...
-
UPS警告音を止めたい
-
Googleフォーム・複数人の申し...
-
Excel ラジオボタンのリセット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
VB.NET スプラッシュスクリー...
-
VC++クラス間のアクセス
-
フィールド(メンバ変数)のプリ...
-
C#のインスタンスを参照渡ししたい
-
vb.net フォームアプリケーシ...
-
Objective-c 画面遷移について
-
DLL内のイベントをハンドリング
-
どういうプログラムで組みます...
-
objective-C(Xcode)に関して...
-
コールバックでイベントを使う...
-
Javaのあれやこれや
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
Excelシート上のマクロを登録し...
-
VBA エンターキーでイベントに...
-
エクセルVBAで、MsgBox やInput...
-
VBAでループ内で使う変数名を可...
おすすめ情報
あまりわからないので勉強したいと思います
どのあたりから勉強すればよいと思いますか?