DOBON.NET DOBON.NETプログラミング掲示板過去ログ

[.net2003]データグリッド入力時の変換候補の行ズレ

分類:[.NET]

2006/01/10(Tue) 17:32:15 編集(投稿者)

こんにちは。

どぼん様のTipsに載っていたDataGridのタイトルとデータの寄せを違うものに
するというコードを使っています。

上手く改変すれば良いとは思いますが、


DataColum2.TextBox.TextAlign = HorizontalAlignment.(ここ)
の部分を変更しても左寄せにしかなりません。


まだ動作原理が理解できません(理解できないものを使うなと言うお叱りは
尤もですが、使わなくてはならない位、逼迫しています)が、


Public Class DataGridTextAlignColumn
Inherits DataGridTextBoxColumn
'テキストをセルに描画する際のマージン
'これがないと、描画位置が上になりすぎる
Private _margin As New Point(1, 2)
Private _textAlign As HorizontalAlignment = HorizontalAlignment.(ここ)


を、LeftからRightにすれば右寄せになることが分かったので、
右寄せ用と左寄せ用を用意して運用しています。
ここで右寄せの時のみ、日本語入力をすると、入力した文字が、
指定したデータグリッドの下に表示されます
(変換前のみ、変換を確定すれば指定したグリッドに書き込まれます)。
これをどうにかする方法は無いでしょうか?
よろしければ教えてください。

環境は.net2003、OSはXPProです。</pre></pre>
> Public Class DataGridTextAlignColumn
> Inherits DataGridTextBoxColumn
> 'テキストをセルに描画する際のマージン
> 'これがないと、描画位置が上になりすぎる
> Private _margin As New Point(1, 2)
> Private _textAlign As HorizontalAlignment = HorizontalAlignment.(ここ)
>
>
> を、LeftからRightにすれば右寄せになることが分かったので、
> 右寄せ用と左寄せ用を用意して運用しています。

_textAlignフィールドはTextAlignプロパティで公開していますので、このプロパティで変更してください。

> ここで右寄せの時のみ、日本語入力をすると、入力した文字が、
> 指定したデータグリッドの下に表示されます
> (変換前のみ、変換を確定すれば指定したグリッドに書き込まれます)。
> これをどうにかする方法は無いでしょうか?

以前もTextBoxのTextAlignプロパティを変更すると不都合があるというような投稿をいただいたような気がします(探したのですが、見つかりませんでした)。EditメソッドでTextBoxのTextAlignプロパティを変更しているのですが、これをやめた方がいいかもしれません。
2006/01/11(Wed) 12:13:05 編集(投稿者)

すばやい返答ありがとうございます。

■No14436に返信(管理人さんの記事)

> _textAlignフィールドはTextAlignプロパティで公開していますので、このプロパティで変更してください。

Loadで
  Dim DataColum3 As Dobon.Samples.Forms.DataGridTextAlignColumn
        DataColum3 = New Dobon.Samples.FormsR.DataGridTextAlignColumn
        DataColum3.MappingName = "個数"
        DataColum3.HeaderText = "数量"
        DataColum3.Alignment = HorizontalAlignment.Center
        DataColum3.TextBox.TextAlign = HorizontalAlignment.Right
        DataColum3.Width = 80
このようにしても上手く寄せがかわりませんでした。
(入社してからとりあえず作ってって方針だったから何も教わらずに
本に書いてある真似したりエラーの出ないところに書いたりしてるから
間違ったことしてるかも(大汗)。公開されてたソースをClassの外に書いたら
動作はするけどフォームデザイナ使えなくなっちゃったし(滝汗))

> 以前もTextBoxのTextAlignプロパティを変更すると不都合があるというような投稿をいただいたような気がします
(探したのですが、見つかりませんでした)。EditメソッドでTextBoxのTextAlignプロパティを
変更しているのですが、これをやめた方がいいかもしれません。


ご指摘の部分をコメントアウトしたら変換前は中央に表示、変換後は右寄せになりました。
ちょっとまだ違うような気がしますが、もう少し弄ってみます。</pre></pre></pre></pre>
> Loadで
> Dim DataColum3 As Dobon.Samples.Forms.DataGridTextAlignColumn
> DataColum3 = New Dobon.Samples.FormsR.DataGridTextAlignColumn
> DataColum3.MappingName = "個数"
> DataColum3.HeaderText = "数量"
> DataColum3.Alignment = HorizontalAlignment.Center
> DataColum3.TextBox.TextAlign = HorizontalAlignment.Right
> DataColum3.Width = 80
> このようにしても上手く寄せがかわりませんでした。

DataGridTextAlignColumnのTextAlignプロパティで公開しています。よって、

DataColum3.TextAlign = HorizontalAlignment.Right

のようにします。
素早い回答ありがとうございます。

■No14457に返信(管理人さんの記事)

> DataGridTextAlignColumnのTextAlignプロパティで公開しています。よって、
>
> DataColum3.TextAlign = HorizontalAlignment.Right
>
> のようにします。

できました!ありがとうございました。
当面は変換候補は中央表示で乗り切る方向にしますので、解決とさせて頂きます。
本当にありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板