半角の処理

タグの編集
投稿者 ぺっぺ  (社会人) 投稿日時 2015/6/11 17:45:53
お世話になってます。ぺっぺです。

今Visual Studio2005にて
データベースから件名(最大40文字)を抽出、
テキストボックスに
N---10---NN---10---N
N---10---NN---10---N
というように20文字で改行するように指定しているのですが、
上段の文字数が19.5文字(19字+半角一字)だと
次の文字が上段ではなく下段に表示されてしまうようになり
20文字しか表示できない下段に20.5文字が行ってしまい
最後の一字が表示されなくて困っています。
解決策はないでしょうか?

説明するのが難しく
支離滅裂な文章になってしまいましたが
わかっていただければと思います。
投稿者 shu  (社会人) 投稿日時 2015/6/11 18:03:30
具体的にどう困っているのかよくわからないですが

・テキストボックスの幅を広げる
・フォントを小さくする
・このケースでは改行位置を1文字後ろにする(結局幅を広げる必要あり)
・上記が仕様上無理ならあきらめてもらう
投稿者 daive  (社会人) 投稿日時 2015/6/11 21:32:28
考え方の参考になるかもしれないサイト例
 マルチバイト文字列とワイド文字列
 http://mkubara.com/index.php/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%90%E3%82%A4%E3%83%88%E6%96%87%E5%AD%97%E5%88%97%E3%81%A8%E3%83%AF%E3%82%A4%E3%83%89%E6%96%87%E5%AD%97%E5%88%97
 但し、書かれている事柄が、現在も有効かどうかは、別な話です。

文字列のバイト数を取得する (LenB)
http://jeanne.wankuma.com/tips/vb.net/string/lenb.html
【重要箇所抜粋】⇓
System.String クラスの Length プロパティでは文字数しか取得できません。というよりは、半角または全角という概念は消滅しつつあります。(Unicode や UTF-8 の文字コードを参照)

文字がひらがなか、カタカナか、漢字か、英数字か調べる
http://dobon.net/vb/dotnet/string/ishiragana.html

データベースのフィールド定義、インスタンスでの文字コード設定等も、要確認

Unicode 、UTF 化して、
旧9801、9821時代の2分の1角は、絶滅
ShiftJISの、半角カナは、元々使用に制限があったし、
(カナ相当部分に、定義されていた、ヨーロッパ語圏の文字も)
UTFは、種類により、バイト数が異なり、
MS-Unicode は、VBAでの生き残りが、OSとの齟齬を生み。
投稿者 ぺっぺ  (社会人) 投稿日時 2015/6/12 09:58:32
自己解決しましたすいません
投稿者 daive  (社会人) 投稿日時 2015/6/12 10:12:48
>自己解決しましたすいません
では、意味が無いのですよねぇ。
掲示板で質問した以上は、
どの様に解決したか、明らかにする事が、
最低限の御作法だと、おもいますけど??