diff --git a/widgets/DapComboBox.qml b/widgets/DapComboBox.qml
index 3e6a0d8354d050eed76402631b1810d9a3171d84..ee809d5ea2bd8dd9614d5a48123e4b9d0ea559ee 100644
--- a/widgets/DapComboBox.qml
+++ b/widgets/DapComboBox.qml
@@ -55,6 +55,7 @@ DapComboBoxForm
                                                               )
                         height: rectangleTextComboBox.height
                         spacing: roleInterval
+                        property var elTextArray: []
 
                         Repeater
                         {
@@ -77,36 +78,43 @@ DapComboBoxForm
                                 horizontalAlignment: (alignTextComboBox.length > index) ?
                                                alignTextComboBox[index] :
                                                alignTextComboBox[0];
-
+                                onElTextChanged: textRow.elTextArray[index] = elText
 
                                 Component.onCompleted:
                                 {
-                                    comboBoxFontMetric.font = (fontComboBox.length > index) ?
-                                              fontComboBox[index] :
-                                              fontComboBox[0];
                                     if(rectangleTextComboBox.comboBoxIndex == rectangleTextComboBox.comboBoxCurrentIndex)
-                                   {
-                                       var tmp = mainRow;
-                                       tmp[index] = elText;
-                                       mainRow = tmp;
-
-                                       if(rectangleTextComboBox.comboBoxCurrentIndex != -1)
-                                       {
-                                           if(index == 0)
-                                               mainLineText = comboBoxFontMetric.elidedText(fullText, Text.ElideRight, rectangleTextComboBox.width, Qt.TextShowMnemonic);
-                                       }
-                                   }
+                                    {
+
+                                        var tmp = mainRow;
+                                        tmp[index] = elText;
+                                        mainRow = tmp;
+
+                                        if(index == 0)
+                                        {
+                                            comboBoxFontMetric.font = (fontComboBox.length > index) ?
+                                                      fontComboBox[index] :
+                                                      fontComboBox[0];
+                                            mainLineText = comboBoxFontMetric.elidedText(fullText, Text.ElideRight, rectangleTextComboBox.width, Qt.TextShowMnemonic);
+                                        }
+                                    }
                                 }
 
                             }
 
                         }
 
+                    }
+                    Component.onCompleted:
+                    {
+                        if(rectangleTextComboBox.comboBoxCurrentIndex !== -1)
+                            updateMainRow(comboBoxFontMetric, rectangleTextComboBox.comboBoxIndex, rectangleTextComboBox.comboBoxCurrentIndex, textRow.elTextArray, (widthPopupComboBoxNormal - indicatorWidth - indicatorLeftInterval));
+
                     }
                     onComboBoxCurrentIndexChanged:
                     {
-                        mainLineText = comboBoxFontMetric.elidedText(getModelData(currentIndex, comboBoxTextRole[0]), Text.ElideRight, rectangleTextComboBox.width, Qt.TextShowMnemonic);
-                        console.log("mainLineText", mainLineText)
+                        if(rectangleTextComboBox.comboBoxCurrentIndex !== -1)
+                            updateMainRow(comboBoxFontMetric, rectangleTextComboBox.comboBoxIndex, rectangleTextComboBox.comboBoxCurrentIndex, textRow.elTextArray, rectangleTextComboBox.width);
+
                     }
                 }
 
@@ -117,7 +125,8 @@ DapComboBoxForm
                 Rectangle
                 {
                     anchors.fill: parent
-                    anchors.bottomMargin: {
+                    anchors.bottomMargin:
+                    {
                         if(index == count - 2)
                         {
                             if(index+1 == currentIndex)
@@ -140,5 +149,24 @@ DapComboBoxForm
         return model.get(rowIndex)[modelRole];
     }
 
+    function updateMainRow(fm, cbIndex, cbCurrentIndex, elTextArray, width)
+    {
+        if(cbIndex === cbCurrentIndex)
+        {
+            for(var i = 0; i < comboBoxTextRole.length; i++)
+            {
+                fm.font = (fontComboBox.length > i) ?
+                            fontComboBox[i] :
+                            fontComboBox[0];
+
+                var tmp = mainRow;
+                tmp[i] = elTextArray[i];
+                mainRow = tmp;
+
+                if(i == 0)
+                    mainLineText = fm.elidedText(getModelData(cbCurrentIndex, comboBoxTextRole[0]), Text.ElideRight, width, Qt.TextShowMnemonic);
+            }
+        }
+    }
 
 }
diff --git a/widgets/DapComboBoxForm.ui.qml b/widgets/DapComboBoxForm.ui.qml
index b063a2b9d4030699077d21389b34d7f5ae8ebe49..fab312f719112a6c1e04dcd830132582a58a142f 100644
--- a/widgets/DapComboBoxForm.ui.qml
+++ b/widgets/DapComboBoxForm.ui.qml
@@ -1,5 +1,5 @@
 import QtQuick 2.0
-import QtQuick.Controls 2.2
+import QtQuick.Controls 2.0
 import QtQuick.Controls.Styles 1.4
 import QtGraphicalEffects 1.0
 
@@ -135,10 +135,13 @@ ComboBox
                     {
                         anchors.verticalCenter: parent.verticalCenter
                         text: (popup.visible) ?
-                                  mainRow[index] :
+                                  (index < mainRow.length ? mainRow[index] : ""):
                                   mainLineText
-                        font: (fontComboBox.length > index) ?
+                        font: popup.visible ?
+                            ((fontComboBox.length > index) ?
                                   fontComboBox[index] :
+                                  fontComboBox[0]
+                             ) :
                                   fontComboBox[0];
                         width: popup.visible ?
                                  (topComboBoxRow.width - roleInterval * (comboBoxTextRole.length - 1)) / comboBoxTextRole.length :
@@ -165,6 +168,7 @@ ComboBox
             contentItem:
                 ListView 
                 {
+                    id: popupList
                     clip: true
                     implicitHeight: contentHeight
                     model: dapComboBox.popup.visible ? dapComboBox.delegateModel : null