
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Visual Basic(VBA) テキストボックス1の値に対するテキストボックス2に表示する値 1 2022/04/05 14:35
- HTML・CSS 【html】検索ボックスを作りたい 4 2022/04/02 17:25
- その他(データベース) 縦書きテキストボックスの表示"ー"を90度回転して”|”にするにはどうすればいいですか? 2 2023/08/24 15:53
このQ&Aを見た人はこんなQ&Aも見ています
-
C#を用いて描画する四角形の角を丸くする方法
C言語・C++・C#
-
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
-
4
C#についてText Boxの枠
その他(ソフトウェア)
-
5
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
6
C# DataTableの行をソートしてDataGridViewに反映させたい
C言語・C++・C#
-
7
C#でbyte配列から画像を表示させたい
C言語・C++・C#
-
8
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
9
C# Controls.Addで動的に配置したコントロールのRemoveについて
C言語・C++・C#
-
10
C# Form上に配置されたコントロールに重なるように透過GIF(PNG)を表示したい
C言語・C++・C#
-
11
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
12
C#のクラスで値渡しをする
その他(プログラミング・Web制作)
-
13
すべてのリビルド: 0 正常、 0 失敗、 1 スキップ となる理由?
C言語・C++・C#
-
14
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
15
ListBoxで改行したい
Visual Basic(VBA)
-
16
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
17
ManagementClassが見つからない。
C言語・C++・C#
-
18
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
19
データベースのINT型項目にNULLはNG?
MySQL
-
20
VisualStudioのプロパティが表示されない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
vb.netで画面のコントロールId...
-
エクセルVBAでオプションボタン...
-
excelのリストボックスで選択し...
-
複数のコマンドボタン(VBAで)...
-
カメラスクロールするのを動画...
-
ActiveX DLL と ActiveXコント...
-
アクセス特有の書き方?
-
コントロールを移動できない
-
全てのオブジェクトのプロパテ...
-
チェックボックスをオンにした...
-
chr関数の呼び出しで「プロ...
-
ExcelVBAでListViewが使用できない
-
エクセル・VBA CheckBoxのオブ...
-
C# Form上に配置されたコントロ...
-
間違えて配置してしまったコン...
-
VBA_カレンダーコントロールの...
-
OCXって何ですか?
-
[AccessXP]ハイパーリンクの...
-
winndws セキュリティ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
EXCELでactivexコントロールを...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
カメラスクロールするのを動画...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
Groupboxの配下のコントロール...
-
ユーザーフォームで動的(Me.Con...
-
VBA ユーザーフォームの Keypre...
-
vb.netで画面のコントロールId...
-
全てのオブジェクトのプロパテ...
-
間違えて配置してしまったコン...
-
chr関数の呼び出しで「プロ...
-
VBAのフォームでTextBoxがいっ...
-
OCXって何ですか?
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
コントロールを移動できない
-
Labelコントロールの(左右)余...
おすすめ情報