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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
C#を用いて描画する四角形の角を丸くする方法
C言語・C++・C#
-
C#についてText Boxの枠
その他(ソフトウェア)
-
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
-
4
角の丸いボタン作成について質問です。
C言語・C++・C#
-
5
C# Controls.Addで動的に配置したコントロールのRemoveについて
C言語・C++・C#
-
6
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
7
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
8
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
11
DataGridViewに複数テーブルのデータをセットしたい
Visual Basic(VBA)
-
12
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
13
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
14
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
15
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
16
【C#】DataGridViewの最大列数について
システム
-
17
コンボボックス ▼ボタンをクリックしたらイベント
PowerPoint(パワーポイント)
-
18
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
19
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
20
C#にて別クラスの関数を使いたい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
悩みがあろうと、それなりに幸...
-
USB I/Oのデジタル信号をvbaで...
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
Labelコントロールの(左右)余...
-
ユーザーフォームで動的(Me.Con...
-
ListViewのチェックボックスに...
-
コンボボックスの文字によるif...
-
エクセル コントロールツール...
-
vb.netで画面のコントロールId...
-
WinAPIで電卓をクリック
-
(VBA)スピンボタンの大量...
-
VBAのフォームでTextBoxがいっ...
-
excelのリストボックスで選択し...
-
VBAのエラーについて、”実行時...
-
C#で角が丸いテキストボックス
-
excel vbaでユーザーフォームに...
-
C# Form上に配置されたコントロ...
-
EXCELのマクロでACCESSのカレン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
エクセルVBAでオプションボタン...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
excelのリストボックスで選択し...
-
ユーザーフォームで動的(Me.Con...
-
フォーム上の現在アクティブな...
-
C#で自分のウインド・ハンド...
-
変数をコントロール型で使用す...
-
VBAのフォームでTextBoxがいっ...
-
コントロールを移動できない
-
Groupboxの配下のコントロール...
-
C#で角が丸いテキストボックス
-
(VBA)スピンボタンの大量...
-
間違えて配置してしまったコン...
-
エクセル コントロールツール...
-
'ckbl' コントロールは作成され...
-
OCXって何ですか?
おすすめ情報