C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: vb2008 listviewの表示に不都合


(過去ログ 86 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■51436 / inTopicNo.1)  vb2008 listviewの表示に不都合
  
□投稿者/ yossi- (1回)-(2010/07/05(Mon) 22:06:27)

分類:[VB.NET/VB2005 以降] 

エクセルからデータを読み込み、listViewでその内容を表示させるPGを作成。
結果、その表示に以下の不都合があります。
製品名 abc(2)a⇒abc(2)a ok
製品名 abc(2)⇒(ABC(2 NG 閉じ括弧が変です。
(データの後ろに括弧があると表示が変)
そして、listviewの選択行をコピー&ペーストすると、正しくabc(2)が貼り付けできます。

WEB上にある諸氏のソースをヒントに作成したソース(表示に関する部分)は以下の通りです。
正常に表示させたいです。どなたかご教示願いたく。宜しくお願いします。

Private Sub Display2()

Call view2Clr()
Dim itemX As String

For cnt = 2 To lastgyou2 '行の可変
'アイテムの作成
itemX = gstrExcelData2(1, 1, cnt) '製品コード
'アイテムの追加
ListView2.Items.Add(itemX, cnt - 2)

For cnt2 = 2 To 13 ' 製品名 他
itemX = gstrExcelData2(1, cnt2, cnt)
ListView2.Items(cnt - 2).SubItems.Add(itemX)
Next cnt2

If Val(gstrExcelData2(1, 11, cnt)) > 0 And _
Val(gstrExcelData2(1, 11, cnt)) > Val(gstrExcelData2(1, 8, cnt)) Then
itemX = "不足"

Else
itemX = "-"
End If
' 差し引き在庫マイナスは、背景色をPINKとする
If Val(gstrExcelData2(1, 12, cnt)) < 0 Then
ListView2.Items(cnt - 2).UseItemStyleForSubItems = True
ListView2.Items(cnt - 2).BackColor = Color.LightPink
End If

ListView2.Items(cnt - 2).SubItems.Add(itemX)
Next cnt
End Sub
引用返信 編集キー/
■51440 / inTopicNo.2)  Re[1]: vb2008 listviewの表示に不都合
□投稿者/ はつね (1298回)-(2010/07/06(Tue) 08:56:52)
No51436 (yossi- さん) に返信
> エクセルからデータを読み込み、listViewでその内容を表示させるPGを作成。
> 結果、その表示に以下の不都合があります。
> 製品名 abc(2)a⇒abc(2)a ok
> 製品名 abc(2)⇒(ABC(2 NG 閉じ括弧が変です。
> (データの後ろに括弧があると表示が変)
> そして、listviewの選択行をコピー&ペーストすると、正しくabc(2)が貼り付けできます。

Excelからデータを読み込んだ時点ではどうなっていますか?
このような場合、読み込み部分で問題が発生しているのか、それとも表示部分で
問題が発生しているのかを切り分けるのは非常に重要だと思います。

質問者の方は表示がおかしいので「表示に不都合」というタイトルをつけてます
ので、調査は表示部分に注力していたりしませんか?
そのためコードもgstrExcelData2については掲載されていませんし、そのあたり
を中心に調べてみてはいかがでしょうか。

引用返信 編集キー/
■51455 / inTopicNo.3)  Re[2]: vb2008 listviewの表示に不都合
□投稿者/ yossi- (2回)-(2010/07/06(Tue) 22:03:36)

No51440 (はつね さん) に返信
はつねさん レス有難うございます。
@まず、「表示に不都合」のタイトルを付けた所以ですが、表示の変な行を
クリップボードにコピーしエクセル(白紙)に貼り付けると元のエクセルデータの
如く正常だったので、、。読み込み部は以下の通りです。

Private Sub readfile2()
'Excelブックを起動
Try
exBook = exApp.Workbooks.Open(strFolderPath & "\" & "zaiko.xls")
'Excelを表示
exApp.Visible = True
'シートを指定
exSheet = DirectCast(exBook.Worksheets("Sheet1"), Excel.Worksheet)
exSheet.Activate()

Catch ex As Exception
MessageBox.Show("ErrNo " & Err.Number & vbCr & ex.Message & strFolderPath & "\" & "zaiko.xls を開けませんでした。", "エラー")
cmdRead2.Enabled = True
Exit Sub
End Try
ReDim gstrExcelData2(1, 15, 1)

intSheetNo = 1
Dim intX As Integer : Dim intGyou As Integer
intGyou = 1
sheet = exBook.Worksheets(intSheetNo)
Do Until sheet.Cells(intGyou, 2).value = ""
ReDim Preserve gstrExcelData2(1, 15, intGyou)
For intX = 1 To 14
gstrExcelData2(intSheetNo, intX, intGyou) = sheet.Cells(intGyou, intX).value
Next intX
intGyou += 1

Loop
lastgyou2 = intGyou - 2

'保存せずに閉じる
exBook.Close(False)
'Excelを閉じる
exApp.Quit()
cmdRead2.Enabled = True
'終了処理
'exSheet = Nothing
'exBook = Nothing
'exApp = Nothing
End Sub

A なお、以下の如くコピーをしてます。〜 結果は正しい内容がエクセルに貼り付け出来ます(読み出し元のエクセルデータの通り)。

Private Sub CopyToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopyToolStripMenuItem1.Click
Dim copyData As ListViewItem
Dim dt As String
copyData = ListView2.SelectedItems(0)
dt = copyData.Text
For c = 1 To 13
dt = dt + vbTab & copyData.SubItems(c).Text
Next c
Clipboard.SetText(dt)
End Sub

 追伸、あつかましいですが、再レス頂戴出来れば幸いです。

> ■No51436 (yossi- さん) に返信
>>エクセルからデータを読み込み、listViewでその内容を表示させるPGを作成。
>>結果、その表示に以下の不都合があります。
>>製品名 abc(2)a⇒abc(2)a ok
>>製品名 abc(2)⇒(ABC(2 NG 閉じ括弧が変です。
>>(データの後ろに括弧があると表示が変)
>>そして、listviewの選択行をコピー&ペーストすると、正しくabc(2)が貼り付けできます。
>
> Excelからデータを読み込んだ時点ではどうなっていますか?
> このような場合、読み込み部分で問題が発生しているのか、それとも表示部分で
> 問題が発生しているのかを切り分けるのは非常に重要だと思います。
>
> 質問者の方は表示がおかしいので「表示に不都合」というタイトルをつけてます
> ので、調査は表示部分に注力していたりしませんか?
> そのためコードもgstrExcelData2については掲載されていませんし、そのあたり
> を中心に調べてみてはいかがでしょうか。
>
引用返信 編集キー/
■51558 / inTopicNo.4)  Re[3]: vb2008 listviewの表示に不都合
□投稿者/ Azulean (577回)-(2010/07/08(Thu) 23:34:35)
MSDN フォーラムに続きを投稿されているようですのでリンクしておきます。
http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/aa0f5513-404e-426e-ad5c-a27e130a272e
引用返信 編集キー/
■51591 / inTopicNo.5)  Re[4]: vb2008 listviewの表示に不都合
□投稿者/ yossi- (3回)-(2010/07/10(Sat) 18:08:42)
No51558 (Azulean さん) に返信

listview の プリパティ Right to left  Layout が True でした。 false 変更し解決しました。

デフォルトでは、False ですので、 記憶が定かではありませんが、不用意に変更してしまったものかと思います。
> MSDN フォーラムに続きを投稿されているようですのでリンクしておきます。
> http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/aa0f5513-404e-426e-ad5c-a27e130a272e
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -