كيفية تعيين عمود TextBox DataGridView على Multi-Line؟
-
21-09-2019 - |
سؤال
كيف تدع "DataGridViewTextBoxColumn
" في DataGridView
يدعم الممتلكات المتعددة?
المحلول
يجب أن تكون قادرًا على تحقيق ذلك عن طريق ضبط WrapMode
التابع DefaultCellStyle
من الخاص بك DataGridViewTextBoxColumn
ل true
.
نصائح أخرى
لقد وجدت أن هناك شيئين تحتاج إلى القيام بهما ، سواء في المصمم ، لإنشاء خلية نصية تظهر خطوط متعددة. مثل تيم س. فان هارين المذكورة ، تحتاج إلى ضبط WrapMode
التابع DefaultCellStyle
من الخاص بك DataGridViewTextBoxColumn
ل true
. وعلى الرغم من أن هذا يجعل التفاف النص ، إلا أنه لا يجعل الصف يتوسع لإظهار أي شيء خارج السطر الأول. بالإضافة إلى WrapMode
, ، ال AutoSizeRowsMode
التابع DataGridView
يجب ضبط على ما هو مناسب DataGridViewAutoSizeRowsMode
قيمة التعداد. قيمة مثل DataGridViewAutoSizeRowsMode.AllCells
يسمح للخلية بالتوسع رأسياً وإظهار النص ملفوف بالكامل.
بصرف النظر عن الإعداد WrapMode
التابع DefaultCellStyle
, ، يمكنك القيام بما يلي:
- تحتاج إلى التقاط Gridview
EditingControlShowing
حدث - يقذف
Control
خاصية على EventArgs إلى النوع الذي تريده (أي مربع نص ، مربع الاختيار ، أو الزر) - باستخدام هذا النوع المصبوب ، قم بتغيير
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;
}