protected override void OnPaint(PaintEventArgs e)
{
~~省略~~
e.Graphics.DrawString( "RPG", new Font( "MS 明朝", 150 ), d, 450, 50);
~~省略~~
static void btnOnClick(object sender, EventArgs e)
{ ここにコード? }
表示されたRPGという文字をボタンが押されたときに削除したいです
ついでにボタンも削除したいです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
C#で、OnPaintを実装するとは、100年はやい!(笑)
初心者らしく、デザイナーで、formにコントロール配置して、イベントとりたいボタンをダブルクリックして、Visibleにfalseをセットしなさい。
それともこの方法は、なにか都合が悪いのかな。
No.2
- 回答日時:
ああ、
https://oshiete.goo.ne.jp/qa/10579448.html はこれの続きだったのか提示されたところから予想するに
背景だけのFormがあって
そのまま再描画したのでは、背景だけに戻ってしまうので、
OnPaintをOverridesすることで、画面が再描画されるタイミングで毎回その文字を書き直している
というもののように思います。
これを
・OnPaintを 「毎回文字を書く」から「表示したいときだけ文字を書く」に変更
(プロパティに今どっちかを記憶させておく)
としておいて
・強制的に再描画させるために Refreshメソッドを実行
というのが、No.1に書いてある方法です。
ただ
そもそもOnPaintでのDrawStringが最適な方法なの?という疑問があります。
文字列を表示するだけならLabelコントールを配置する方がはるかに簡単です。
Visible=falseで非表示にできますし、Removeすることもできます。
OnPaintはもっと簡単になるし、おそらくOverrides自体が不要になります。
No.1
- 回答日時:
フォームの話だろうか?
Rereshして文字をえがかなければよいのでは?
ボタンの削除はControls.Removeでもなんでも
お好みの方法で。単に消したいならVisibleを設定しよう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- JavaScript javascript 文字列の最後から1文字削除したい 2 2022/06/02 11:22
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
描画してもウィンドウをリサイ...
-
エクセルVBAで、条件に一致する...
-
内部クラスを別ファイルに
-
「天声人語」をインターネット...
-
VBAでの[]
-
C#において、同じインスタンス...
-
Vba ListViewの行挿入に関して...
-
「タイプ初期化子が例外をスロ...
-
パワーポイントのVBAでテキスト...
-
Vbで通常使用するプリンターを...
-
自作のクラスファイルがインポ...
-
ヘッダファイルのインクルード...
-
java swing JLabelの型とは?
-
VBA 同じ名前のオブジェクトを...
-
河合塾のクラス分けについて
-
複数の変数を宣言する時、同時...
-
成人式の後中3のクラスで集まろ...
-
プリコンパイルされたSQL文を取...
-
boolean型のフィールドとゲッタ...
-
VBソースからクラス仕様書作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
VB.NETのSendMessageを教えてく...
-
JAVAでの背景画像表示
-
C# DataGridView のCellPaintin...
-
C# リストビューの特定のセルの...
-
重なった要素上でのイベントで...
-
Androidで画像の中で指定した範...
-
画面のちらつきの原因が知りた...
-
複数画像表示切り替え Visual c++
-
VS Treeview のデザイン変更
-
Labelコントロールの背景をグラ...
-
GDI+で描画した画像を消去する...
-
描画処理が実行されない
-
ドラッグして矩形を描くには
-
canvasで表示されてる画像を1...
-
このプログラミングをどう組み...
-
DirectXのスプライト機能で3D回転
-
getGraphics()の意味を教えて...
-
Canvas等の図形を移動する時,直...
-
Exception occurred during eve...
おすすめ情報
Rereshって調べましたがもしかしてrefreshのことですか?
本当にC#初心者なのでよくわかりませんが
Formに表示されてるものはすべて削除して真っ白な状態にしたいというわけです
何度もすみません