سؤال

كيف تدع "DataGridViewTextBoxColumn" في DataGridView يدعم الممتلكات المتعددة?

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرًا على تحقيق ذلك عن طريق ضبط WrapMode التابع DefaultCellStyle من الخاص بك DataGridViewTextBoxColumn ل true.

نصائح أخرى

لقد وجدت أن هناك شيئين تحتاج إلى القيام بهما ، سواء في المصمم ، لإنشاء خلية نصية تظهر خطوط متعددة. مثل تيم س. فان هارين المذكورة ، تحتاج إلى ضبط WrapMode التابع DefaultCellStyle من الخاص بك DataGridViewTextBoxColumn ل true. وعلى الرغم من أن هذا يجعل التفاف النص ، إلا أنه لا يجعل الصف يتوسع لإظهار أي شيء خارج السطر الأول. بالإضافة إلى WrapMode, ، ال AutoSizeRowsMode التابع DataGridView يجب ضبط على ما هو مناسب DataGridViewAutoSizeRowsMode قيمة التعداد. قيمة مثل DataGridViewAutoSizeRowsMode.AllCells يسمح للخلية بالتوسع رأسياً وإظهار النص ملفوف بالكامل.

بصرف النظر عن الإعداد WrapMode التابع DefaultCellStyle, ، يمكنك القيام بما يلي:

  1. تحتاج إلى التقاط Gridview EditingControlShowing حدث
  2. يقذف Control خاصية على EventArgs إلى النوع الذي تريده (أي مربع نص ، مربع الاختيار ، أو الزر)
  3. باستخدام هذا النوع المصبوب ، قم بتغيير Multiline خاصية مثل أدناه:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    TextBox TB = (TextBox)e.Control;
    TB.Multiline = true;            
}
    int multilineht = 0;
    private void CustGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        multilineht = CustGridView.Rows[CustGridView.CurrentCell.RowIndex].Height;
        CustGridView.AutoResizeRow(CustGridView.CurrentCell.RowIndex, DataGridViewAutoSizeRowMode.AllCells);
    }

    private void CustGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        CustGridView.Rows[CustGridView.CurrentCell.RowIndex].Height = multilineht;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top