teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

2020/07/14 07:16

投稿

tennis_hm
tennis_hm

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,17 @@
1
1
  【目的】datagridviewの一部セルを入力可能とする為、入力可能セルの境界線をtextboxのように表示したい。その際、入力不可能なセルは境界線を非表示とする。
2
2
  【現状】datagridview cellpaintingイベントにてdrawrectangleメソッドを呼び出し、datagridview内のセルに四角形の枠を描画しています。
3
- そして、四角形の上にdrawtextメソッドを呼び出し、セルの値を四角形の上に描画しています。四角形の枠を描画したセルはreadonlyがtrueである入力可能なセルです。
3
+ そして、四角形の上にdrawtextメソッドを呼び出し、セルの値を四角形の上に描画しています。四角形の枠を描画したセルはreadonlyがfalseである入力可能なセルです。
4
4
  【問題】
5
5
  その入力可能なセルをクリックすると、描画された四角形が消えてしまいます。当然四角形の上に描画したセル内の値も消えます(こちらは都合がいいので問題ではない)
6
6
  【質問】
7
7
  描画された四角形のみ残すことは可能なのでしょうか。可能であれば方法もご教授下さい。
8
8
  また、上記の方法に囚われずに目的を達成できる方法もありましたら、ご教授下さい。
9
+
10
+ 現状ロジック追記 202007141607
11
+ cellpainting(sender,e) イベント時
12
+ if 入力文字列の時
9
- (DataGridView.AdvancedCellBorderStyleは試しましたがダメでした)
13
+ e.graphics.drawrectangle(new pen(黒)), new rectangle(表示位置)
14
+ textrender.drawtext(e.graphics, cstr(e.value),e.cellstyle.font,e.cellbounds,e.cellstyle.forecolor,textformatflags.right)
15
+ e.handled = true
16
+ end if
17
+ イベント終了