No.2ベストアンサー
- 回答日時:
こんばんは。
ん? リージョンの事ですかねえ。
http://dobon.net/vb/dotnet/form/formregion.html
RoundRectangleのリージョンは存在しないので、チョッと面倒みたいです。
http://www.geekpedia.com/code112_Draw-Rounded-Co …
上記のソースを御拝借して書くと、こんな感じです。かなり雑ですが、参考程度に。
後はTextBoxのBorderStyleをNoneにしておいて、TextBox用のペイントハンドラで、RoundRectangleの枠を描いて見てください。
private void SetRoundRect(Control ctl, float radius)
{
int width = ctl.Width;
int height = ctl.Height;
System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
gp.AddLine(radius, 0, width - (radius * 2), 0); // Line
gp.AddArc(width - (radius * 2), 0, radius * 2, radius * 2, 270, 90); // Corner
gp.AddLine(width, radius, width, height - (radius * 2)); // Line
gp.AddArc(width - (radius * 2), height - (radius * 2), radius * 2, radius * 2, 0, 90); // Corner
gp.AddLine(width - (radius * 2), height, radius, height); // Line
gp.AddArc(0, height - (radius * 2), radius * 2, radius * 2, 90, 90); // Corner
gp.AddLine(0, height - (radius * 2), 0, radius); // Line
gp.AddArc(0, 0, radius * 2, radius * 2, 180, 90); // Corner
gp.CloseFigure();
ctl.Region = new Region(gp);
}
private void Form1_Load(object sender, EventArgs e)
{
SetRoundRect(this.textBox1, 20.0F);
}
この回答への補足
すいません。
上記コードを実行したのですが、角のラインがどうしてもうまく描けません。
塗りつぶしは角丸になっているのですが、ラインが消えてしまいます。
アドバイスお願いします。m(__)m
No.3
- 回答日時:
こんばんは。
補足頂きました。チョッと正攻法では無理な様ですので、枠を描かせない様にして下さい。
フォームデザイナで、黒いパネルコントロールを貼り付けて、そのパネルコントロールの上にテキストボックスを乗せてください。
その黒いパネルコントロールも一緒に、リージョンをかければ、テキストボックスの枠の様に見せかけれるでしょう。
パネルコントロールは、テキストボックスよりも、+2程大きめに調整します。これはプログラムの中で行った方が楽です。
後、フォームデザイナでパネルコントロールを配置した時、テキストボックスが隠れてしまったら、パネルコントロールを右クリックし、「最背面へ移動」を選択してください。
これで、パネルコントロールの上にテキストボックスが来る筈です。
以下の様にして見てください。
private void Form1_Load(object sender, EventArgs e)
{
panel1.Location = new Point(textBox1.Location.X - 2, textBox1.Location.Y - 2);
panel1.Size = new Size(textBox1.Width + 4, textBox1.Height + 4);
SetRoundRect(this.textBox1, 20.0F);
SetRoundRect(this.panel1, 20.0F);
}
何度もすいません。アドバイスありがとうございます。
正攻法では無理なんですね。残念です。
背景を少し見せるテクニック、非常に参考になりました。
もう一度挑戦してみます。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
家の中でのこだわりスペースはどこですか?
自分の家で快適に過ごすために工夫しているスペースはありますか? 例)ベランダでお茶を飲むためのカフェテーブル ゲーミングに特化したこだわりのPCスペース
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
C#を用いて描画する四角形の角を丸くする方法
C言語・C++・C#
-
Labelコントロールに数字を代入する
C言語・C++・C#
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
-
4
C#についてText Boxの枠
その他(ソフトウェア)
-
5
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
6
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
7
Labelコントロールの(左右)余白について
Visual Basic(VBA)
-
8
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
9
C# 超初心者です。 this.Refresh();という文を使いたいです
C言語・C++・C#
-
10
画面解像度の最高以上の解像度を設定してスクロールさせて見るということはできませんか?
Windows Vista・XP
-
11
C# 画面のちらつきを解消したい
その他(プログラミング・Web制作)
-
12
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
13
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
14
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
15
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
16
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
17
C# でDataTableの更新を高速化したい。
C言語・C++・C#
-
18
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
19
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
20
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
カレンダーコントロール
-
C#で角が丸いテキストボックス
-
ExcelVBAでListViewが使用できない
-
LCD 1602ディスプレイの輝度調...
-
コントロール配列と同じような...
-
Groupboxの配下のコントロール...
-
excelのリストボックスで選択し...
-
コンボボックスの文字によるif...
-
エクセルVBAでオプションボタン...
-
VBAのカレンダーコントロールに...
-
EXCELでactivexコントロールを...
-
Labelコントロールの(左右)余...
-
アクセス2003でカレンダーコン...
-
EXCEL VBA リストビューの項...
-
C# FlowLayoutPanelにて
-
VBA 複数のテキストボックスと...
-
OCXって何ですか?
-
EXCEL VBAでテンキー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
ExcelVBAでListViewが使用できない
-
エクセルVBAでオプションボタン...
-
vb.netで画面のコントロールId...
-
C#で角が丸いテキストボックス
-
VBA ユーザーフォームの Keypre...
-
ユーザーフォームで動的(Me.Con...
-
フォーム上の現在アクティブな...
-
Excel VBA で Richtextboxを使...
-
ACCESS2010のVBAでフォーム内ク...
-
Groupboxの配下のコントロール...
-
コントロールを移動できない
-
コンボボックスの文字によるif...
-
(VBA)スピンボタンの大量...
-
Labelコントロールの(左右)余...
-
イメージコントロールに 読み込...
-
間違えて配置してしまったコン...
-
EXCELでactivexコントロールを...
-
OCXって何ですか?
おすすめ情報