Nu har jag problem med dessa för*****de datagriddar igen. Du kan väl sätt höjden på en rad till 18 - men om innehållet i en cell överstiger det så kommer tabellcellen automatiskt att anpassa sig till storleken som krävs. Kankse skulle skriva att det är en Windowsform-applikation jag håller på med. Jag postar lösningen här ifall det är någon annan som behöver den...Låsa höjden på raderna i en DataGrid
Jag skulle vilja låsa höjden på raderna till höjden 18, helst skulle jag vilja göra detta programmatiskt eftersom jag skapar mina datagriddar programatiskt.
Jag har googlat som en galning men inte lyckats hitta något bra sätt...
Vilket event triggas när man ändrar höjden på en rad i en datagrid ??
// DavidSv: Låsa höjden på raderna i en DataGrid
Detta är 'by design' i HTML och inget som du på ett enkelt sätt löser i .Net Webforms.
Jag kan tänka mig en lösning som går ut på att du i varje cell (då måste du nog använda template columns) lägger in en DIV/Panel med en viss höjd och med 'overflow' i css sätter du att den ska clippa det som flyter över dess gränser..
OlaSv: Låsa höjden på raderna i en DataGrid
Jo jag kan sätta
.PreferredRowHeight = 18
Men detta gör bara att radhöjden är 18 initialt, man kan fortfarande ändra radhöjden i applikationen.Sv: Låsa höjden på raderna i en DataGrid
<code>
Public Class MyDataGrid
Inherits System.Windows.Forms.DataGrid
'create a constructor
Public Sub New()
'call the constructor of the parent class
MyBase.New()
End Sub
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
Dim hti As DataGrid.HitTestInfo = Me.HitTest(New Point(e.X, e.Y))
If hti.Type = DataGrid.HitTestType.RowResize Then
'user clicked on row resize
Return 'no baseclass call
End If
'call the MouseDown event of the parent
MyBase.OnMouseDown(e)
End Sub
End Class
</code>
<code>
Friend WithEvents datagrid1 As MyDataGrid
</code>