境界線の色と四角形の背景とチェックマークの色を変更したいのですが、テキストは変更しません。CheckBoxのチェックマークの色を変更するにはどうすればよいですか?
checkBox1.Checked = false
checkBox1.Checked = true
お返事ありがとうございました。
境界線の色と四角形の背景とチェックマークの色を変更したいのですが、テキストは変更しません。CheckBoxのチェックマークの色を変更するにはどうすればよいですか?
checkBox1.Checked = false
checkBox1.Checked = true
お返事ありがとうございました。
あなたは単にPaintイベントにチェックマークを描くことができます:これが機能するため
private void checkBox1_Paint(object sender, PaintEventArgs e)
{
Point pt = new Point(e.ClipRectangle.Left + 2, e.ClipRectangle.Top + 4);
Rectangle rect = new Rectangle(pt, new Size(22, 22));
if (checkBox1.Checked)
{
using (Font wing = new Font("Wingdings", 14f))
e.Graphics.DrawString("ü", wing, Brushes.DarkOrange,rect);
}
e.Graphics.DrawRectangle(Pens.DarkSlateBlue, rect);
}
をあなたがする必要があります。
FlatStyle = FlatStyle.Flat
Apperance = Appearance.Button
TextAlign = ContentAlignment.MiddleRight
FlatAppearance.BorderSize = 0
AutoSize = false
を設定し、このことは、チェックボックスをサブクラス化し、そこにOnPaint
イベントを上書きするのがベストでしょう。次に例を示します。
public ColorCheckBox()
{
Appearance = System.Windows.Forms.Appearance.Button;
FlatStyle = System.Windows.Forms.FlatStyle.Flat;
TextAlign = ContentAlignment.MiddleRight;
FlatAppearance.BorderSize = 0;
AutoSize = false;
Height = 16;
}
protected override void OnPaint(PaintEventArgs pevent)
{
//base.OnPaint(pevent);
pevent.Graphics.Clear(BackColor);
using (SolidBrush brush = new SolidBrush(ForeColor))
pevent.Graphics.DrawString(Text, Font, brush, 27, 4);
Point pt = new Point(4 , 4);
Rectangle rect = new Rectangle(pt, new Size(16, 16));
pevent.Graphics.FillRectangle(Brushes.Beige, rect);
if (Checked)
{
using (SolidBrush brush = new SolidBrush(ccol))
using (Font wing = new Font("Wingdings", 12f))
pevent.Graphics.DrawString("ü", wing, brush, 1,2);
}
pevent.Graphics.DrawRectangle(Pens.DarkSlateBlue, rect);
Rectangle fRect = ClientRectangle;
if (Focused)
{
fRect.Inflate(-1, -1);
using (Pen pen = new Pen(Brushes.Gray) { DashStyle = DashStyle.Dot })
pevent.Graphics.DrawRectangle(pen, fRect);
}
}
あなたは...コントロールやフォントのサイズをtweekする必要があり、あなたがしたい場合はTextAlign
とCheckAlign
性質を称えるために、コードを拡大することができます。
そして、あなたは3ステート制御を必要とする場合は、あなたがオリジナルより良く見える1を考える場合は特に、第3の状態の外観を表示するコードを適応させることができます。..
私はこの最後のコードは私がやろうとしているものだと思いますが、何が出てくるのかは、どのような種類のやりとりも許さない「フラット」ボタンの上に色付きの境界線がある正方形だけです。 – user5894584
私は 'Checked'のチェックを忘れました。更新しました。それ以外はここで動作します.. – TaW
申し訳ありませんが、まだ動作しません。なぜそれをボタンと見なす必要がありますか? – user5894584
独自のチェックボックスを作成する必要があります。 OnClickイベントでチェックサム画像とチェックサム画像の間を切り替える青い四角形(Buttonから継承する可能性あり)をカスタムコントロールで作成し、その横にラベルを配置します。
あなたは何を書くことを教えてください? – user5894584
しないでください。誰もが認識し、使用方法を知っている通常のチェックボックスを使用してください。キーボード操作を正しく処理するものを使用してください。ユーザーの選択したテーマに準拠したテーマを使用して、親指のように突き出ないようにします。組み込みのコントロールはすでに完全にデバッグされています。あなたの一回限りのコントロールは、方形のホイールのようになりがちです。あなたの個人的な美的感覚は、しばしばユーザーによって共有されません。代わりに機能に焦点を当てることをお勧めします。 –
お返事ありがとうございます。素敵なグラフィカルインターフェイスを作っても、さまざまなコントロールの機能を失うわけではなく、すべてのコードを自分の考えに合わせて再調整するだけでいいということです。 – user5894584