1

textboxgridviewおよび保存ボタンを含む単純なフォームがあります。ユーザーはテキストボックスに顧客名を入力してEnterキーを押し、データベーステーブルからデータを取得して表示します。gridviewすべて問題ありませんが、行数が多く、グリッドビューのスクロールバーが表示されると問題が発生するため、ユーザーは下にスクロールして新しい行を追加したり、最後の2行を閲覧したりできますが、スクロールバーでは最後の2行またはツリー行の前にしかスクロールできないため、すべての行にスクロールできないことに驚きました。行を入力してから、キーボードの下矢印で下に移動します。これは非常に煩わしく、専門的ではありません。

このような通常の方法で行をグリッドに追加するためにここで使用する空間コードがないという情報が役立つ場合があります。

joinsGridView.Rows.Clear();
        for (int i = 0; i < dataList.Count; ++i)
        {
            RegisterJointFormData item = dataList[i];

            joinsGridView.Rows.Add();
            DataGridViewComboBoxCell joinNameCombo = joinsGridView.Rows[i].Cells["JoinName"] as DataGridViewComboBoxCell;
            joinNameCombo.Value = dataList[i].Join.JoinTypeID;
            joinTypeBindingSource.Position = joinTypeBindingSource.IndexOf(item.Join.JoinType);
            joinsGridView.Rows[i].Cells["JoinPrice"].Value = item.Join.JoinType.Price;
            joinsGridView.Rows[i].Cells["Discount"].Value = item.Join.Discount;
            joinsGridView.Rows[i].Cells["PayedMoney"].Value = item.PayedMoney;
            joinsGridView.Rows[i].Cells["RegisterDate"].Value = item.Join.RegisterDate.ToShortDateString();
            joinsGridView.Rows[i].Cells["Duration"].Value = item.Join.JoinType.Duration;
            joinsGridView.Rows[i].Cells["SessionsAttened"].Value = item.SessionsAttend;
        }

データベースに接続してデータを取得するためにEntity Frameworkを使用しているという別の情報。

問題を正しく説明したことを願っています。私の下手な英語で申し訳ありません:)

4

1 に答える 1

2

最後に問題を見つけましたが、予想どおり非常にばかげています。問題は、フォームの読み込み時にグリッドを無効にしていて、ユーザーが顧客名を入力した後、グリッドにデータを入力してから有効にし、最初にグリッドを有効にすることで修正されることでした次に、データをグリッドに追加します。

于 2013-04-06T09:58:40.737 に答える