チェックボックスを使って書体の変更したいのですが への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 るしぇ  (社会人)
投稿日時
2010/2/14 03:19:56
> checkedchangedイベントだとどうなりますでしょうか?
イベントの違いによる問題点を洗い出し、
サンプルコードを解析し、影響を調べ、
テスト項目を検討し、テスト結果を評価します。
各ステップで第3者を交えたレビューを行ってください。
イベントの違いによる問題点を洗い出し、
サンプルコードを解析し、影響を調べ、
テスト項目を検討し、テスト結果を評価します。
各ステップで第3者を交えたレビューを行ってください。
投稿者 ちゃちゃ  (その他)
投稿日時
2010/2/14 02:40:56
さっそくのご返答ありがとうございます。
始めの質問の時に書き忘れましたが、今回のコードはcheckedboxのcheckedchangedイベントで作ってます。
アドバイス頂いたコードも早速試してみますが、checkedchangedイベントだとどうなりますでしょうか?
始めの質問の時に書き忘れましたが、今回のコードはcheckedboxのcheckedchangedイベントで作ってます。
アドバイス頂いたコードも早速試してみますが、checkedchangedイベントだとどうなりますでしょうか?
投稿者 るしぇ  (社会人)
投稿日時
2010/2/14 02:33:33
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim flag As System.Drawing.FontStyle
flag = FontStyle.Regular
If chkBold.Checked Then
flag = flag Or FontStyle.Bold
End If
If chkItalic.Checked Then
flag = flag Or FontStyle.Italic
End If
If chkUnderline.Checked Then
flag = flag Or FontStyle.Underline
End If
lbl.Font = New Font(lbl.Font, flag)
End Sub
投稿者 ちゃちゃ  (その他)
投稿日時
2010/2/14 01:48:05
VB2008を使ってます。
チェックボックスを使ってIF文でbold,italic,underlineの書体を変更するコードを作りたいのですが、何度やってもうまくいきません。
各チェックボックスをチェックしたら、1つだけにチェックしたら1つ、2つチェックしたら2つの書体にといった感じで書体が変わるようにしたいのですが、以下のコードだと組み合わせのうち半分がきちんと動きません。
周りに詳しい方もおらず、こちらに相談させて頂きました。
アドバイスよろしくお願いします。
if chkBold.checked then
lbl.font=new font(lbl.font,fontstyle.Bold)
if chkItalic.checked then
lbl.font=new font(lbl.font,fontstyle.Italic)
if chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Underline)
if chkBold.checked and chkItalic.checked then
lbl.font=new font(lbl.font,fontstyle.Bold or fontstyle.Italic)
if chkBold.cheked and chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Bold or fontstyle.Underline)
if chkBold.checked and chkItalic.checked and chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Bold or fontstyle.Italic or
fontstlye.Underline)
endif
endif
endif
endif
endif
else
lbl.font=new font(lbl.font,fontstyle.regular)
if chkItalic.checked then
lbl.font=new font(lbl.font,fontstyle.Italic)
if chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Underline)
if chkItalic.checked and chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Italic or fontstyle.Underline)
endif
endif
endif
endif
※このコードを組み合わせを変えて3種コーディングしました。
以下に表示の可・不可を書いておきます。
1⇒Bold、2⇒Italic、3⇒Underline
1,2,3単体のチェックはいずれもOK
1+2 OK
1+3 OK
2+3 2つ目でItalicが外れる
2+1 OK
3+1 2つ目でUnderlineが外れる
3+2 2つ目でUnderlineが外れる
1+2+3 OK
1+3+2 OK
2+1+3 OK
2+3+1 2つ目でBoldが外れるが、最後は完成
3+1+2 2つ目でUnderlineが外れ、3つ目でBoldが外れる
3+2+1 2つ目でUnderlineが外れるが最後は完成
うまくいく方法をご存知の方、アドバイスどうぞよろしくお願いします。
チェックボックスを使ってIF文でbold,italic,underlineの書体を変更するコードを作りたいのですが、何度やってもうまくいきません。
各チェックボックスをチェックしたら、1つだけにチェックしたら1つ、2つチェックしたら2つの書体にといった感じで書体が変わるようにしたいのですが、以下のコードだと組み合わせのうち半分がきちんと動きません。
周りに詳しい方もおらず、こちらに相談させて頂きました。
アドバイスよろしくお願いします。
if chkBold.checked then
lbl.font=new font(lbl.font,fontstyle.Bold)
if chkItalic.checked then
lbl.font=new font(lbl.font,fontstyle.Italic)
if chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Underline)
if chkBold.checked and chkItalic.checked then
lbl.font=new font(lbl.font,fontstyle.Bold or fontstyle.Italic)
if chkBold.cheked and chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Bold or fontstyle.Underline)
if chkBold.checked and chkItalic.checked and chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Bold or fontstyle.Italic or
fontstlye.Underline)
endif
endif
endif
endif
endif
else
lbl.font=new font(lbl.font,fontstyle.regular)
if chkItalic.checked then
lbl.font=new font(lbl.font,fontstyle.Italic)
if chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Underline)
if chkItalic.checked and chkUnderline.checked then
lbl.font=new font(lbl.font,fontstyle.Italic or fontstyle.Underline)
endif
endif
endif
endif
※このコードを組み合わせを変えて3種コーディングしました。
以下に表示の可・不可を書いておきます。
1⇒Bold、2⇒Italic、3⇒Underline
1,2,3単体のチェックはいずれもOK
1+2 OK
1+3 OK
2+3 2つ目でItalicが外れる
2+1 OK
3+1 2つ目でUnderlineが外れる
3+2 2つ目でUnderlineが外れる
1+2+3 OK
1+3+2 OK
2+1+3 OK
2+3+1 2つ目でBoldが外れるが、最後は完成
3+1+2 2つ目でUnderlineが外れ、3つ目でBoldが外れる
3+2+1 2つ目でUnderlineが外れるが最後は完成
うまくいく方法をご存知の方、アドバイスどうぞよろしくお願いします。
ありがとうございました。